40 lines
877 B
Elixir
40 lines
877 B
Elixir
defmodule Exdns.ZoneRulesTest do
|
|
use ExUnit.Case, async: true
|
|
|
|
alias Exdns.DnsPacket.ResourceRecord
|
|
alias Exdns.DnsPacket.RRData.Types
|
|
alias Exdns.ZoneRules
|
|
|
|
test "find_authority returns NS or SOA from nearest suffix" do
|
|
zone_name = ["example", "com"]
|
|
|
|
ns = %ResourceRecord{
|
|
name: zone_name,
|
|
type: :ns,
|
|
class: 1,
|
|
ttl: 60,
|
|
rdata: %Types.NS{name: ["ns1" | zone_name]}
|
|
}
|
|
|
|
soa = %ResourceRecord{
|
|
name: zone_name,
|
|
type: :soa,
|
|
class: 1,
|
|
ttl: 60,
|
|
rdata: %Types.SOA{
|
|
mname: ["ns1" | zone_name],
|
|
rname: ["hostmaster" | zone_name],
|
|
serial: 1,
|
|
refresh: 1,
|
|
retry: 1,
|
|
expire: 1,
|
|
minimum: 1
|
|
}
|
|
}
|
|
|
|
zones = %{zone_name => [ns, soa]}
|
|
|
|
assert {:ok, %{ns: [_], soa: [_]}} = ZoneRules.find_authority(zones, ["www" | zone_name])
|
|
end
|
|
end
|