epp-client 0.0.3 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +24 -0
  3. data/.simplecov +16 -0
  4. data/.travis.yml +11 -0
  5. data/.yardopts +4 -0
  6. data/Gemfile +20 -0
  7. data/Gemfile.lock +51 -0
  8. data/LICENSE +1 -1
  9. data/README.md +75 -0
  10. data/Rakefile +2 -37
  11. data/epp-client.gemspec +15 -58
  12. data/gemfiles/Gemfile.ruby18 +13 -0
  13. data/lib/epp-client.rb +94 -7
  14. data/lib/epp-client/client.rb +117 -20
  15. data/lib/epp-client/commands/check.rb +11 -0
  16. data/lib/epp-client/commands/command.rb +24 -0
  17. data/lib/epp-client/commands/create.rb +11 -0
  18. data/lib/epp-client/commands/delete.rb +11 -0
  19. data/lib/epp-client/commands/info.rb +11 -0
  20. data/lib/epp-client/commands/login.rb +40 -0
  21. data/lib/epp-client/commands/logout.rb +11 -0
  22. data/lib/epp-client/commands/poll.rb +28 -0
  23. data/lib/epp-client/commands/read_write_command.rb +18 -0
  24. data/lib/epp-client/commands/renew.rb +11 -0
  25. data/lib/epp-client/commands/transfer.rb +25 -0
  26. data/lib/epp-client/commands/update.rb +11 -0
  27. data/lib/epp-client/contact/check.rb +23 -0
  28. data/lib/epp-client/contact/check_response.rb +22 -0
  29. data/lib/epp-client/contact/command.rb +87 -0
  30. data/lib/epp-client/contact/create.rb +34 -0
  31. data/lib/epp-client/contact/create_response.rb +14 -0
  32. data/lib/epp-client/contact/delete.rb +21 -0
  33. data/lib/epp-client/contact/delete_response.rb +9 -0
  34. data/lib/epp-client/contact/info.rb +21 -0
  35. data/lib/epp-client/contact/info_response.rb +74 -0
  36. data/lib/epp-client/contact/response.rb +34 -0
  37. data/lib/epp-client/contact/transfer.rb +21 -0
  38. data/lib/epp-client/contact/transfer_response.rb +26 -0
  39. data/lib/epp-client/contact/update.rb +80 -0
  40. data/lib/epp-client/contact/update_response.rb +9 -0
  41. data/lib/epp-client/domain/check.rb +23 -0
  42. data/lib/epp-client/domain/check_response.rb +22 -0
  43. data/lib/epp-client/domain/command.rb +92 -0
  44. data/lib/epp-client/domain/create.rb +49 -0
  45. data/lib/epp-client/domain/create_response.rb +17 -0
  46. data/lib/epp-client/domain/delete.rb +21 -0
  47. data/lib/epp-client/domain/delete_response.rb +9 -0
  48. data/lib/epp-client/domain/info.rb +21 -0
  49. data/lib/epp-client/domain/info_response.rb +66 -0
  50. data/lib/epp-client/domain/renew.rb +34 -0
  51. data/lib/epp-client/domain/renew_response.rb +14 -0
  52. data/lib/epp-client/domain/response.rb +34 -0
  53. data/lib/epp-client/domain/transfer.rb +27 -0
  54. data/lib/epp-client/domain/transfer_response.rb +29 -0
  55. data/lib/epp-client/domain/update.rb +81 -0
  56. data/lib/epp-client/domain/update_response.rb +9 -0
  57. data/lib/epp-client/host/check.rb +23 -0
  58. data/lib/epp-client/host/check_response.rb +22 -0
  59. data/lib/epp-client/host/command.rb +47 -0
  60. data/lib/epp-client/host/create.rb +24 -0
  61. data/lib/epp-client/host/create_response.rb +14 -0
  62. data/lib/epp-client/host/delete.rb +21 -0
  63. data/lib/epp-client/host/delete_response.rb +9 -0
  64. data/lib/epp-client/host/info.rb +21 -0
  65. data/lib/epp-client/host/info_response.rb +42 -0
  66. data/lib/epp-client/host/response.rb +34 -0
  67. data/lib/epp-client/host/update.rb +76 -0
  68. data/lib/epp-client/host/update_response.rb +9 -0
  69. data/lib/epp-client/request.rb +29 -74
  70. data/lib/epp-client/requests/abstract.rb +30 -0
  71. data/lib/epp-client/requests/command.rb +28 -0
  72. data/lib/epp-client/requests/extension.rb +28 -0
  73. data/lib/epp-client/requests/hello.rb +12 -0
  74. data/lib/epp-client/response.rb +45 -8
  75. data/lib/epp-client/response_helper.rb +25 -0
  76. data/lib/epp-client/server.rb +167 -63
  77. data/lib/epp-client/testing.rb +59 -0
  78. data/lib/epp-client/version.rb +3 -0
  79. data/lib/epp-client/xml_helper.rb +71 -0
  80. data/test/commands/test_check_command.rb +33 -0
  81. data/test/commands/test_create_command.rb +53 -0
  82. data/test/commands/test_delete_command.rb +28 -0
  83. data/test/commands/test_info_command.rb +28 -0
  84. data/test/commands/test_login_command.rb +56 -0
  85. data/test/commands/test_logout_command.rb +22 -0
  86. data/test/commands/test_poll_command.rb +54 -0
  87. data/test/commands/test_renew_command.rb +39 -0
  88. data/test/commands/test_transfer_command.rb +37 -0
  89. data/test/commands/test_update_command.rb +60 -0
  90. data/test/contact/test_contact_check.rb +33 -0
  91. data/test/contact/test_contact_check_response.rb +38 -0
  92. data/test/contact/test_contact_create.rb +70 -0
  93. data/test/contact/test_contact_create_response.rb +33 -0
  94. data/test/contact/test_contact_delete.rb +28 -0
  95. data/test/contact/test_contact_delete_response.rb +23 -0
  96. data/test/contact/test_contact_info.rb +28 -0
  97. data/test/contact/test_contact_info_response.rb +100 -0
  98. data/test/contact/test_contact_transfer.rb +28 -0
  99. data/test/contact/test_contact_transfer_response.rb +100 -0
  100. data/test/contact/test_contact_update.rb +83 -0
  101. data/test/contact/test_contact_update_response.rb +23 -0
  102. data/test/domain/test_domain_check.rb +33 -0
  103. data/test/domain/test_domain_check_response.rb +38 -0
  104. data/test/domain/test_domain_create.rb +53 -0
  105. data/test/domain/test_domain_create_response.rb +39 -0
  106. data/test/domain/test_domain_delete.rb +28 -0
  107. data/test/domain/test_domain_delete_response.rb +23 -0
  108. data/test/domain/test_domain_info.rb +28 -0
  109. data/test/domain/test_domain_info_response.rb +107 -0
  110. data/test/domain/test_domain_renew.rb +39 -0
  111. data/test/domain/test_domain_renew_response.rb +32 -0
  112. data/test/domain/test_domain_transfer.rb +37 -0
  113. data/test/domain/test_domain_transfer_response.rb +112 -0
  114. data/test/domain/test_domain_update.rb +73 -0
  115. data/test/domain/test_domain_update_response.rb +23 -0
  116. data/test/fixtures/responses/contact/check.xml +27 -0
  117. data/test/fixtures/responses/contact/create.xml +19 -0
  118. data/test/fixtures/responses/contact/delete.xml +12 -0
  119. data/test/fixtures/responses/contact/info.xml +49 -0
  120. data/test/fixtures/responses/contact/transfer-query.xml +23 -0
  121. data/test/fixtures/responses/contact/transfer-request.xml +23 -0
  122. data/test/fixtures/responses/contact/update.xml +12 -0
  123. data/test/fixtures/responses/domain/check.xml +27 -0
  124. data/test/fixtures/responses/domain/create.xml +20 -0
  125. data/test/fixtures/responses/domain/delete.xml +12 -0
  126. data/test/fixtures/responses/domain/info-no-exDate.xml +38 -0
  127. data/test/fixtures/responses/domain/info.xml +39 -0
  128. data/test/fixtures/responses/domain/renew.xml +19 -0
  129. data/test/fixtures/responses/domain/transfer-query.xml +24 -0
  130. data/test/fixtures/responses/domain/transfer-request.xml +24 -0
  131. data/test/fixtures/responses/domain/update.xml +12 -0
  132. data/test/fixtures/responses/greeting.xml +25 -0
  133. data/test/fixtures/responses/host/check.xml +27 -0
  134. data/test/fixtures/responses/host/create.xml +19 -0
  135. data/test/fixtures/responses/host/delete.xml +12 -0
  136. data/test/fixtures/responses/host/info.xml +30 -0
  137. data/test/fixtures/responses/host/update.xml +12 -0
  138. data/test/helper.rb +89 -0
  139. data/test/host/test_host_check.rb +33 -0
  140. data/test/host/test_host_check_response.rb +38 -0
  141. data/test/host/test_host_create.rb +37 -0
  142. data/test/host/test_host_create_response.rb +33 -0
  143. data/test/host/test_host_delete.rb +28 -0
  144. data/test/host/test_host_delete_response.rb +23 -0
  145. data/test/host/test_host_info.rb +28 -0
  146. data/test/host/test_host_info_response.rb +72 -0
  147. data/test/host/test_host_update.rb +68 -0
  148. data/test/host/test_host_update_response.rb +23 -0
  149. data/test/requests/test_command_request.rb +16 -0
  150. data/test/requests/test_extension_request.rb +55 -0
  151. data/test/requests/test_hello_request.rb +15 -0
  152. data/test/support/schemas/all.xsd +21 -0
  153. data/test/support/schemas/contact-1.0.xsd +387 -0
  154. data/test/support/schemas/domain-1.0.xsd +432 -0
  155. data/test/support/schemas/epp-1.0.xsd +403 -0
  156. data/test/support/schemas/eppcom-1.0.xsd +93 -0
  157. data/test/support/schemas/host-1.0.xsd +240 -0
  158. data/test/test_client.rb +54 -0
  159. data/test/test_request.rb +15 -0
  160. data/test/test_server.rb +57 -0
  161. metadata +270 -91
  162. data/.document +0 -5
  163. data/README.rdoc +0 -17
  164. data/VERSION +0 -1
  165. data/lib/epp-client/hello_request.rb +0 -9
  166. data/test/test_epp-client.rb +0 -7
@@ -0,0 +1,28 @@
1
+ require 'helper'
2
+
3
+ class TestEppDomainInfoCommand < Test::Unit::TestCase
4
+ context 'EPP::Domain::Info' do
5
+ setup do
6
+ @domain_info = EPP::Domain::Info.new('example.com')
7
+
8
+ @info = EPP::Commands::Info.new(@domain_info)
9
+ @command = EPP::Requests::Command.new('ABC-123', @info)
10
+ @request = EPP::Request.new(@command)
11
+ @xml = @request.to_xml
12
+
13
+ namespaces_from_request
14
+ end
15
+
16
+ should 'validate against schema' do
17
+ assert @xml.validate_schema(schema)
18
+ end
19
+
20
+ should 'set clTRID' do
21
+ assert_equal 'ABC-123', xpath_find('//epp:clTRID')
22
+ end
23
+
24
+ should 'set example.com as name' do
25
+ assert_equal 'example.com', xpath_find('//domain:name')
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,107 @@
1
+ require 'helper'
2
+
3
+ class TestEppDomainInfoResponse < Test::Unit::TestCase
4
+ context 'EPP::Domain::InfoResponse' do
5
+ setup do
6
+ @response = EPP::Response.new(load_xml('domain/info'))
7
+ @info_response = EPP::Domain::InfoResponse.new(@response)
8
+ end
9
+
10
+ should 'proxy methods to @response' do
11
+ assert_equal @response.message, @info_response.message
12
+ end
13
+
14
+ should 'be successful' do
15
+ assert @info_response.success?
16
+ assert_equal 1000, @info_response.code
17
+ end
18
+
19
+ should 'have message' do
20
+ assert_equal 'Command completed successfully', @info_response.message
21
+ end
22
+
23
+ should 'have name' do
24
+ assert_equal 'example.com', @info_response.name
25
+ end
26
+
27
+ should 'have roid' do
28
+ assert_equal 'EXAMPLE1-REP', @info_response.roid
29
+ end
30
+
31
+ should 'have status' do
32
+ assert_equal 'ok', @info_response.status
33
+ end
34
+
35
+ should 'have registrant' do
36
+ assert_equal 'jd1234', @info_response.registrant
37
+ end
38
+
39
+ should 'have contacts' do
40
+ expected = { 'admin' => 'sh8013', 'tech' => 'sh8013' }
41
+ assert_equal expected, @info_response.contacts
42
+ end
43
+
44
+ should 'have nameservers' do
45
+ expected = [ {'name' => 'ns1.example.com'},
46
+ {'name' => 'ns1.example.net'} ]
47
+ assert_equal expected, @info_response.nameservers
48
+ end
49
+
50
+ should 'have hosts' do
51
+ expected = %w(ns1.example.com ns2.example.com)
52
+ assert_equal expected, @info_response.hosts
53
+ end
54
+
55
+ should 'have client_id' do
56
+ assert_equal 'ClientX', @info_response.client_id
57
+ end
58
+
59
+ should 'have creator_id' do
60
+ assert_equal 'ClientY', @info_response.creator_id
61
+ end
62
+
63
+ should 'have created_date' do
64
+ # 1999-04-03T22:00:00.0Z
65
+ expected = Time.gm(1999,4,3,22,00,00)
66
+ assert_equal expected, @info_response.created_date
67
+ end
68
+
69
+ should 'have updator_id' do
70
+ assert_equal 'ClientX', @info_response.updator_id
71
+ end
72
+
73
+ should 'have updated_date' do
74
+ # 1999-12-03T09:00:00.0Z
75
+ expected = Time.gm(1999,12,3,9,00,00)
76
+ assert_equal expected, @info_response.updated_date
77
+ end
78
+
79
+ should 'have expiration_date' do
80
+ # 2005-04-03T22:00:00.0Z
81
+ expected = Time.gm(2005,4,3,22,00,00)
82
+ assert_equal expected, @info_response.expiration_date
83
+ end
84
+
85
+ should 'have transfer_date' do
86
+ # 2000-04-08T09:00:00.0Z
87
+ expected = Time.gm(2000,4,8,9,00,00)
88
+ assert_equal expected, @info_response.transfer_date
89
+ end
90
+
91
+ should 'have authInfo' do
92
+ expected = { 'pw' => '2fooBAR' }
93
+ assert_equal expected, @info_response.auth_info
94
+ end
95
+
96
+ context 'no expiration_date' do
97
+ setup do
98
+ @response = EPP::Response.new(load_xml('domain/info-no-exDate'))
99
+ @info_response = EPP::Domain::InfoResponse.new(@response)
100
+ end
101
+
102
+ should 'have nil for expiration_date' do
103
+ assert_nil @info_response.expiration_date
104
+ end
105
+ end
106
+ end
107
+ end
@@ -0,0 +1,39 @@
1
+ require 'helper'
2
+
3
+ class TestEppDomainRenewCommand < Test::Unit::TestCase
4
+ context 'EPP::Domain::Renew' do
5
+ setup do
6
+ @time = Time.now
7
+ @domain_renew = EPP::Domain::Renew.new('example.com', @time, '12m')
8
+
9
+ @renew = EPP::Commands::Renew.new(@domain_renew)
10
+ @command = EPP::Requests::Command.new('ABC-123', @renew)
11
+ @request = EPP::Request.new(@command)
12
+ @xml = @request.to_xml
13
+
14
+ namespaces_from_request
15
+ end
16
+
17
+ should 'validate against schema' do
18
+ assert @xml.validate_schema(schema)
19
+ end
20
+
21
+ should 'set clTRID' do
22
+ assert_equal 'ABC-123', xpath_find('//epp:clTRID')
23
+ end
24
+
25
+ should 'set example.com as name' do
26
+ assert_equal 'example.com', xpath_find('//domain:name')
27
+ end
28
+
29
+ should 'set date as curExpDate' do
30
+ date = @time.strftime('%Y-%m-%d')
31
+ assert_equal date, xpath_find('//domain:curExpDate')
32
+ end
33
+
34
+ should 'set period' do
35
+ assert_equal '12', xpath_find('//domain:period')
36
+ assert_equal 'm', xpath_find('//domain:period/@unit')
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,32 @@
1
+ require 'helper'
2
+
3
+ class TestEppDomainRenewResponse < Test::Unit::TestCase
4
+ context 'EPP::Domain::RenewResponse' do
5
+ setup do
6
+ @response = EPP::Response.new(load_xml('domain/renew'))
7
+ @renew_response = EPP::Domain::RenewResponse.new(@response)
8
+ end
9
+
10
+ should 'proxy methods to @response' do
11
+ assert_equal @response.message, @renew_response.message
12
+ end
13
+
14
+ should 'be successful' do
15
+ assert @renew_response.success?
16
+ assert_equal 1000, @renew_response.code
17
+ end
18
+
19
+ should 'have message' do
20
+ assert_equal 'Command completed successfully', @renew_response.message
21
+ end
22
+
23
+ should 'have name example.com' do
24
+ assert_equal 'example.com', @renew_response.name
25
+ end
26
+
27
+ should 'have new expiration date' do
28
+ expected = Time.gm(2005,04,03,22,00,00)
29
+ assert_equal expected, @renew_response.expiration_date
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,37 @@
1
+ require 'helper'
2
+
3
+ class TestEppDomainTransferCommand < Test::Unit::TestCase
4
+ context 'EPP::Domain::Transfer' do
5
+ setup do
6
+ @domain_transfer = EPP::Domain::Transfer.new('example.com', '12m', :pw => '2381728348')
7
+
8
+ @transfer = EPP::Commands::Transfer.new('query', @domain_transfer)
9
+ @command = EPP::Requests::Command.new('ABC-123', @transfer)
10
+ @request = EPP::Request.new(@command)
11
+ @xml = @request.to_xml
12
+
13
+ namespaces_from_request
14
+ end
15
+
16
+ should 'validate against schema' do
17
+ assert @xml.validate_schema(schema)
18
+ end
19
+
20
+ should 'set clTRID' do
21
+ assert_equal 'ABC-123', xpath_find('//epp:clTRID')
22
+ end
23
+
24
+ should 'set example.com as name' do
25
+ assert_equal 'example.com', xpath_find('//domain:name')
26
+ end
27
+
28
+ should 'set period' do
29
+ assert_equal '12', xpath_find('//domain:period')
30
+ assert_equal 'm', xpath_find('//domain:period/@unit')
31
+ end
32
+
33
+ should 'set authInfo' do
34
+ assert_equal '2381728348', xpath_find('//domain:authInfo/domain:pw')
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,112 @@
1
+ require 'helper'
2
+
3
+ class TestEppDomainTransferResponse < Test::Unit::TestCase
4
+ context 'EPP::Domain::TransferResponse' do
5
+ context 'query' do
6
+ setup do
7
+ @response = EPP::Response.new(load_xml('domain/transfer-query'))
8
+ @transfer_response = EPP::Domain::TransferResponse.new(@response)
9
+ end
10
+
11
+ should 'proxy methods to @response' do
12
+ assert_equal @response.message, @transfer_response.message
13
+ end
14
+
15
+ should 'be successful' do
16
+ assert @transfer_response.success?
17
+ assert_equal 1000, @transfer_response.code
18
+ end
19
+
20
+ should 'have message' do
21
+ assert_equal 'Command completed successfully', @transfer_response.message
22
+ end
23
+
24
+ should 'have domain name' do
25
+ assert_equal 'example.com', @transfer_response.name
26
+ end
27
+
28
+ should 'have transfer status' do
29
+ assert_equal 'pending', @transfer_response.status
30
+ end
31
+
32
+ should 'have request ID' do
33
+ assert_equal 'ClientX', @transfer_response.requested_id
34
+ end
35
+
36
+ should 'have request date' do
37
+ # 2000-06-06T22:00:00.0Z
38
+ expected = Time.gm(2000,6,6,22,00,00)
39
+ assert_equal expected, @transfer_response.requested_date
40
+ end
41
+
42
+ should 'have expiration date' do
43
+ # 2002-09-08T22:00:00.0Z
44
+ expected = Time.gm(2002,9,8,22,00,00)
45
+ assert_equal expected, @transfer_response.expiration_date
46
+ end
47
+
48
+ should 'have action id' do
49
+ assert_equal 'ClientY', @transfer_response.action_id
50
+ end
51
+
52
+ should 'have action date' do
53
+ # 2000-06-11T22:00:00.0Z
54
+ expected = Time.gm(2000,6,11,22,00,00)
55
+ assert_equal expected, @transfer_response.action_date
56
+ end
57
+ end
58
+ context 'request' do
59
+ setup do
60
+ @response = EPP::Response.new(load_xml('domain/transfer-request'))
61
+ @transfer_response = EPP::Domain::TransferResponse.new(@response)
62
+ end
63
+
64
+ should 'proxy methods to @response' do
65
+ assert_equal @response.message, @transfer_response.message
66
+ end
67
+
68
+ should 'be pending' do
69
+ assert @transfer_response.pending?
70
+ assert_equal 1001, @transfer_response.code
71
+ end
72
+
73
+ should 'have message' do
74
+ assert_equal 'Command completed successfully; action pending', @transfer_response.message
75
+ end
76
+
77
+ should 'have domain name' do
78
+ assert_equal 'example.com', @transfer_response.name
79
+ end
80
+
81
+ should 'have transfer status' do
82
+ assert_equal 'pending', @transfer_response.status
83
+ end
84
+
85
+ should 'have request ID' do
86
+ assert_equal 'ClientX', @transfer_response.requested_id
87
+ end
88
+
89
+ should 'have request date' do
90
+ # 2000-06-06T22:00:00.0Z
91
+ expected = Time.gm(2000,6,8,22,00,00)
92
+ assert_equal expected, @transfer_response.requested_date
93
+ end
94
+
95
+ should 'have expiration date' do
96
+ # 2002-09-08T22:00:00.0Z
97
+ expected = Time.gm(2002,9,8,22,00,00)
98
+ assert_equal expected, @transfer_response.expiration_date
99
+ end
100
+
101
+ should 'have action id' do
102
+ assert_equal 'ClientY', @transfer_response.action_id
103
+ end
104
+
105
+ should 'have action date' do
106
+ # 2000-06-13T22:00:00.0Z
107
+ expected = Time.gm(2000,6,13,22,00,00)
108
+ assert_equal expected, @transfer_response.action_date
109
+ end
110
+ end
111
+ end
112
+ end
@@ -0,0 +1,73 @@
1
+ require 'helper'
2
+
3
+ class TestEppDomainUpdateCommand < Test::Unit::TestCase
4
+ context 'EPP::Domain::Update' do
5
+ setup do
6
+ @domain_update = EPP::Domain::Update.new('example.com',
7
+ :add => {:ns => %w(ns1.test.host ns2.test.host),
8
+ :status => {:ok => "Okie Dokie"}},
9
+ :rem => {:ns => %w(ns3.test.host ns4.test.host),
10
+ :status => {:ok => ["Okie Dokie", "en"]}},
11
+ :chg => {
12
+ :registrant => 'UK-2349723',
13
+ :auth_info => {:pw => '2381728348'}
14
+ })
15
+
16
+ @update = EPP::Commands::Update.new(@domain_update)
17
+ @command = EPP::Requests::Command.new('ABC-123', @update)
18
+ @request = EPP::Request.new(@command)
19
+ @xml = @request.to_xml
20
+
21
+ namespaces_from_request
22
+ end
23
+
24
+ should 'validate against schema' do
25
+ assert @xml.validate_schema(schema)
26
+ end
27
+
28
+ should 'set clTRID' do
29
+ assert_equal 'ABC-123', xpath_find('//epp:clTRID')
30
+ end
31
+
32
+ should 'set example.com as name' do
33
+ assert_equal 'example.com', xpath_find('//domain:name')
34
+ end
35
+
36
+ should 'add nameservers' do
37
+ nameservers = []
38
+ xpath_each('//domain:add/domain:ns/domain:hostObj') do |node|
39
+ nameservers << node.content.strip
40
+ end
41
+
42
+ assert_equal %w(ns1.test.host ns2.test.host), nameservers
43
+ end
44
+
45
+ should 'add status' do
46
+ assert_equal "Okie Dokie", xpath_find('//domain:add/domain:status')
47
+ assert_equal "ok", xpath_find('//domain:add/domain:status/@s')
48
+ end
49
+
50
+ should 'remove nameservers' do
51
+ nameservers = []
52
+ xpath_each('//domain:rem/domain:ns/domain:hostObj') do |node|
53
+ nameservers << node.content.strip
54
+ end
55
+
56
+ assert_equal %w(ns3.test.host ns4.test.host), nameservers
57
+ end
58
+
59
+ should 'remove status' do
60
+ assert_equal "Okie Dokie", xpath_find('//domain:rem/domain:status')
61
+ assert_equal "en", xpath_find('//domain:rem/domain:status/@lang')
62
+ assert_equal "ok", xpath_find('//domain:rem/domain:status/@s')
63
+ end
64
+
65
+ should 'set registant for change' do
66
+ assert_equal 'UK-2349723', xpath_find('//domain:chg/domain:registrant')
67
+ end
68
+
69
+ should 'set authInfo for change' do
70
+ assert_equal '2381728348', xpath_find('//domain:chg/domain:authInfo/domain:pw')
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,23 @@
1
+ require 'helper'
2
+
3
+ class TestEppDomainUpdateResponse < Test::Unit::TestCase
4
+ context 'EPP::Domain::UpdateResponse' do
5
+ setup do
6
+ @response = EPP::Response.new(load_xml('domain/update'))
7
+ @update_response = EPP::Domain::UpdateResponse.new(@response)
8
+ end
9
+
10
+ should 'proxy methods to @response' do
11
+ assert_equal @response.message, @update_response.message
12
+ end
13
+
14
+ should 'be successful' do
15
+ assert @update_response.success?
16
+ assert_equal 1000, @update_response.code
17
+ end
18
+
19
+ should 'have message' do
20
+ assert_equal 'Command completed successfully', @update_response.message
21
+ end
22
+ end
23
+ end