1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
defmodule PowerDNSex.Managers.ZonesManagerTest do
use ExUnit.Case, async: false
use ExVCR.Mock, adapter: ExVCR.Adapter.Hackney
alias PowerDNSex.Managers.ZonesManager
alias PowerDNSex.Models.{Zone, Record}
alias PowerDNSex.Models.ResourceRecordSet, as: RRSet
alias PowerDNSex.FakeConfig, as: Config
@invalid_not_canonical %Zone{name: "not-canonical-domain.tst"}
@unknown_name "it-will-never-exist.on.the.art."
@valid_zone_test %Zone{name: "my-domain.art.",
serial: 2_016_060_601,
comments: ["Test comment"] }
@expected_rrset [
%RRSet{
name: "my-domain.art.",
ttl: 3600,
type: "SOA",
records: [
%Record{content: "a.misconfigured.powerdns.server. " <>
"hostmaster.my-domain.art. " <>
"2016060601 10800 3600 604800 3600",
disabled: false}
]
}
]
@expected_zone %Zone{name: "my-domain.art.",
id: "my-domain.art.",
account: "",
serial: 2_016_060_601,
url: "api/v1/servers/localhost/zones/my-domain.art.",
rrsets: @expected_rrset}
setup do
Config.set_url
Config.set_token
ExVCR.Config.cassette_library_dir("test/support/cassettes",
"test/support/custom_cassettes")
HTTPoison.start
end
describe "ZoneManager.create/2" do
@tag :zones_manager_create
test "return given correct parameters" do
use_cassette "zones_manager/create/success" do
zone = ZonesManager.create(@valid_zone_test)
assert zone.__struct__ == PowerDNSex.Models.Zone
assert zone.name == @valid_zone_test.name
end
end
@tag :zones_manager_create
test "return error given invalid name" do
use_cassette "zones_manager/create/invalid_not_canonical" do
error_msg = "DNS Name 'not-canonical-domain.tst' is not canonical"
response = ZonesManager.create(@invalid_not_canonical)
assert response.__struct__ == PowerDNSex.Models.Error
assert response.error == error_msg
end
end
end
describe "ZonesManager.show/2" do
@tag :zones_manager_show
test "type of return given a correct zone name" do
use_cassette "zones_manager/show/success" do
zone = ZonesManager.show(@valid_zone_test.name)
assert zone.__struct__ == PowerDNSex.Models.Zone
end
end
@tag :zones_manager_show
test "values in return given a correct zone name" do
use_cassette "zones_manager/show/success" do
zone = ZonesManager.show(@valid_zone_test.name)
assert zone == @expected_zone
end
end
@tag :zones_manager_show
test "values in return given a unknown zone name" do
use_cassette "zones_manager/show/not_found" do
error_msg = "Could not find domain 'it-will-never-exist.on.the.art.'"
response = ZonesManager.show(@unknown_name)
assert response.__struct__ == PowerDNSex.Models.Error
assert response.error == error_msg
end
end
end
describe "ZonesManager.delete/2" do
@tag :zones_manager_delete
test "return given correct params" do
use_cassette "zones_manager/delete/success" do
assert ZonesManager.delete(@valid_zone_test.name) == :ok
end
end
@tag :zones_manager_delete
test "return error when zone don't exists" do
use_cassette "zones_manager/delete/not_found" do
response = ZonesManager.delete(@unknown_name)
assert response.error == "Could not find domain '#{@unknown_name}'"
end
end
end
end
|