diff options
Diffstat (limited to 'test/lib/powerdnsex/models/resource_record_set_test.exs')
-rw-r--r-- | test/lib/powerdnsex/models/resource_record_set_test.exs | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/test/lib/powerdnsex/models/resource_record_set_test.exs b/test/lib/powerdnsex/models/resource_record_set_test.exs new file mode 100644 index 0000000..9533beb --- /dev/null +++ b/test/lib/powerdnsex/models/resource_record_set_test.exs @@ -0,0 +1,89 @@ +defmodule PowerDNSex.Models.ResourceRecordSetTest do + + use ExUnit.Case, async: true + + alias PowerDNSex.Models.{Record} + alias PowerDNSex.Models.ResourceRecordSet, as: RRSet + + @ns_content "ns1.domain.com." + @ns2_content "ns2.domain.com." + + @domain "my-domain.art." + + @record_ns %RRSet { + name: "my-domain.art.", + ttl: 3600, + type: "NS", + records: [ + %Record{content: @ns_content, + disabled: false}, + %Record{content: @ns2_content, + disabled: false} + ] + } + + @record_a %RRSet { + name: "store.my-domain.art.", + ttl: 3600, + type: "A", + records: [ + %Record{content: "182.23.2.3", + disabled: false} + ] + } + + @rrsets [ + @record_ns, + @record_a + ] + + describe "nameservers/1" do + test "return empty list for nameserver" do + assert RRSet.nameservers([]) == [] + end + + test "return map of content records" do + assert RRSet.nameservers(@rrsets) == [@ns_content, @ns2_content] + end + end + + describe "build/1" do + test "build a record" do + raw_rrset = %{name: @domain, type: 'A', ttl: 3600, records: [ %{content: "192.168.0.1", disabled: false} ] } + rrset = %RRSet{changetype: nil, + name: "my-domain.art.", + records: [%PowerDNSex.Models.Record{content: "192.168.0.1", + disabled: false}], ttl: 3600, type: 'A'} + assert RRSet.build(raw_rrset) == rrset + end + end + + describe "find/1" do + test "find a record" do + assert RRSet.find(@rrsets, %{name: "store.my-domain.art.", type: "A"}) == @record_a + end + + test "doest not find record" do + assert RRSet.find(@rrsets, %{name: "site.my-domain.art.", type: "A"}) == nil + end + end + + describe "update/2" do + test "update passing all attributes" do + new_attrs = %{name: "page.my-domain.art.", + records: [%{content: "192.168.0.1", disabled: false}], + ttl: "3600", type: "A"} + + new_record = %PowerDNSex.Models.ResourceRecordSet{changetype: nil, + name: "store.my-domain.art.", + records: [ + %PowerDNSex.Models.Record{ + content: "192.168.0.1", + disabled: false}], + type: "A", + ttl: "3600"} + + assert RRSet.update(@record_a, new_attrs) == new_record + end + end +end |