summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorTiago Freire <code.tiago.frire@locaweb.com.br>2016-08-22 21:26:56 -0300
committerTiago Freire <code.tiago.frire@locaweb.com.br>2016-08-26 14:19:28 -0300
commit416539a6acb4391b52f80d91b96fdab07658953d (patch)
tree6ea82b452f3acfe8f64ef703ed0386b6fca561a4 /test
parentAdd Delete Record feature (diff)
WIP - Add elixir GenServer
Diffstat (limited to 'test')
-rw-r--r--test/lib/powerdnsex/config_test.exs6
-rw-r--r--test/lib/powerdnsex/managers/records_manager_test.exs39
-rw-r--r--test/lib/powerdnsex/managers/zones_manager_test.exs16
-rw-r--r--test/support/cassettes/records_manager/create/success.json6
-rw-r--r--test/support/cassettes/records_manager/delete/success.json6
-rw-r--r--test/support/cassettes/records_manager/show/success.json31
-rw-r--r--test/support/cassettes/records_manager/update/invalid_record.json6
-rw-r--r--test/support/cassettes/records_manager/update/not_found.json6
-rw-r--r--test/support/cassettes/records_manager/update/success.json6
-rw-r--r--test/support/cassettes/zones_manager/create/invalid_not_canonical.json4
-rw-r--r--test/support/cassettes/zones_manager/create/success.json6
-rw-r--r--test/support/cassettes/zones_manager/delete/not_found.json4
-rw-r--r--test/support/cassettes/zones_manager/delete/success.json4
-rw-r--r--test/support/cassettes/zones_manager/show/not_found.json6
-rw-r--r--test/support/cassettes/zones_manager/show/success.json6
15 files changed, 98 insertions, 54 deletions
diff --git a/test/lib/powerdnsex/config_test.exs b/test/lib/powerdnsex/config_test.exs
index adb212a..c0a5150 100644
--- a/test/lib/powerdnsex/config_test.exs
+++ b/test/lib/powerdnsex/config_test.exs
@@ -11,7 +11,7 @@ defmodule PowerDNSex.ConfigTest do
describe "Config.powerdns_token/0" do
@tag :configs
test "Using Env vars", with_valid_url do
- env_token = "3nv_S3cr37_T0k3n"
+ env_token = "S3cr37_70k3n"
System.put_env("POWERDNS_TOKEN", env_token)
Application.put_env(:powerdns, :token, {:system, "POWERDNS_TOKEN"})
assert PowerDNSex.Config.powerdns_token == env_token
@@ -36,7 +36,7 @@ defmodule PowerDNSex.ConfigTest do
describe "Config.powerdns_url/0" do
@tag :configs
test "Using Env vars", with_valid_token do
- env_url = "https://env-powerdns.test"
+ env_url = "https://env-powerdns.test/"
System.put_env("POWERDNS_URL", env_url)
Application.put_env(:powerdns, :url, {:system, "POWERDNS_URL"})
assert PowerDNSex.Config.powerdns_url == env_url
@@ -44,7 +44,7 @@ defmodule PowerDNSex.ConfigTest do
@tag :configs
test "using application config", with_valid_token_and_url do
- assert PowerDNSex.Config.powerdns_url == Config.url
+ assert PowerDNSex.Config.powerdns_url == Config.url <> "/"
end
@tag :configs
diff --git a/test/lib/powerdnsex/managers/records_manager_test.exs b/test/lib/powerdnsex/managers/records_manager_test.exs
index aa054c2..f01f757 100644
--- a/test/lib/powerdnsex/managers/records_manager_test.exs
+++ b/test/lib/powerdnsex/managers/records_manager_test.exs
@@ -1,10 +1,11 @@
-defmodule PowerDNSex.RecordsManagerTest do
+defmodule PowerDNSex.Managers.RecordsManagerTest do
use ExUnit.Case, async: false
use ExVCR.Mock, adapter: ExVCR.Adapter.Hackney
- alias PowerDNSex.Models.{Zone, ResourceRecordSet, Record}
- alias PowerDNSex.RecordsManager
+ alias PowerDNSex.Models.{Zone, Record}
+ alias PowerDNSex.Managers.RecordsManager
+ alias PowerDNSex.FakeConfig, as: Config
@valid_zone %Zone{name: "my-domain.art.",
url: "api/v1/servers/localhost/zones/my-domain.art."}
@@ -43,14 +44,8 @@ defmodule PowerDNSex.RecordsManagerTest do
}
setup do
- # Config.set_url
- # Config.set_token
-
- pwdns_url_loca = "http://cpro36999.systemintegration.locaweb.com.br/"
- Application.put_env(:powerdns, :url, pwdns_url_loca)
-
- pwdns_token_loca = "Locaweb2016"
- Application.put_env(:powerdns, :token, pwdns_token_loca)
+ Config.set_url
+ Config.set_token
ExVCR.Config.cassette_library_dir("test/support/cassettes",
"test/support/custom_cassettes")
@@ -58,6 +53,7 @@ defmodule PowerDNSex.RecordsManagerTest do
end
describe "create/2" do
+ @tag :records_manager_create
test "exception given empty zones url" do
raise_msg = "[Records Manager] Zone URL attribute is empty!"
assert_raise RuntimeError, raise_msg, fn() ->
@@ -65,13 +61,30 @@ defmodule PowerDNSex.RecordsManagerTest do
end
end
- test "content and value of the return given correct params" do
+ @tag :records_manager_create
+ test "the return given correct params" do
use_cassette "records_manager/create/success" do
assert RecordsManager.create(@valid_zone, @new_record) == :ok
end
end
end
+ describe "show/2" do
+ @tag :records_manager_show
+ test "content given attrs of a valid record" do
+ use_cassette "records_manager/show/success" do
+ zone_name = @valid_zone.name
+ attrs = %{name: "new-record.#{zone_name}",
+ type: "A",
+ content: "127.0.0.1"}
+
+ record = RecordsManager.show(zone_name, attrs)
+ assert record.name == attrs.name
+ assert record.type == attrs.type
+ end
+ end
+ end
+
describe "update/2" do
@tag :records_manager_update
test "exception given empty zones url" do
@@ -109,7 +122,7 @@ defmodule PowerDNSex.RecordsManagerTest do
end
describe "delete/2" do
- @tag :records_manager_update
+ @tag :records_manager_delete
test "the return given a correct record" do
use_cassette "records_manager/delete/success" do
assert RecordsManager.delete(@valid_zone, @record_to_delete) == :ok
diff --git a/test/lib/powerdnsex/managers/zones_manager_test.exs b/test/lib/powerdnsex/managers/zones_manager_test.exs
index b3aa5ef..c0e874d 100644
--- a/test/lib/powerdnsex/managers/zones_manager_test.exs
+++ b/test/lib/powerdnsex/managers/zones_manager_test.exs
@@ -1,9 +1,9 @@
-defmodule PowerDNSex.ZonesManagerTest do
+defmodule PowerDNSex.Managers.ZonesManagerTest do
use ExUnit.Case, async: false
use ExVCR.Mock, adapter: ExVCR.Adapter.Hackney
- alias PowerDNSex.ZonesManager
+ alias PowerDNSex.Managers.ZonesManager
alias PowerDNSex.Models.{Zone, Record}
alias PowerDNSex.Models.ResourceRecordSet, as: RRSet
alias PowerDNSex.FakeConfig, as: Config
@@ -37,14 +37,14 @@ defmodule PowerDNSex.ZonesManagerTest do
rrsets: @expected_rrset}
setup do
- # Config.set_url
- # Config.set_token
+ Config.set_url
+ Config.set_token
- pwdns_url_loca = "http://cpro36999.systemintegration.locaweb.com.br/"
- Application.put_env(:powerdns, :url, pwdns_url_loca)
+ # pwdns_url_loca = "http://cpro36999.systemintegration.locaweb.com.br/"
+ # Application.put_env(:powerdns, :url, pwdns_url_loca)
- pwdns_token_loca = "Locaweb2016"
- Application.put_env(:powerdns, :token, pwdns_token_loca)
+ # pwdns_token_loca = "Locaweb2016"
+ # Application.put_env(:powerdns, :token, pwdns_token_loca)
ExVCR.Config.cassette_library_dir("test/support/cassettes",
"test/support/custom_cassettes")
diff --git a/test/support/cassettes/records_manager/create/success.json b/test/support/cassettes/records_manager/create/success.json
index 73bdc22..10dc5ce 100644
--- a/test/support/cassettes/records_manager/create/success.json
+++ b/test/support/cassettes/records_manager/create/success.json
@@ -3,12 +3,12 @@
"request": {
"body": "{\"rrsets\":[{\"type\":\"A\",\"ttl\":86400,\"records\":[{\"disabled\":false,\"content\":\"127.0.0.1\"},{\"disabled\":true,\"content\":\"192.168.0.1\"}],\"name\":\"new-record.my-domain.art.\",\"changetype\":\"REPLACE\"}]}",
"headers": {
- "X-API-Key": "Locaweb2016"
+ "X-API-Key": "S3cr37_70k3n"
},
"method": "patch",
"options": [],
"request_body": "",
- "url": "http://cpro36999.systemintegration.locaweb.com.br/api/v1/servers/localhost/zones/my-domain.art."
+ "url": "https://my-powerdns.api/api/v1/servers/localhost/zones/my-domain.art."
},
"response": {
"body": "",
@@ -27,4 +27,4 @@
"type": "ok"
}
}
-] \ No newline at end of file
+]
diff --git a/test/support/cassettes/records_manager/delete/success.json b/test/support/cassettes/records_manager/delete/success.json
index fccb1ad..2eba075 100644
--- a/test/support/cassettes/records_manager/delete/success.json
+++ b/test/support/cassettes/records_manager/delete/success.json
@@ -3,12 +3,12 @@
"request": {
"body": "{\"rrsets\":[{\"type\":\"A\",\"ttl\":null,\"records\":[],\"name\":\"record-to-delete.my-domain.art.\",\"changetype\":\"DELETE\"}]}",
"headers": {
- "X-API-Key": "Locaweb2016"
+ "X-API-Key": "S3cr37_70k3n"
},
"method": "patch",
"options": [],
"request_body": "",
- "url": "http://cpro36999.systemintegration.locaweb.com.br/api/v1/servers/localhost/zones/my-domain.art."
+ "url": "https://my-powerdns.api/api/v1/servers/localhost/zones/my-domain.art."
},
"response": {
"body": "",
@@ -27,4 +27,4 @@
"type": "ok"
}
}
-] \ No newline at end of file
+]
diff --git a/test/support/cassettes/records_manager/show/success.json b/test/support/cassettes/records_manager/show/success.json
new file mode 100644
index 0000000..542ed79
--- /dev/null
+++ b/test/support/cassettes/records_manager/show/success.json
@@ -0,0 +1,31 @@
+[
+ {
+ "request": {
+ "body": "",
+ "headers": {
+ "X-API-Key": "S3cr37_70k3n"
+ },
+ "method": "get",
+ "options": [],
+ "request_body": "",
+ "url": "https://my-powerdns.api/api/v1/servers/localhost/zones/my-domain.art."
+ },
+ "response": {
+ "body": "{\"account\": \"\", \"dnssec\": false, \"id\": \"my-domain.art.\", \"kind\": \"Native\", \"last_check\": 0, \"masters\": [], \"name\": \"my-domain.art.\", \"notified_serial\": 0, \"rrsets\": [{\"comments\": [], \"name\": \"new-record.my-domain.art.\", \"records\": [{\"content\": \"192.168.0.1\", \"disabled\": true}, {\"content\": \"127.0.0.1\", \"disabled\": false}], \"ttl\": 86400, \"type\": \"A\"}, {\"comments\": [], \"name\": \"updated-record.my-domain.art.\", \"records\": [{\"content\": \"127.0.0.1\", \"disabled\": true}], \"ttl\": 86800, \"type\": \"A\"}, {\"comments\": [], \"name\": \"my-domain.art.\", \"records\": [{\"content\": \"a.misconfigured.powerdns.server. hostmaster.my-domain.art. 2016060601 10800 3600 604800 3600\", \"disabled\": false}], \"ttl\": 3600, \"type\": \"SOA\"}], \"serial\": 2016060601, \"soa_edit\": \"\", \"soa_edit_api\": \"\", \"url\": \"api/v1/servers/localhost/zones/my-domain.art.\"}",
+ "headers": {
+ "Access-Control-Allow-Origin": "*",
+ "Connection": "close",
+ "Content-Length": "822",
+ "Content-Security-Policy": "default-src 'self'; style-src 'self' 'unsafe-inline'",
+ "Content-Type": "application/json",
+ "Server": "PowerDNS/4.0.1",
+ "X-Content-Type-Options": "nosniff",
+ "X-Frame-Options": "deny",
+ "X-Permitted-Cross-Domain-Policies": "none",
+ "X-Xss-Protection": "1; mode=block"
+ },
+ "status_code": 200,
+ "type": "ok"
+ }
+ }
+]
diff --git a/test/support/cassettes/records_manager/update/invalid_record.json b/test/support/cassettes/records_manager/update/invalid_record.json
index df6d73a..aee43cd 100644
--- a/test/support/cassettes/records_manager/update/invalid_record.json
+++ b/test/support/cassettes/records_manager/update/invalid_record.json
@@ -3,12 +3,12 @@
"request": {
"body": "{\"rrsets\":[{\"type\":\"NS\",\"ttl\":86800,\"records\":[{\"disabled\":true,\"content\":\"127.0.0.1\"}],\"name\":\"updated-record.my-domain.art.\",\"changetype\":\"REPLACE\"}]}",
"headers": {
- "X-API-Key": "Locaweb2016"
+ "X-API-Key": "S3cr37_70k3n"
},
"method": "patch",
"options": [],
"request_body": "",
- "url": "http://cpro36999.systemintegration.locaweb.com.br/api/v1/servers/localhost/zones/my-domain.art."
+ "url": "https://my-powerdns.api/api/v1/servers/localhost/zones/my-domain.art."
},
"response": {
"body": "{\"error\": \"Record updated-record.my-domain.art./NS '127.0.0.1': Not in expected format (parsed as '127.0.0.1.')\"}",
@@ -28,4 +28,4 @@
"type": "ok"
}
}
-] \ No newline at end of file
+]
diff --git a/test/support/cassettes/records_manager/update/not_found.json b/test/support/cassettes/records_manager/update/not_found.json
index 38edad2..31a82cc 100644
--- a/test/support/cassettes/records_manager/update/not_found.json
+++ b/test/support/cassettes/records_manager/update/not_found.json
@@ -3,12 +3,12 @@
"request": {
"body": "{\"rrsets\":[{\"type\":\"A\",\"ttl\":86800,\"records\":[{\"disabled\":true,\"content\":\"127.0.0.1\"}],\"name\":\"updated-record.my-domain.art.\",\"changetype\":\"REPLACE\"}]}",
"headers": {
- "X-API-Key": "Locaweb2016"
+ "X-API-Key": "S3cr37_70k3n"
},
"method": "patch",
"options": [],
"request_body": "",
- "url": "http://cpro36999.systemintegration.locaweb.com.br/api/v1/servers/localhost/zones/not-canonical-domain.tst"
+ "url": "https://my-powerdns.api/api/v1/servers/localhost/zones/not-canonical-domain.tst"
},
"response": {
"body": "{\"error\": \"Could not find domain 'not-canonical-domain.tst.'\"}",
@@ -28,4 +28,4 @@
"type": "ok"
}
}
-] \ No newline at end of file
+]
diff --git a/test/support/cassettes/records_manager/update/success.json b/test/support/cassettes/records_manager/update/success.json
index d6a5112..21263f6 100644
--- a/test/support/cassettes/records_manager/update/success.json
+++ b/test/support/cassettes/records_manager/update/success.json
@@ -3,12 +3,12 @@
"request": {
"body": "{\"rrsets\":[{\"type\":\"A\",\"ttl\":86800,\"records\":[{\"disabled\":true,\"content\":\"127.0.0.1\"}],\"name\":\"updated-record.my-domain.art.\",\"changetype\":\"REPLACE\"}]}",
"headers": {
- "X-API-Key": "Locaweb2016"
+ "X-API-Key": "S3cr37_70k3n"
},
"method": "patch",
"options": [],
"request_body": "",
- "url": "http://cpro36999.systemintegration.locaweb.com.br/api/v1/servers/localhost/zones/my-domain.art."
+ "url": "https://my-powerdns.api/api/v1/servers/localhost/zones/my-domain.art."
},
"response": {
"body": "",
@@ -27,4 +27,4 @@
"type": "ok"
}
}
-] \ No newline at end of file
+]
diff --git a/test/support/cassettes/zones_manager/create/invalid_not_canonical.json b/test/support/cassettes/zones_manager/create/invalid_not_canonical.json
index 353115d..7816f3e 100644
--- a/test/support/cassettes/zones_manager/create/invalid_not_canonical.json
+++ b/test/support/cassettes/zones_manager/create/invalid_not_canonical.json
@@ -3,12 +3,12 @@
"request": {
"body": "{\"soa_edit_api\":\"\",\"soa_edit\":\"\",\"serial\":2016060601,\"records\":[],\"nameservers\":[],\"name\":\"not-canonical-domain.tst\",\"masters\":[],\"kind\":\"Native\",\"account\":null}",
"headers": {
- "X-API-Key": "Locaweb2016"
+ "X-API-Key": "S3cr37_70k3n"
},
"method": "post",
"options": [],
"request_body": "",
- "url": "http://cpro36999.systemintegration.locaweb.com.br/api/v1/servers/localhost/zones"
+ "url": "https://my-powerdns.api/api/v1/servers/localhost/zones"
},
"response": {
"body": "{\"error\": \"DNS Name 'not-canonical-domain.tst' is not canonical\"}",
diff --git a/test/support/cassettes/zones_manager/create/success.json b/test/support/cassettes/zones_manager/create/success.json
index e7880c8..76883af 100644
--- a/test/support/cassettes/zones_manager/create/success.json
+++ b/test/support/cassettes/zones_manager/create/success.json
@@ -3,12 +3,12 @@
"request": {
"body": "{\"soa_edit_api\":\"\",\"soa_edit\":\"\",\"serial\":2016060601,\"records\":[],\"nameservers\":[],\"name\":\"my-domain.art.\",\"masters\":[],\"kind\":\"Native\",\"account\":null}",
"headers": {
- "X-API-Key": "Locaweb2016"
+ "X-API-Key": "S3cr37_70k3n"
},
"method": "post",
"options": [],
"request_body": "",
- "url": "http://cpro36999.systemintegration.locaweb.com.br/api/v1/servers/localhost/zones"
+ "url": "https://my-powerdns.api/api/v1/servers/localhost/zones"
},
"response": {
"body": "{\"account\": \"\", \"dnssec\": false, \"id\": \"my-domain.art.\", \"kind\": \"Native\", \"last_check\": 0, \"masters\": [], \"name\": \"my-domain.art.\", \"notified_serial\": 0, \"rrsets\": [{\"comments\": [], \"name\": \"my-domain.art.\", \"records\": [{\"content\": \"a.misconfigured.powerdns.server. hostmaster.my-domain.art. 2016060601 10800 3600 604800 3600\", \"disabled\": false}], \"ttl\": 3600, \"type\": \"SOA\"}], \"serial\": 2016060601, \"soa_edit\": \"\", \"soa_edit_api\": \"\", \"url\": \"api/v1/servers/localhost/zones/my-domain.art.\"}",
@@ -28,4 +28,4 @@
"type": "ok"
}
}
-] \ No newline at end of file
+]
diff --git a/test/support/cassettes/zones_manager/delete/not_found.json b/test/support/cassettes/zones_manager/delete/not_found.json
index 0637299..8239a23 100644
--- a/test/support/cassettes/zones_manager/delete/not_found.json
+++ b/test/support/cassettes/zones_manager/delete/not_found.json
@@ -3,12 +3,12 @@
"request": {
"body": "",
"headers": {
- "X-API-Key": "Locaweb2016"
+ "X-API-Key": "S3cr37_70k3n"
},
"method": "delete",
"options": [],
"request_body": "",
- "url": "http://cpro36999.systemintegration.locaweb.com.br/api/v1/servers/localhost/zones/it-will-never-exist.on.the.art."
+ "url": "https://my-powerdns.api/api/v1/servers/localhost/zones/it-will-never-exist.on.the.art."
},
"response": {
"body": "{\"error\": \"Could not find domain 'it-will-never-exist.on.the.art.'\"}",
diff --git a/test/support/cassettes/zones_manager/delete/success.json b/test/support/cassettes/zones_manager/delete/success.json
index 2f3fe90..a898ff2 100644
--- a/test/support/cassettes/zones_manager/delete/success.json
+++ b/test/support/cassettes/zones_manager/delete/success.json
@@ -3,12 +3,12 @@
"request": {
"body": "",
"headers": {
- "X-API-Key": "Locaweb2016"
+ "X-API-Key": "S3cr37_70k3n"
},
"method": "delete",
"options": [],
"request_body": "",
- "url": "http://cpro36999.systemintegration.locaweb.com.br/api/v1/servers/localhost/zones/my-domain.art."
+ "url": "https://my-powerdns.api/api/v1/servers/localhost/zones/my-domain.art."
},
"response": {
"body": "",
diff --git a/test/support/cassettes/zones_manager/show/not_found.json b/test/support/cassettes/zones_manager/show/not_found.json
index a989d91..bd54638 100644
--- a/test/support/cassettes/zones_manager/show/not_found.json
+++ b/test/support/cassettes/zones_manager/show/not_found.json
@@ -3,12 +3,12 @@
"request": {
"body": "",
"headers": {
- "X-API-Key": "Locaweb2016"
+ "X-API-Key": "S3cr37_70k3n"
},
"method": "get",
"options": [],
"request_body": "",
- "url": "http://cpro36999.systemintegration.locaweb.com.br/api/v1/servers/localhost/zones/it-will-never-exist.on.the.art."
+ "url": "https://my-powerdns.api/api/v1/servers/localhost/zones/it-will-never-exist.on.the.art."
},
"response": {
"body": "{\"error\": \"Could not find domain 'it-will-never-exist.on.the.art.'\"}",
@@ -28,4 +28,4 @@
"type": "ok"
}
}
-] \ No newline at end of file
+]
diff --git a/test/support/cassettes/zones_manager/show/success.json b/test/support/cassettes/zones_manager/show/success.json
index 8f9a935..91d5316 100644
--- a/test/support/cassettes/zones_manager/show/success.json
+++ b/test/support/cassettes/zones_manager/show/success.json
@@ -3,12 +3,12 @@
"request": {
"body": "",
"headers": {
- "X-API-Key": "Locaweb2016"
+ "X-API-Key": "S3cr37_70k3n"
},
"method": "get",
"options": [],
"request_body": "",
- "url": "http://cpro36999.systemintegration.locaweb.com.br/api/v1/servers/localhost/zones/my-domain.art."
+ "url": "https://my-powerdns.api/api/v1/servers/localhost/zones/my-domain.art."
},
"response": {
"body": "{\"account\": \"\", \"dnssec\": false, \"id\": \"my-domain.art.\", \"kind\": \"Native\", \"last_check\": 0, \"masters\": [], \"name\": \"my-domain.art.\", \"notified_serial\": 0, \"rrsets\": [{\"comments\": [], \"name\": \"my-domain.art.\", \"records\": [{\"content\": \"a.misconfigured.powerdns.server. hostmaster.my-domain.art. 2016060601 10800 3600 604800 3600\", \"disabled\": false}], \"ttl\": 3600, \"type\": \"SOA\"}], \"serial\": 2016060601, \"soa_edit\": \"\", \"soa_edit_api\": \"\", \"url\": \"api/v1/servers/localhost/zones/my-domain.art.\"}",
@@ -28,4 +28,4 @@
"type": "ok"
}
}
-] \ No newline at end of file
+]