moo_moo 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,208 @@
1
+ require 'spec_helper'
2
+ require 'date'
3
+
4
+ describe MooMoo::OpenSRS::LookupCommands do
5
+ before(:each) do
6
+ @opensrs = MooMoo::OpenSRS::Base.new
7
+ @registered_domain = "domainthatsnottaken1302209138.com"
8
+ end
9
+
10
+ describe "#belongs_to_rsp" do
11
+ it "returns false for a domain that is not owned by the rsp" do
12
+ VCR.use_cassette("lookup/belongs_to_rsp") do
13
+ res = @opensrs.belongs_to_rsp?('example.com')
14
+ res.result['belongs_to_rsp'].to_i.should == 0
15
+ end
16
+ end
17
+
18
+ it "returns true for a domain owned by the rsp" do
19
+ VCR.use_cassette("lookup/belongs_to_rsp_negative") do
20
+ res = @opensrs.belongs_to_rsp?(@registered_domain)
21
+ res.result['belongs_to_rsp'].to_i.should == 1
22
+ end
23
+ end
24
+ end
25
+
26
+ describe "#get_balance" do
27
+ use_vcr_cassette "lookup/get_balance"
28
+
29
+ it "returns the balance" do
30
+ res = @opensrs.get_balance
31
+ res.result['balance'].to_f.should == 7312.24
32
+ res.result['hold_balance'].to_f.should == 11.44
33
+ end
34
+ end
35
+
36
+ describe "#get_deleted_domains" do
37
+ use_vcr_cassette "lookup/get_deleted_domains"
38
+
39
+ it "returns domains that have been deleted" do
40
+ result = @opensrs.get_deleted_domains.result
41
+ result['total'].to_i.should == 2
42
+ result['del_domains']['0']['name'].should == "example.com"
43
+ result['del_domains']['0']['delete_date_epoch'].should == "1294426313"
44
+ result['del_domains']['0']['expiredate_epoch'].should == "1325980310"
45
+ end
46
+ end
47
+
48
+ describe "#get domain" do
49
+ it "returns all the info" do
50
+ VCR.use_cassette("lookup/get_domain") do
51
+ res = @opensrs.set_cookie(
52
+ :username => MooMoo.config.user,
53
+ :password => MooMoo.config.pass,
54
+ :domain => @registered_domain
55
+ )
56
+ result = @opensrs.get_domain(:cookie => res.result['cookie']).result
57
+ result['auto_renew'].to_i.should == 1
58
+ result['contact_set']['admin']['org_name'].should == "Example Inc."
59
+ result['nameserver_list']['0']['name'].should == "ns2.systemdns.com"
60
+ end
61
+ end
62
+ end
63
+
64
+ describe "#get_domains_contacts" do
65
+ it "returns the domain's contacts" do
66
+ VCR.use_cassette("lookup/get_domains_contacts") do
67
+ result = @opensrs.get_domains_contacts(@registered_domain).result
68
+ result[@registered_domain]['contact_set']['owner']['address2'].should == "Suite 500"
69
+ result[@registered_domain]['contact_set']['billing']['org_name'].should == "Example Inc."
70
+ end
71
+ end
72
+
73
+ it "fails for a domain that is not in the registry" do
74
+ VCR.use_cassette("lookup/get_domains_contacts_fail") do
75
+ res = @opensrs.get_domains_contacts('example.com')
76
+ res.success?.should be_true
77
+ res.result['example.com']['error'].should match(/Domain does not belong to the reseller/i)
78
+ end
79
+ end
80
+ end
81
+
82
+ describe "#get_domains_by_expiredate" do
83
+ use_vcr_cassette "lookup/get_domains_by_expiredate"
84
+
85
+ it "requires a start date", :wip => true do
86
+ requires_attr(:start_date) do
87
+ @opensrs.get_domains_by_expiredate(:end_date => Date.parse('2011-04-21'))
88
+ end
89
+ end
90
+
91
+ it "requires an end date", :wip => true do
92
+ requires_attr(:end_date) do
93
+ @opensrs.get_domains_by_expiredate(:start_date => Date.parse('2011-04-21'))
94
+ end
95
+ end
96
+
97
+ it "returns domains within an expiration range" do
98
+ result = @opensrs.get_domains_by_expiredate(
99
+ :start_date => Date.parse('2011-04-21'),
100
+ :end_date => Date.parse('2011-04-21') + 365
101
+ ).result
102
+ result['total'].to_i.should == 2
103
+ result['exp_domains']['0']['name'].should == "example.com"
104
+ result['exp_domains']['0']['f_auto_renew'].should == "N"
105
+ result['exp_domains']['0']['f_let_expire'].should == "N"
106
+ result['exp_domains']['0']['expiredate'].should == "2011-11-03 16:14:46"
107
+ end
108
+ end
109
+
110
+ describe "#get_notes" do
111
+ it "returns the notes for a domain" do
112
+ VCR.use_cassette("lookup/get_notes_for_domain") do
113
+ result = @opensrs.get_notes_for_domain(@registered_domain).result
114
+ result['total'].to_i.should == 4
115
+ result['notes']['1']['note'].should match(/Order.*?\d+.*?Domain Registration.*?1 year/i)
116
+ end
117
+ end
118
+
119
+ it "returns the notes for an order" do
120
+ VCR.use_cassette("lookup/get_notes_for_order") do
121
+ result = @opensrs.get_notes_for_order(:domain => @registered_domain, :order_id => 1855625).result
122
+ result['page'].to_i.should == 1
123
+ result['notes'].should be_a_kind_of(Hash)
124
+ result['notes'].should be_empty
125
+ end
126
+ end
127
+
128
+ it "returns the notes for a transfer" do
129
+ VCR.use_cassette("lookup/get_notes_for_transfer") do
130
+ res = @opensrs.get_notes_for_transfer(:domain => "testingdomain.com", :transfer_id => 37021)
131
+ res.success?.should be_true
132
+ end
133
+ end
134
+ end
135
+
136
+ describe "#get_order_info" do
137
+ use_vcr_cassette "lookup/get_order_info"
138
+
139
+ it "returns the order info" do
140
+ result = @opensrs.get_order_info(1855625).result['field_hash']
141
+ result['owner_address2'].should == "Suite 500"
142
+ result['billing_org_name'].should == "Example Inc."
143
+ result['period'].to_i.should == 1
144
+ end
145
+ end
146
+
147
+ describe "#get_orders_by_domain" do
148
+ use_vcr_cassette "lookup/get_orders_by_domain"
149
+
150
+ it "returns the orders for a domain" do
151
+ result = @opensrs.get_orders_by_domain(@registered_domain).result
152
+ result['orders'].should be_a_kind_of(Hash)
153
+ result['orders'].should have(2).domains
154
+ result['orders']['0']['id'].to_i.should == 1862773
155
+ end
156
+ end
157
+
158
+ describe "#get_price" do
159
+ use_vcr_cassette "lookup/get_price"
160
+
161
+ it "returns the price" do
162
+ res = @opensrs.get_price('example.com')
163
+ res.result['price'].to_f.should == 11.62
164
+ end
165
+ end
166
+
167
+ describe "#get_product_info" do
168
+ use_vcr_cassette "lookup/get_product_info"
169
+
170
+ it "fails to find an invalid product" do
171
+ res = @opensrs.get_product_info(99)
172
+ res.success?.should be_false
173
+ res.error_code.should == 405
174
+ res.error_msg.should match(/cannot be found/i)
175
+ end
176
+ end
177
+
178
+ describe "#lookup domain" do
179
+ it "returns the availbility of an available domain" do
180
+ VCR.use_cassette("lookup/lookup_domain_available") do
181
+ result = @opensrs.lookup_domain('example.com').result
182
+ result['status'].should == "available"
183
+ end
184
+ end
185
+
186
+ it "returns the availability of a registered domain" do
187
+ VCR.use_cassette("lookup/lookup_domain_registered") do
188
+ result = @opensrs.lookup_domain(@registered_domain).result
189
+ result['status'].should == "taken"
190
+ end
191
+ end
192
+ end
193
+
194
+ describe "#name_suggest" do
195
+ use_vcr_cassette "lookup/name_suggest"
196
+
197
+ it "returns suggested names for a domain" do
198
+ result = @opensrs.name_suggest("random_domain", [".com", ".net"]).result
199
+ result['lookup']['count'].to_i.should == 4
200
+ result['lookup']['items']['0']['domain'].should == "randomdomain.com"
201
+ result['lookup']['items']['0']['status'].should == "taken"
202
+
203
+ result['suggestion']['count'].to_i.should == 49
204
+ result['suggestion']['items']['0']['domain'].should == "aimlessdomain.com"
205
+ result['suggestion']['items']['0']['status'].should == "available"
206
+ end
207
+ end
208
+ end
@@ -0,0 +1,136 @@
1
+ require 'spec_helper'
2
+
3
+ describe MooMoo::OpenSRS::NameserverCommands do
4
+ before(:each) do
5
+ @opensrs = MooMoo::OpenSRS::Base.new
6
+ @registered_domain = "domainthatsnottaken1302209138.com"
7
+ end
8
+
9
+ describe "#create_nameserver" do
10
+ use_vcr_cassette "nameserver/create"
11
+
12
+ it "requires a name", :wip => true do
13
+ requires_attr(:name) do
14
+ @opensrs.create_nameserver(:ip => '123.123.123.123', :domain => 'example.com')
15
+ end
16
+ end
17
+
18
+ it "requires a ip", :wip => true do
19
+ requires_attr(:ip) do
20
+ @opensrs.create_nameserver(:name => 'blah', :domain => 'example.com')
21
+ end
22
+ end
23
+
24
+ it "requires a domain", :wip => true do
25
+ requires_attr(:domain) do
26
+ @opensrs.create_nameserver(:name => 'blah', :ip => '123.123.123.123')
27
+ end
28
+ end
29
+
30
+ it "creates the nameserver" do
31
+ res = @opensrs.create_nameserver(
32
+ :name => "ns1.#{@registered_domain}",
33
+ :ip => '212.112.123.11',
34
+ :domain => @registered_domain
35
+ )
36
+ res.success?.should be_true
37
+ end
38
+ end
39
+
40
+ describe "#delete_nameserver" do
41
+ use_vcr_cassette "nameserver/delete"
42
+
43
+ it "requires a name", :wip => true do
44
+ requires_attr(:name) do
45
+ @opensrs.delete_nameserver(:ip => '123.123.123.123', :domain => 'example.com')
46
+ end
47
+ end
48
+
49
+ it "requires a ip", :wip => true do
50
+ requires_attr(:ip) do
51
+ @opensrs.delete_nameserver(:name => 'blah', :domain => 'example.com')
52
+ end
53
+ end
54
+
55
+ it "requires a domain", :wip => true do
56
+ requires_attr(:domain) do
57
+ @opensrs.delete_nameserver(:name => 'blah', :ip => '123.123.123.123')
58
+ end
59
+ end
60
+
61
+ it "deletes the nameserver" do
62
+ res = @opensrs.delete_nameserver(
63
+ :name => "ns1.#{@registered_domain}",
64
+ :ip => '212.112.123.11',
65
+ :domain => @registered_domain
66
+ )
67
+ res.success?.should be_true
68
+ end
69
+ end
70
+
71
+ describe "#get_nameserver" do
72
+ use_vcr_cassette "nameserver/get"
73
+
74
+ it "returns the nameservers" do
75
+ res = @opensrs.get_nameserver(@registered_domain)
76
+ result = res.result['nameserver_list']
77
+ result.should have(2).nameservers
78
+ result['0']['name'].should == "ns1.#{@registered_domain}"
79
+ result['1']['ipaddress'].should == "212.112.123.12"
80
+ end
81
+ end
82
+
83
+ describe "#modify_nameserver" do
84
+ use_vcr_cassette "nameserver/modify"
85
+
86
+ it "requires a name", :wip => true do
87
+ requires_attr(:name) do
88
+ @opensrs.modify_nameserver(
89
+ :ip => '123.123.123.123',
90
+ :new_name => 'blah',
91
+ :domain => 'example.com'
92
+ )
93
+ end
94
+ end
95
+
96
+ it "requires a ip", :wip => true do
97
+ requires_attr(:ip) do
98
+ @opensrs.modify_nameserver(
99
+ :name => 'blah',
100
+ :new_name => 'blah',
101
+ :domain => 'example.com'
102
+ )
103
+ end
104
+ end
105
+
106
+ it "requires a domain", :wip => true do
107
+ requires_attr(:domain) do
108
+ @opensrs.modify_nameserver(
109
+ :name => 'blah',
110
+ :ip => '123.123.123.123',
111
+ :new_name => 'blah'
112
+ )
113
+ end
114
+ end
115
+
116
+ it "requires a new_name", :wip => true do
117
+ requires_attr(:new_name) do
118
+ @opensrs.modify_nameserver(
119
+ :name => 'blah',
120
+ :ip => '123.123.123.123',
121
+ :domain => 'example.com'
122
+ )
123
+ end
124
+ end
125
+
126
+ it "updates the name of the nameserver" do
127
+ res = @opensrs.modify_nameserver(
128
+ :name => "ns22.#{@registered_domain}",
129
+ :ip => '212.112.123.11',
130
+ :new_name => "ns3.#{@registered_domain}",
131
+ :domain => @registered_domain
132
+ )
133
+ res.success?.should be_true
134
+ end
135
+ end
136
+ end
@@ -0,0 +1,198 @@
1
+ require 'spec_helper'
2
+ require 'date'
3
+
4
+
5
+ describe MooMoo::OpenSRS::ProvisioningCommands do
6
+ before(:each) do
7
+ @opensrs = MooMoo::OpenSRS::Base.new
8
+ @registered_domain = "domainthatsnottaken1302209138.com"
9
+ @contacts = test_contacts
10
+ end
11
+
12
+ describe "#cancel_order" do
13
+ it "cancels a trust service order" do
14
+ VCR.use_cassette("provisioning/cancel_order") do
15
+ res = @opensrs.cancel_order(123456)
16
+ res.success?.should be_true
17
+ res.result['order_id'].to_i.should == 123456
18
+ res.result['domain'].should == "example.com"
19
+ end
20
+ end
21
+
22
+ it "doesn't cancel an invalid trust service order" do
23
+ VCR.use_cassette("provisioning/cancel_order_invalid") do
24
+ res = @opensrs.cancel_order(111111)
25
+ res.success?.should be_false
26
+ res.error_code.should == 405
27
+ end
28
+ end
29
+ end
30
+
31
+ describe "#cancel_pending_orders" do
32
+ use_vcr_cassette "provisioning/cancel_pending_orders"
33
+
34
+ it "cancels all pending orders" do
35
+ result = @opensrs.cancel_pending_orders(1302890914).result
36
+ result['total'].to_i.should == 0
37
+ result['cancelled'].should be_a_kind_of(Hash)
38
+ result['cancelled'].should be_empty
39
+ end
40
+ end
41
+
42
+ describe "#modify domain" do
43
+ it "updates the contact information" do
44
+ end
45
+
46
+ it "updates the expire action" do
47
+ VCR.use_cassette("provisioning/modify_domain") do
48
+ res = @opensrs.modify({:type => 'expire_action', :domain => @registered_domain, :auto_renew => 1, :let_expire => 0})
49
+ res.success?.should be_true
50
+ end
51
+ end
52
+
53
+ it "modifies all domains linked to the profile" do
54
+ VCR.use_cassette("provisioning/modify_all_domains") do
55
+ res = @opensrs.modify({
56
+ :type => 'expire_action',
57
+ :affect_domains => 1,
58
+ :auto_renew => 0,
59
+ :let_expire => 1,
60
+ :cookie => "0000000000000000:000000:00000"})
61
+ res.success?.should == true
62
+ end
63
+ end
64
+ end
65
+
66
+ describe "#process_pending" do
67
+ use_vcr_cassette "provisioning/process_pending"
68
+
69
+ it "processes the pending order" do
70
+ result = @opensrs.process_pending(1878084).result
71
+ result['order_id'].to_i.should == 1878084
72
+ result['id'].to_i.should == 730001
73
+ result['f_auto_renew'].should == "Y"
74
+ end
75
+ end
76
+
77
+ describe "#renew_domain" do
78
+ use_vcr_cassette "provisioning/renew_domain"
79
+
80
+ it "requires a domain", :wip => true do
81
+ requires_attr(:domain) { @opensrs.renew_domain(:term => 1, :current_expiration_year => 2011) }
82
+ end
83
+
84
+ it "requires a term", :wip => true do
85
+ requires_attr(:term) { @opensrs.renew_domain(:domain => 'example.com', :current_expiration_year => 2011) }
86
+ end
87
+
88
+ it "requires a current_expiration_year", :wip => true do
89
+ requires_attr(:current_expiration_year) { @opensrs.renew_domain(:domain => 'example.com', :term => 1) }
90
+ end
91
+
92
+ it "renews the domain" do
93
+ result = @opensrs.renew_domain(
94
+ :domain => "example.com",
95
+ :term => 1,
96
+ :current_expiration_year => 2011
97
+ ).result
98
+ result['order_id'].to_i.should == 1867227
99
+ result['id'].to_i.should == 678899
100
+ result['admin_email'].should == "adams@example.com"
101
+ end
102
+ end
103
+
104
+ describe "#revoke domain" do
105
+ use_vcr_cassette "provisioning/revoke_domain"
106
+
107
+ it "removes the domain from the registry" do
108
+ res = @opensrs.revoke(:domain => "example.com", :reseller => MooMoo.config.user)
109
+ res.success?.should be_true
110
+ res.result['charge'].to_i.should == 1
111
+ end
112
+ end
113
+
114
+ describe "#register" do
115
+ it "requires a domain", :wip => true do
116
+ requires_attr(:domain) { @opensrs.register_domain(:contacts => @contacts, :nameservers => ['ns1.blah.com']) }
117
+ end
118
+
119
+ it "requires a contacts", :wip => true do
120
+ requires_attr(:contacts) { @opensrs.register_domain(:domain => 'example.com', :nameservers => []) }
121
+ end
122
+
123
+ it "requires a nameservers", :wip => true do
124
+ requires_attr(:nameservers) { @opensrs.register_domain(:domain => 'example.com', :contacts => @contacts) }
125
+ end
126
+
127
+ it "registers a domain" do
128
+ VCR.use_cassette("provisioning/register_domain") do
129
+ res = @opensrs.register_domain(
130
+ :domain => 'fdsafsfsafafsaexample.com',
131
+ :contacts => @contacts,
132
+ :nameservers => ["ns1.systemdns.com", "ns2.systemdns.com"],
133
+ :term => 1)
134
+ result = res.result
135
+ result['registration_text'].should match(/successfully completed/i)
136
+ result['id'].to_i.should == 1885783
137
+ end
138
+ end
139
+
140
+ it "registers a pending domain registration" do
141
+ VCR.use_cassette("provisioning/register_pending_domain") do
142
+ res = @opensrs.register_domain(
143
+ :domain => 'fdsajfkdajfkljfklajfdkljflaexample.com',
144
+ :contacts => @contacts,
145
+ :nameservers => ["ns1.systemdns.com", "ns2.systemdns.com"],
146
+ :term => 1,
147
+ :options => {:handle => :save})
148
+ res.success?.should be_true
149
+ res.result['id'].to_i.should == 1888032
150
+ end
151
+ end
152
+
153
+ it "fails if the domain is taken" do
154
+ VCR.use_cassette("provisioning/register_taken_domain") do
155
+ res = @opensrs.register_domain(
156
+ :domain => 'example.com',
157
+ :contacts => @contacts,
158
+ :nameservers => ["ns1.systemdns.com", "ns2.systemdns.com"],
159
+ :term => 1)
160
+ res.success?.should be_false
161
+ end
162
+ end
163
+ end
164
+
165
+ describe "#register_trust_service" do
166
+ use_vcr_cassette "provisioning/trust_service"
167
+
168
+ it "registers the trust service" do
169
+ csr = "-----BEGIN CERTIFICATE REQUEST----- MIIC4TCCAckCAQAwgZsxKTAnBgNVBAMTIHNlY3VyZXNpdGUudGVzdDEyODU4NzYwMzY2MDgub3JnMQswCQYDVQQGEwJDQTELMAkGA1UECBMCT04xEDAOBgNVBAcTB1Rvcm9udG8xDzANBgNVBAoTBm5ld29yZzEPMA0GA1UECxMGUUFEZXB0MSAwHgYJKoZIhvcNAQkBFhFxYWZpdmVAdHVjb3dzLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ0FDLurKaddUzayM5FgICBhy8DkOaBuYzCiHSFw6xRUf9CjAHpC/MiUM5TnegMiU02COAPmfeHZAERv21CoB/HPDcshewHJywzs8nwcbGncz37eFhNGFQNIif5ExoGAcLS9+d1EAmR1CupTBCCq86lGBa/RdwgUNlvLF5IgZZeKphd/FKaYB2KZmRBxM51WvV6AYmRKb6IsuUZCfHO2FCelThDE0EF99GbfSapVj7woSIu0/PTJcEX4sHURq6pY3ELfNG0BOzrTsT3Af8T3N5xwD0FMatkDrCPCgVx7sRZ05UqenxBOVWBJQcr5QRZSykxBosGjbqO3QSyGsElIKgkCAwEAAaAAMA0GCSqGSIb3DQEBBAUAA4IBAQCEUGNk45qCJiR4Yuce4relbP22EwK7pyX0+0VZ+F3eUxhpZ6S5WN1Juuru8w48RchQBjGK1jjUfXJIqn/DgX+yAfMj4aW/ohBmovN2ViuNILvNaj0volwoqyMlNrTmBze69qHMfnMGUUUehMr/Nq4QdQTqxy7EYQkNOqx21gfZcUi6zWCeFTRkasD+SYAKsOUIKdrt/Jq5lWFXxhkJHuyA+q1yr/w6zh18JmFAT4y/0q/odFGyIr9yKhQ9usW1sQ8CT3e3AnU4jq7sBrYFxN0f+92W8gX7WADortA7+6PcSFPrZEoQlr5Brki7GSwIuTTSlKFRyZ53DbEGjp2ELnnl -----END CERTIFICATE REQUEST----- "
170
+ @contacts.delete(:owner)
171
+ @contacts.delete(:title)
172
+ @contacts[:admin].delete(:url)
173
+ @contacts[:billing].delete(:url)
174
+ @contacts[:tech].delete(:url)
175
+ res = @opensrs.register_trust_service(
176
+ :csr => csr,
177
+ :contacts => @contacts,
178
+ :server_type => 'apachessl',
179
+ :product_type => 'securesite',
180
+ :server_count => 1,
181
+ :term => 1
182
+ )
183
+ res.success?.should be_false
184
+ res.error_code.should == 501
185
+ res.error_msg.should match(/Permission denied/i)
186
+ end
187
+ end
188
+
189
+ describe "#update_contacts" do
190
+ use_vcr_cassette "provisioning/update_contacts"
191
+
192
+ it "updates the contacts" do
193
+ res = @opensrs.update_contacts(:domain => @registered_domain, :contacts => @contacts, :types => ["owner", "admin", "billing", "tech"])
194
+ res.success?.should be_true
195
+ res.result['details'][@registered_domain]['response_code'].to_i.should == 200
196
+ end
197
+ end
198
+ end
@@ -0,0 +1,124 @@
1
+ require 'spec_helper'
2
+
3
+ describe MooMoo::OpenSRS::TransferCommands do
4
+ before(:each) do
5
+ @opensrs = MooMoo::OpenSRS::Base.new
6
+ @registered_domain = "domainthatsnottaken1302209138.com"
7
+ @contacts = test_contacts
8
+ end
9
+
10
+ describe "#cancel_transfer" do
11
+ it "cancels the transfer for a domain" do
12
+ VCR.use_cassette("transfer/cancel_transfer") do
13
+ res = @opensrs.cancel_transfer(:domain => 'exampledomain.com', :reseller => MooMoo.config.user)
14
+ res.success?.should be_false
15
+ res.error_code.should == 400
16
+ res.error_msg.should match(/transfer state prohibits cancellation/i)
17
+ end
18
+ end
19
+
20
+ it "cancels the transfer for an order" do
21
+ VCR.use_cassette("transfer/cancel_trasnfer_order") do
22
+ res = @opensrs.cancel_transfer_for_order(:order_id => 1884820, :reseller => MooMoo.config.user)
23
+ res.success?.should be_false
24
+ res.error_code.should == 400
25
+ res.error_msg.should match(/transfer state prohibits cancellation/i)
26
+ end
27
+ end
28
+ end
29
+
30
+ describe "#check_transfer" do
31
+ it "shows in progress if the transfer is in progress" do
32
+ VCR.use_cassette("transfer/check_transfer") do
33
+ res = @opensrs.check_transfer('exampledomain.com')
34
+ res.result['transferrable'].to_i.should == 0
35
+ res.result['reason'].should match(/Transfer in progress/i)
36
+ end
37
+ end
38
+
39
+ it "says the domain already exists if it does" do
40
+ VCR.use_cassette("transfer/check_transfer_exists") do
41
+ res = @opensrs.check_transfer(@registered_domain)
42
+ res.result['transferrable'].to_i.should == 0
43
+ res.result['reason'].should match(/Domain already exists in.*account/i)
44
+ end
45
+ end
46
+ end
47
+
48
+ describe "#get_transfers_away" do
49
+ use_vcr_cassette "transfer/get_transfers_away"
50
+
51
+ it "lists domains that have been transferred away" do
52
+ res = @opensrs.get_transfers_away
53
+ res.result['total'].to_i.should == 0
54
+ end
55
+ end
56
+
57
+ describe "#get_tranfers_in" do
58
+ use_vcr_cassette "transfer/get_transfers_in"
59
+
60
+ it "lists domains that have been transferred in" do
61
+ res = @opensrs.get_transfers_in
62
+ res.result['total'].to_i.should == 1
63
+ res.result['transfers']['0']['domain'].should == "testingdomain.com"
64
+ end
65
+ end
66
+
67
+ describe "#process_transfer" do
68
+ it "performs a new order with cancelled order's data" do
69
+ VCR.use_cassette("transfer/process_transfer") do
70
+ result = @opensrs.process_transfer(:order_id => 123, :reseller => MooMoo.config.user)
71
+ result.success?.should be_true
72
+ end
73
+ end
74
+
75
+ it "does not transfer if the status does not allow it" do
76
+ VCR.use_cassette("transfer/process_transfer_unsuccessful") do
77
+ result = @opensrs.process_transfer(:order_id => 123, :reseller => MooMoo.config.user)
78
+ result.success?.should be_false
79
+ result.error_code.should == 400
80
+ end
81
+ end
82
+ end
83
+
84
+ describe "#send_password (transfer)" do
85
+ use_vcr_cassette "transfer/send_password"
86
+
87
+ it "resends email message to admin contact" do
88
+ result = @opensrs.send_password('fdsafsfsafafsaexample.com')
89
+ end
90
+ end
91
+
92
+ describe "#push_transfer" do
93
+ use_vcr_cassette "transfer/rsp2rsp_push_transfer"
94
+
95
+ it "transfers the domain" do
96
+ res = @opensrs.push_transfer(
97
+ :domain => @registered_domain,
98
+ :username => MooMoo.config.user,
99
+ :password => MooMoo.config.pass,
100
+ :reseller => 'opensrs'
101
+ )
102
+ res.success?.should be_false
103
+ res.error_code.should == 465
104
+ res.error_msg.should match(/transfer permission denied/i)
105
+ end
106
+ end
107
+
108
+ describe "#transfer" do
109
+ use_vcr_cassette "transfer/transfer"
110
+
111
+ it "initiates the transfer" do
112
+ res = @opensrs.register_domain(
113
+ :domain => 'testingdomain.com',
114
+ :contacts => @contacts,
115
+ :nameservers => ["ns1.systemdns.com", "ns2.systemdns.com"],
116
+ :term => 1,
117
+ :options => { :reg_type => :transfer }
118
+ )
119
+ res.success?.should be_true
120
+ res.result['id'].to_i.should == 1885789
121
+ res.result['registration_text'].should match(/transfer request initiated/i)
122
+ end
123
+ end
124
+ end
data/spec/moo_moo_spec.rb CHANGED
@@ -9,6 +9,22 @@ describe MooMoo do
9
9
 
10
10
  describe "::configure" do
11
11
  it { MooMoo.configure.should be_a MooMoo::Config }
12
+
13
+ it "loads default settings from config if none are provided" do
14
+ MooMoo.configure do |config|
15
+ config.host = 'host.com'
16
+ config.key = 'secret'
17
+ config.user = 'username'
18
+ config.pass = 'secret2'
19
+ end
20
+
21
+ opensrs = MooMoo::OpenSRS::Base.new
22
+
23
+ opensrs.host.should == 'host.com'
24
+ opensrs.key.should == 'secret'
25
+ opensrs.user.should == 'username'
26
+ opensrs.pass.should == 'secret2'
27
+ end
12
28
  end
13
29
 
14
30
  describe "::config" do