enom 0.9.10 → 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.
@@ -32,7 +32,6 @@ All commands are executed as enom [options] command [command-options] args
32
32
  The following commands are available:
33
33
 
34
34
  help # Show this usage
35
- info # Show your account information
36
35
 
37
36
  list # List all domains
38
37
  check domain.com # Check if a domain is available (for registration)
@@ -100,7 +100,7 @@ module Enom
100
100
 
101
101
  # Check if the domain is currently locked. locked? helper method also available
102
102
  def locked
103
- unless @locked
103
+ unless defined?(@locked)
104
104
  response = Client.request('Command' => 'GetRegLock', 'SLD' => sld, 'TLD' => tld)['interface_response']['reg_lock']
105
105
  @locked = response == '1'
106
106
  end
@@ -137,7 +137,7 @@ module Enom
137
137
  end
138
138
 
139
139
  def expiration_date
140
- unless @expiration_date
140
+ unless defined?(@expiration_date)
141
141
  date_string = @domain_payload['interface_response']['GetDomainInfo']['status']['expiration']
142
142
  @expiration_date = Date.strptime(date_string.split(' ').first, "%m/%d/%Y")
143
143
  end
@@ -6,6 +6,7 @@ class AccountTest < Test::Unit::TestCase
6
6
  setup do
7
7
  Enom::Client.username = "resellid"
8
8
  Enom::Client.password = "resellpw"
9
+ Enom::Client.test = false
9
10
  end
10
11
 
11
12
  should "return the available account balance" do
@@ -32,14 +32,6 @@ class CliTest < Test::Unit::TestCase
32
32
  assert_equal "Renewed test123456test123456.com", @cli.execute("renew", ["test123456test123456.com"])
33
33
  end
34
34
  end
35
-
36
- # context "'describe'" do
37
- # should "show the domain information" do
38
- # assert_equal "...", @cli.execute("describe", ["test1234test1234.com"])
39
- # end
40
- # end
41
-
42
-
43
35
  end
44
36
 
45
37
  end
@@ -0,0 +1,23 @@
1
+ require 'test_helper'
2
+
3
+ class ContactInfoTest < Test::Unit::TestCase
4
+
5
+ context "A domain in your account" do
6
+ setup do
7
+ Enom::Client.username = "resellid"
8
+ Enom::Client.password = "resellpw"
9
+ Enom::Client.test = false
10
+ @domain = Enom::Domain.find("test123456test123456.com")
11
+ end
12
+
13
+ should "respond to included contact methods" do
14
+ Enom::ContactInfo::CONTACT_TYPES.each do |contact_type|
15
+ assert_respond_to @domain, "#{contact_type.downcase}_contact_info"
16
+ assert_respond_to @domain, "update_#{contact_type.downcase}_contact_info"
17
+ end
18
+ assert_respond_to @domain, :all_contact_info
19
+ assert_respond_to @domain, :update_all_contact_info
20
+ end
21
+ end
22
+
23
+ end
@@ -9,6 +9,20 @@ class DomainTest < Test::Unit::TestCase
9
9
  Enom::Client.test = false
10
10
  end
11
11
 
12
+ context "listing all domains" do
13
+ setup do
14
+ @domains = Enom::Domain.all
15
+ end
16
+ should "return several domain objects" do
17
+ @domains.each do |domain|
18
+ assert_kind_of Enom::Domain, domain
19
+ end
20
+ end
21
+ should "return two domains" do
22
+ assert_equal 2, @domains.size
23
+ end
24
+ end
25
+
12
26
  context "checking for available domains" do
13
27
  should "return 'available' for an available domain" do
14
28
  assert_equal "available", Enom::Domain.check("test123456test123456.com")
@@ -63,15 +77,48 @@ class DomainTest < Test::Unit::TestCase
63
77
  assert !@domain.unlocked?
64
78
  end
65
79
 
66
- should "have default Enom nameservers" do
67
- nameservers = [
68
- "dns1.name-services.com",
69
- "dns2.name-services.com",
70
- "dns3.name-services.com",
71
- "dns4.name-services.com",
72
- "dns5.name-services.com"
73
- ]
74
- assert_equal nameservers, @domain.nameservers
80
+ context "with default nameservers" do
81
+ should "have default Enom nameservers" do
82
+ nameservers = [
83
+ "dns1.name-services.com",
84
+ "dns2.name-services.com",
85
+ "dns3.name-services.com",
86
+ "dns4.name-services.com",
87
+ "dns5.name-services.com"
88
+ ]
89
+ assert_equal nameservers, @domain.nameservers
90
+ end
91
+ should "update nameservers if there are 2 or more provided" do
92
+ new_nameservers = ["ns1.foo.com", "ns2.foo.com"]
93
+ @domain.update_nameservers(new_nameservers)
94
+ assert_equal new_nameservers, @domain.nameservers
95
+ end
96
+ should "not update nameservers if less than 2 or more than 12 are provided" do
97
+ not_enough = ["ns1.foo.com"]
98
+ too_many = ["ns1.foo.com", "ns2.foo.com", "ns3.foo.com", "ns4.foo.com", "ns5.foo.com", "ns6.foo.com", "ns7.foo.com", "ns8.foo.com", "ns9.foo.com", "ns10.foo.com", "ns11.foo.com", "ns12.foo.com", "ns13.foo.com"]
99
+ assert_raises Enom::InvalidNameServerCount do
100
+ @domain.update_nameservers(not_enough)
101
+ end
102
+ assert_raises Enom::InvalidNameServerCount do
103
+ @domain.update_nameservers(too_many)
104
+ end
105
+ end
106
+ end
107
+
108
+ should "have an expiration date" do
109
+ assert_kind_of Date, @domain.expiration_date
110
+ assert_equal "2012-01-30", @domain.expiration_date.strftime("%Y-%m-%d")
111
+ end
112
+
113
+ context "that is currently locked" do
114
+ setup do
115
+ @domain.unlock
116
+ end
117
+
118
+ should "unlock successfully" do
119
+ assert !@domain.locked?
120
+ assert @domain.unlocked?
121
+ end
75
122
  end
76
123
  end
77
124
  end
@@ -241,8 +241,8 @@ class Test::Unit::TestCase
241
241
  <DomainCount>74</DomainCount>
242
242
  <Command>GETBALANCE</Command>
243
243
  <ErrCount>0</ErrCount>
244
- <Server>ResellerTest</Server>
245
- <Site>enom</Site>
244
+ <Server>RESELLERTEST</Server>
245
+ <Site>eNom</Site>
246
246
  <Done>true</Done>
247
247
  <debug><![CDATA[]]></debug>
248
248
  </interface-response>
@@ -274,6 +274,100 @@ class Test::Unit::TestCase
274
274
  <debug><![CDATA[]]></debug>
275
275
  </interface-response>
276
276
  EOF
277
+ },
278
+ {
279
+ :command => "SetRegLock",
280
+ :request => "https://reseller.enom.com/interface.asp?Command=SetRegLock&SLD=test123456test123456&TLD=com&UnlockRegistrar=1&UID=resellid&PW=resellpw&ResponseType=xml",
281
+ :response => <<-EOF
282
+ <?xml version="1.0"?>
283
+ <interface-response>
284
+ <RegistrarLock>ACTIVE</RegistrarLock>
285
+ <RRPCodeSR>200</RRPCodeSR>
286
+ <RRPText>Command completed successfully</RRPText>
287
+ <Command>SETREGLOCK</Command>
288
+ <Language>eng</Language>
289
+ <ErrCount>0</ErrCount>
290
+ <ResponseCount>0</ResponseCount>
291
+ <MinPeriod>1</MinPeriod>
292
+ <MaxPeriod>10</MaxPeriod>
293
+ <Server>RESELLERTEST</Server>
294
+ <Site>eNom</Site>
295
+ <IsLockable>True</IsLockable>
296
+ <IsRealTimeTLD>True</IsRealTimeTLD>
297
+ <TimeDifference>+08.00</TimeDifference>
298
+ <ExecTime>1.016</ExecTime>
299
+ <Done>true</Done>
300
+ <debug><![CDATA[]]></debug>
301
+ </interface-response>
302
+ EOF
303
+ },
304
+ {
305
+ :command => "ModifyNS",
306
+ :request => "https://reseller.enom.com/interface.asp?Command=ModifyNS&SLD=test123456test123456&TLD=com&NS1=ns1.foo.com&NS2=ns2.foo.com&UID=resellid&PW=resellpw&ResponseType=xml",
307
+ :response => <<-EOF
308
+ <?xml version="1.0"?>
309
+ <interface-response>
310
+ <reg-lock>0</reg-lock>
311
+ <registrar>E</registrar>
312
+ <RRPCode>200</RRPCode>
313
+ <RRPText>Command completed successfully</RRPText>
314
+ <Command>MODIFYNS</Command>
315
+ <Language>eng</Language>
316
+ <ErrCount>0</ErrCount>
317
+ <ResponseCount>0</ResponseCount>
318
+ <MinPeriod>1</MinPeriod>
319
+ <MaxPeriod>10</MaxPeriod>
320
+ <Server>RESELLERTEST</Server>
321
+ <Site>eNom</Site>
322
+ <IsLockable>True</IsLockable>
323
+ <IsRealTimeTLD>True</IsRealTimeTLD>
324
+ <TimeDifference>+08.00</TimeDifference>
325
+ <ExecTime>1.594</ExecTime>
326
+ <Done>true</Done>
327
+ <debug><![CDATA[]]></debug>
328
+ </interface-response>
329
+ EOF
330
+ },
331
+ {
332
+ :command => "GetAllDomains",
333
+ :request => "https://reseller.enom.com/interface.asp?Command=GetAllDomains&UID=resellid&PW=resellpw&ResponseType=xml",
334
+ :response => <<-EOF
335
+ <?xml version="1.0"?>
336
+ <interface-response>
337
+ <GetAllDomains>
338
+ <DomainDetail>
339
+ <DomainName>test1234567test1234567.com</DomainName>
340
+ <DomainNameID>340724808</DomainNameID>
341
+ <expiration-date>1/30/2012 5:23:00 PM</expiration-date>
342
+ <lockstatus>Locked</lockstatus>
343
+ <AutoRenew>No</AutoRenew>
344
+ </DomainDetail>
345
+ <DomainDetail>
346
+ <DomainName>test123456test123456.com</DomainName>
347
+ <DomainNameID>340724807</DomainNameID>
348
+ <expiration-date>1/30/2013 5:21:00 PM</expiration-date>
349
+ <lockstatus>Locked</lockstatus>
350
+ <AutoRenew>No</AutoRenew>
351
+ </DomainDetail>
352
+ <domaincount>2</domaincount>
353
+ <UserRequestStatus>DomainBox</UserRequestStatus>
354
+ </GetAllDomains>
355
+ <Command>GETALLDOMAINS</Command>
356
+ <Language>eng</Language>
357
+ <ErrCount>0</ErrCount>
358
+ <ResponseCount>0</ResponseCount>
359
+ <MinPeriod/>
360
+ <MaxPeriod>10</MaxPeriod>
361
+ <Server>RESELLERTEST</Server>
362
+ <Site>eNom</Site>
363
+ <IsLockable/>
364
+ <IsRealTimeTLD/>
365
+ <TimeDifference>+0.00</TimeDifference>
366
+ <ExecTime>0.156</ExecTime>
367
+ <Done>true</Done>
368
+ <debug><![CDATA[]]></debug>
369
+ </interface-response>
370
+ EOF
277
371
  }
278
372
  ]
279
373
 
metadata CHANGED
@@ -3,10 +3,10 @@ name: enom
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
+ - 1
6
7
  - 0
7
- - 9
8
- - 10
9
- version: 0.9.10
8
+ - 0
9
+ version: 1.0.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - James Miller
@@ -85,6 +85,7 @@ files:
85
85
  - test/account_test.rb
86
86
  - test/cli_test.rb
87
87
  - test/client_test.rb
88
+ - test/contact_info_test.rb
88
89
  - test/domain_test.rb
89
90
  - test/test_helper.rb
90
91
  - bin/enom