tropo-provisioning 0.0.23 → 0.0.24

Sign up to get free protection for your applications and to get access to all the features.
@@ -5,568 +5,576 @@ FakeWeb.allow_net_connect = false
5
5
 
6
6
  describe "TropoProvisioning" do
7
7
  let(:applications) do
8
- [ { "region" => "I-US",
9
- "city" => "iNum US",
10
- "number" => "883510001812716",
11
- "href" => "http://api.tropo.com/v1/applications/108000/addresses/number/883510001812716",
12
- "prefix" => "008",
13
- "type" => "number" },
14
- { "number" => "9991436301",
15
- "href" => "http://api.tropo.com/v1/applications/108000/addresses/pin/9991436300",
8
+ [ { "region" => "I-US",
9
+ "city" => "iNum US",
10
+ "number" => "883510001812716",
11
+ "href" => "http://api.tropo.com/v1/applications/108000/addresses/number/883510001812716",
12
+ "prefix" => "008",
13
+ "type" => "number" },
14
+ { "number" => "9991436301",
15
+ "href" => "http://api.tropo.com/v1/applications/108000/addresses/pin/9991436300",
16
16
  "type" => "pin" },
17
- { "href" => "http://api.tropo.com/v1/applications/108000/addresses/jabber/xyz123",
18
- "nickname" => "",
19
- "username" => "xyz123",
17
+ { "href" => "http://api.tropo.com/v1/applications/108000/addresses/jabber/xyz123",
18
+ "nickname" => "",
19
+ "username" => "xyz123",
20
20
  "type" => "jabber" },
21
- { "href" => "http://api.tropo.com/v1/applications/108000/addresses/jabber/xyz123",
22
- "nickname" => "",
23
- "username" => "9991436300",
21
+ { "href" => "http://api.tropo.com/v1/applications/108000/addresses/jabber/xyz123",
22
+ "nickname" => "",
23
+ "username" => "9991436300",
24
24
  "type" => "pin" },
25
- { "href" => "http://api.tropo.com/v1/applications/108000/addresses/token/a1b2c3d4",
26
- "nickname" => "",
27
- "username" => "a1b2c3d4",
25
+ { "href" => "http://api.tropo.com/v1/applications/108000/addresses/token/a1b2c3d4",
26
+ "nickname" => "",
27
+ "username" => "a1b2c3d4",
28
28
  "type" => "token" } ]
29
29
  end
30
30
 
31
31
  before(:all) do
32
- @addresses = [ { "region" => "I-US",
33
- "city" => "iNum US",
34
- "number" => "883510001812716",
35
- "href" => "http://api.tropo.com/v1/applications/108000/addresses/number/883510001812716",
36
- "prefix" => "008",
37
- "type" => "number" },
38
- { "number" => "9991436301",
39
- "href" => "http://api.tropo.com/v1/applications/108000/addresses/pin/9991436300",
32
+ @addresses = [ { "region" => "I-US",
33
+ "city" => "iNum US",
34
+ "number" => "883510001812716",
35
+ "href" => "http://api.tropo.com/v1/applications/108000/addresses/number/883510001812716",
36
+ "prefix" => "008",
37
+ "type" => "number" },
38
+ { "number" => "9991436301",
39
+ "href" => "http://api.tropo.com/v1/applications/108000/addresses/pin/9991436300",
40
40
  "type" => "pin" },
41
- { "href" => "http://api.tropo.com/v1/applications/108000/addresses/jabber/xyz123",
42
- "nickname" => "",
43
- "username" => "xyz123",
41
+ { "href" => "http://api.tropo.com/v1/applications/108000/addresses/jabber/xyz123",
42
+ "nickname" => "",
43
+ "username" => "xyz123",
44
44
  "type" => "jabber" },
45
- { "href" => "http://api.tropo.com/v1/applications/108000/addresses/jabber/xyz123",
46
- "nickname" => "",
47
- "username" => "9991436300",
45
+ { "href" => "http://api.tropo.com/v1/applications/108000/addresses/jabber/xyz123",
46
+ "nickname" => "",
47
+ "username" => "9991436300",
48
48
  "type" => "pin" },
49
- { "href" => "http://api.tropo.com/v1/applications/108000/addresses/token/a1b2c3d4",
50
- "nickname" => "",
51
- "username" => "a1b2c3d4",
49
+ { "href" => "http://api.tropo.com/v1/applications/108000/addresses/token/a1b2c3d4",
50
+ "nickname" => "",
51
+ "username" => "a1b2c3d4",
52
52
  "type" => "token" } ]
53
-
54
-
53
+
54
+
55
55
  @new_user = { 'user_id' => "12345", 'href' => "http://api.tropo.com/v1/users/12345", 'confirmation_key' => '1234' }
56
56
  @new_user_json = ActiveSupport::JSON.encode({ 'user_id' => "12345", 'href' => "http://api.tropo.com/v1/users/12345", 'confirmationKey' => '1234' })
57
- @existing_user = { "city" => "Orlando",
58
- "address" => "1234 Anywhere St",
59
- "href" => "https://api-smsified-eng.voxeo.net/v1/users/12345",
60
- "lastName" => "User",
61
- "address2" => "Unit 1337",
62
- "joinDate" => "2010-05-17T18:26:07.217+0000",
63
- "country" => "USA",
64
- "username" => "foo",
65
- "phoneNumber" => "4075551212",
66
- "id" => "12345",
67
- "postalCode" => "32801",
68
- "jobTitle" => "Technical Writer",
69
- "firstName" => "Tropo",
70
- "organization" => "Voxeo",
71
- "status" => "active",
57
+ @existing_user = { "city" => "Orlando",
58
+ "address" => "1234 Anywhere St",
59
+ "href" => "https://api-smsified-eng.voxeo.net/v1/users/12345",
60
+ "lastName" => "User",
61
+ "address2" => "Unit 1337",
62
+ "joinDate" => "2010-05-17T18:26:07.217+0000",
63
+ "country" => "USA",
64
+ "username" => "foo",
65
+ "phoneNumber" => "4075551212",
66
+ "id" => "12345",
67
+ "postalCode" => "32801",
68
+ "jobTitle" => "Technical Writer",
69
+ "firstName" => "Tropo",
70
+ "organization" => "Voxeo",
71
+ "status" => "active",
72
72
  "email" => "support@tropo.com"}
73
73
 
74
-
74
+
75
75
  @list_account = { 'account_id' => "12345", 'href' => "http://api-eng.voxeo.net:8080/v1/users/12345" }
76
-
77
- @payment_method = { "rechargeAmount" => "0.00",
78
- "paymentType" => "https://api-smsified-eng.voxeo.net/v1/types/payment/1",
79
- "accountNumber" => "5555",
80
- "paymentTypeName" => "visa",
76
+
77
+ @payment_method = { "rechargeAmount" => "0.00",
78
+ "paymentType" => "https://api-smsified-eng.voxeo.net/v1/types/payment/1",
79
+ "accountNumber" => "5555",
80
+ "paymentTypeName" => "visa",
81
81
  "rechargeThreshold" => "0.00",
82
82
  "id" => "1" }
83
-
84
- @payment_methods = [ { "name" => "visa",
85
- "href" => "https://api-smsified-eng.voxeo.net/v1/types/payment/1",
86
- "id" => "1" },
87
- { "name" => "mastercard",
88
- "href" => "https://api-smsified-eng.voxeo.net/v1/types/payment/2",
89
- "id" => "2" },
90
- { "name" => "amex",
91
- "href" => "https://api-smsified-eng.voxeo.net/v1/types/payment/3",
83
+
84
+ @payment_methods = [ { "name" => "visa",
85
+ "href" => "https://api-smsified-eng.voxeo.net/v1/types/payment/1",
86
+ "id" => "1" },
87
+ { "name" => "mastercard",
88
+ "href" => "https://api-smsified-eng.voxeo.net/v1/types/payment/2",
89
+ "id" => "2" },
90
+ { "name" => "amex",
91
+ "href" => "https://api-smsified-eng.voxeo.net/v1/types/payment/3",
92
92
  "id" => "3" }]
93
93
 
94
- @features = [ { "name" => "International Outbound SMS",
95
- "href" => "https://api-smsified-eng.voxeo.net/v1/features/9",
96
- "id" => "9",
97
- "description" => "International Outbound SMS" },
98
- { "name" => "Test Outbound SMS",
99
- "href" => "https://api-smsified-eng.voxeo.net/v1/features/7",
100
- "id" => "7",
101
- "description" => "Test Outbound SMS" },
102
- { "name" => "Domestic Outbound SMS",
103
- "href" => "https://api-smsified-eng.voxeo.net/v1/features/8",
104
- "id" => "8",
94
+ @features = [ { "name" => "International Outbound SMS",
95
+ "href" => "https://api-smsified-eng.voxeo.net/v1/features/9",
96
+ "id" => "9",
97
+ "description" => "International Outbound SMS" },
98
+ { "name" => "Test Outbound SMS",
99
+ "href" => "https://api-smsified-eng.voxeo.net/v1/features/7",
100
+ "id" => "7",
101
+ "description" => "Test Outbound SMS" },
102
+ { "name" => "Domestic Outbound SMS",
103
+ "href" => "https://api-smsified-eng.voxeo.net/v1/features/8",
104
+ "id" => "8",
105
105
  "description" => "Domestic Outbound SMS" } ]
106
-
107
- @user_features = [ { "feature" => "https://api-smsified-eng.voxeo.net/v1/features/7",
108
- "href" => "https://api-smsified-eng.voxeo.net/v1/users/12345/features/7",
106
+
107
+ @user_features = [ { "feature" => "https://api-smsified-eng.voxeo.net/v1/features/7",
108
+ "href" => "https://api-smsified-eng.voxeo.net/v1/users/12345/features/7",
109
109
  "featureName" => "Test Outbound SMS" } ]
110
-
110
+
111
111
  @feature = { 'href' => 'http://api-smsified-eng.voxeo.net/v1/users/12345/features/8' }
112
-
112
+
113
113
  @feature_delete_message = { "message" => "disabled feature https://api-smsified-eng.voxeo.net/v1/features/8 for user https://api-smsified-eng.voxeo.net/v1/users/12345" }
114
-
114
+
115
115
  @payment_info_message = { "href" => "http://api-smsified-eng.voxeo.net/v1/users/12345/payment/method" }
116
-
116
+
117
117
  @bad_account_creds = { "account-accesstoken-get-response" =>
118
- { "accessToken" => "",
119
- "statusMessage" => "Invalid login.",
118
+ { "accessToken" => "",
119
+ "statusMessage" => "Invalid login.",
120
120
  "statusCode" => 403 } }
121
-
122
- @search_accounts = [ { "href" => "http://api-smsified-eng.voxeo.net/v1/users/53209",
123
- "marketingOptIn" => true,
124
- "lastName" => "Empty LastName",
125
- "joinDate" => "2010-11-15T21:13:23.837+0000",
126
- "username" => "foobar5331",
127
- "id" => "53209",
128
- "phoneNumber" => "Empty Phone",
129
- "firstName" => "Empty FirstName",
130
- "status" => "active",
131
- "email" => "jsgoecke@voxeo.com"},
132
- { "href" => "http://api-smsified-eng.voxeo.net/v1/users/53211",
133
- "marketingOptIn" => true,
134
- "lastName" => "Empty LastName",
135
- "joinDate" => "2010-11-15T21:17:24.473+0000",
136
- "username" => "foobar1197",
137
- "id" => "53211",
138
- "phoneNumber" => "Empty Phone",
139
- "firstName" => "Empty FirstName",
140
- "status" => "active",
121
+
122
+ @search_accounts = [ { "href" => "http://api-smsified-eng.voxeo.net/v1/users/53209",
123
+ "marketingOptIn" => true,
124
+ "lastName" => "Empty LastName",
125
+ "joinDate" => "2010-11-15T21:13:23.837+0000",
126
+ "username" => "foobar5331",
127
+ "id" => "53209",
128
+ "phoneNumber" => "Empty Phone",
129
+ "firstName" => "Empty FirstName",
130
+ "status" => "active",
131
+ "email" => "jsgoecke@voxeo.com"},
132
+ { "href" => "http://api-smsified-eng.voxeo.net/v1/users/53211",
133
+ "marketingOptIn" => true,
134
+ "lastName" => "Empty LastName",
135
+ "joinDate" => "2010-11-15T21:17:24.473+0000",
136
+ "username" => "foobar1197",
137
+ "id" => "53211",
138
+ "phoneNumber" => "Empty Phone",
139
+ "firstName" => "Empty FirstName",
140
+ "status" => "active",
141
141
  "email" => "jsgoecke@voxeo.com" } ]
142
-
143
- @partitions = [{ "name" => "staging", "href" => "https://api-smsified-eng.voxeo.net/v1/partitions/staging" },
144
- { "name" => "production", "href" => "https://api-smsified-eng.voxeo.net/v1/partitions/production" }]
142
+
143
+ @partitions = [{ "name" => "staging", "href" => "https://api-smsified-eng.voxeo.net/v1/partitions/staging" },
144
+ { "name" => "production", "href" => "https://api-smsified-eng.voxeo.net/v1/partitions/production" }]
145
145
 
146
146
  @platforms = [{ "name" => "sms", "href" => "https://api-smsified-eng.voxeo.net/v1/platforms/sms", "description" => "SMSified Interface" }]
147
147
 
148
148
  @balance = { "pendingUsageAmount" => "0.00", "pendingRechargeAmount" => "0.00", "balance" => "3.00" }
149
-
149
+
150
150
  @whitelist = [{ "href" => "https://api-smsified-eng.voxeo.net/v1/partitions/staging/platforms/sms/whitelist/14075551212", "value"=>"14075551212" }]
151
-
151
+
152
152
  @countries = [{ "name"=>"Zimbabwe", "href"=>"http://api-smsified-eng.voxeo.net/v1/countries/426", "code"=>"ZW", "id" => "426" },
153
153
  { "name"=>"United States", "href"=>"http://api-smsified-eng.voxeo.net/v1/countries/36", "code"=>"US", "states"=>"http://api-smsified-eng.voxeo.net/v1/countries/36/states", "id" => "36" }]
154
-
154
+
155
155
  @states = [{ "name"=>"Wisconsin", "href"=>"http://api-smsified-eng.voxeo.net/v1/countries/36/states/49", "code"=>"WI", "id" => "49" },
156
156
  { "name"=>"Wyoming", "href"=>"http://api-smsified-eng.voxeo.net/v1/countries/36/states/50", "code"=>"WY", "id"=>"50" }]
157
-
157
+
158
158
  @recurrence = { 'rechargeAmount' => 13.50, 'rechargeThreshold' => 10.00 }
159
159
  @recurrence_updated = { 'href' => 'http://api-smsified-eng.voxeo.net/v1/users/1234/payment/recurrence' }
160
-
160
+
161
161
  # Register our resources
162
-
162
+
163
163
  # Applications with a bad uname/passwd
164
- FakeWeb.register_uri(:get,
165
- %r|http://bad:password@api.tropo.com/v1/applications|,
164
+ FakeWeb.register_uri(:get,
165
+ %r|http://bad:password@api.tropo.com/v1/applications|,
166
166
  :status => ["401", "Unauthorized"])
167
167
 
168
+ # Alternate Base URI
169
+ FakeWeb.register_uri(:get,
170
+ "http://foo:bar@testserver.com/rest/v1/users/foo",
171
+ :body => '{}',
172
+ :content_type => "application/json",
173
+ :status => ["200", "OK"])
174
+
175
+
168
176
  # A specific application
169
- FakeWeb.register_uri(:get,
170
- "http://foo:bar@api.tropo.com/v1/applications/108000",
177
+ FakeWeb.register_uri(:get,
178
+ "http://foo:bar@api.tropo.com/v1/applications/108000",
171
179
  :body => ActiveSupport::JSON.encode(applications[0]),
172
180
  :content_type => "application/json")
173
-
181
+
174
182
  # Applications
175
- FakeWeb.register_uri(:get,
176
- %r|https://foo:bar@api.tropo.com/v1/applications|,
177
- :body => ActiveSupport::JSON.encode(applications),
183
+ FakeWeb.register_uri(:get,
184
+ %r|https://foo:bar@api.tropo.com/v1/applications|,
185
+ :body => ActiveSupport::JSON.encode(applications),
178
186
  :content_type => "application/json")
179
-
180
- # Create an application
181
- FakeWeb.register_uri(:post,
182
- %r|https://foo:bar@api.tropo.com/v1/applications|,
187
+
188
+ # Create an application
189
+ FakeWeb.register_uri(:post,
190
+ %r|https://foo:bar@api.tropo.com/v1/applications|,
183
191
  :body => ActiveSupport::JSON.encode({ "href" => "http://api.tropo.com/v1/applications/108016" }),
184
192
  :status => ["200", "OK"])
185
-
193
+
186
194
  # Update a specific application
187
- FakeWeb.register_uri(:put,
188
- %r|https://foo:bar@api.tropo.com/v1/applications/108000|,
195
+ FakeWeb.register_uri(:put,
196
+ %r|https://foo:bar@api.tropo.com/v1/applications/108000|,
189
197
  :body => ActiveSupport::JSON.encode({ "href" => "http://api.tropo.com/v1/applications/108016" }),
190
198
  :status => ["200", "OK"])
191
-
199
+
192
200
  # Addresses
193
- FakeWeb.register_uri(:get,
194
- "http://foo:bar@api.tropo.com/v1/applications/108000/addresses",
195
- :body => ActiveSupport::JSON.encode(@addresses),
201
+ FakeWeb.register_uri(:get,
202
+ "http://foo:bar@api.tropo.com/v1/applications/108000/addresses",
203
+ :body => ActiveSupport::JSON.encode(@addresses),
196
204
  :content_type => "application/json")
197
-
205
+
198
206
  # Get a specific address
199
- FakeWeb.register_uri(:get,
200
- "https://foo:bar@api.tropo.com/v1/applications/108000/addresses/number/883510001812716",
207
+ FakeWeb.register_uri(:get,
208
+ "https://foo:bar@api.tropo.com/v1/applications/108000/addresses/number/883510001812716",
201
209
  :body => ActiveSupport::JSON.encode(@addresses[0]),
202
210
  :content_type => "application/json")
203
211
 
204
212
  # Get a address that is an IM/username
205
- FakeWeb.register_uri(:get,
206
- "https://foo:bar@api.tropo.com/v1/applications/108000/addresses/jabber/xyz123",
207
- :body => ActiveSupport::JSON.encode(@addresses[2]),
213
+ FakeWeb.register_uri(:get,
214
+ "https://foo:bar@api.tropo.com/v1/applications/108000/addresses/jabber/xyz123",
215
+ :body => ActiveSupport::JSON.encode(@addresses[2]),
208
216
  :content_type => "application/json")
209
217
 
210
218
  # Get a address that is a token
211
- FakeWeb.register_uri(:get,
212
- "https://foo:bar@api.tropo.com/v1/applications/108000/addresses/jabber/xyz123",
213
- :body => ActiveSupport::JSON.encode(@addresses[2]),
219
+ FakeWeb.register_uri(:get,
220
+ "https://foo:bar@api.tropo.com/v1/applications/108000/addresses/jabber/xyz123",
221
+ :body => ActiveSupport::JSON.encode(@addresses[2]),
214
222
  :content_type => "application/json")
215
-
223
+
216
224
  # Get a address that is a Pin
217
- FakeWeb.register_uri(:post,
218
- "http://foo:bar@api.tropo.com/v1/applications/108000/addresses",
225
+ FakeWeb.register_uri(:post,
226
+ "http://foo:bar@api.tropo.com/v1/applications/108000/addresses",
219
227
  :body => ActiveSupport::JSON.encode(@addresses[2]),
220
228
  :content_type => "application/json")
221
-
229
+
222
230
  # Get a address that is a token
223
- FakeWeb.register_uri(:get,
231
+ FakeWeb.register_uri(:get,
224
232
  "https://foo:bar@api.tropo.com/v1/applications/108000/addresses/token/a1b2c3d4",
225
- :body => ActiveSupport::JSON.encode(@addresses[4]),
233
+ :body => ActiveSupport::JSON.encode(@addresses[4]),
226
234
  :content_type => "application/json")
227
-
235
+
228
236
  # Get a address that is a number
229
- FakeWeb.register_uri(:post,
230
- "https://foo:bar@api.tropo.com/v1/applications/108000/addresses",
231
- :body => ActiveSupport::JSON.encode({ "href" => "http://api.tropo.com/v1/applications/108000/addresses/number/7202551912" }),
237
+ FakeWeb.register_uri(:post,
238
+ "https://foo:bar@api.tropo.com/v1/applications/108000/addresses",
239
+ :body => ActiveSupport::JSON.encode({ "href" => "http://api.tropo.com/v1/applications/108000/addresses/number/7202551912" }),
232
240
  :content_type => "application/json")
233
-
234
- # Create a address that is an IM account
235
- FakeWeb.register_uri(:post,
236
- "https://foo:bar@api.tropo.com/v1/applications/108001/addresses",
237
- :body => ActiveSupport::JSON.encode({ "href" => "http://api.tropo.com/v1/applications/108001/addresses/jabber/xyz123@bot.im" }),
241
+
242
+ # Create a address that is an IM account
243
+ FakeWeb.register_uri(:post,
244
+ "https://foo:bar@api.tropo.com/v1/applications/108001/addresses",
245
+ :body => ActiveSupport::JSON.encode({ "href" => "http://api.tropo.com/v1/applications/108001/addresses/jabber/xyz123@bot.im" }),
238
246
  :content_type => "application/json")
239
-
240
- # Create a address that is a Token
241
- FakeWeb.register_uri(:post,
242
- "https://foo:bar@api.tropo.com/v1/applications/108002/addresses",
243
- :body => ActiveSupport::JSON.encode({ "href" => "http://api.tropo.com/v1/applications/108002/addresses/token/12345679f90bac47a05b178c37d3c68aaf38d5bdbc5aba0c7abb12345d8a9fd13f1234c1234567dbe2c6f63b" }),
247
+
248
+ # Create a address that is a Token
249
+ FakeWeb.register_uri(:post,
250
+ "https://foo:bar@api.tropo.com/v1/applications/108002/addresses",
251
+ :body => ActiveSupport::JSON.encode({ "href" => "http://api.tropo.com/v1/applications/108002/addresses/token/12345679f90bac47a05b178c37d3c68aaf38d5bdbc5aba0c7abb12345d8a9fd13f1234c1234567dbe2c6f63b" }),
244
252
  :content_type => "application/json")
245
-
246
- # Delete an application
247
- FakeWeb.register_uri(:delete,
248
- "https://foo:bar@api.tropo.com/v1/applications/108000",
249
- :body => ActiveSupport::JSON.encode({ 'message' => 'delete successful' }),
253
+
254
+ # Delete an application
255
+ FakeWeb.register_uri(:delete,
256
+ "https://foo:bar@api.tropo.com/v1/applications/108000",
257
+ :body => ActiveSupport::JSON.encode({ 'message' => 'delete successful' }),
250
258
  :content_type => "application/json",
251
259
  :status => ["200", "OK"])
252
260
 
253
261
  # Exchanges
254
- FakeWeb.register_uri(:get,
255
- "https://foo:bar@api.tropo.com/v1/exchanges",
256
- :body => exchanges,
262
+ FakeWeb.register_uri(:get,
263
+ "https://foo:bar@api.tropo.com/v1/exchanges",
264
+ :body => exchanges,
257
265
  :status => ["200", "OK"],
258
266
  :content_type => "application/json")
259
267
 
260
268
  # Delete a address
261
- FakeWeb.register_uri(:delete,
262
- "https://foo:bar@api.tropo.com/v1/applications/108000/addresses/number/883510001812716",
263
- :body => ActiveSupport::JSON.encode({ 'message' => 'delete successful' }),
269
+ FakeWeb.register_uri(:delete,
270
+ "https://foo:bar@api.tropo.com/v1/applications/108000/addresses/number/883510001812716",
271
+ :body => ActiveSupport::JSON.encode({ 'message' => 'delete successful' }),
264
272
  :content_type => "application/json",
265
273
  :status => ["200", "OK"])
266
-
274
+
267
275
  # Add a specific address
268
- FakeWeb.register_uri(:post,
269
- "https://foo:bar@api.tropo.com/v1/applications/108002/addresses/number/883510001812716",
270
- :body => ActiveSupport::JSON.encode({ 'message' => 'delete successful' }),
276
+ FakeWeb.register_uri(:post,
277
+ "https://foo:bar@api.tropo.com/v1/applications/108002/addresses/number/883510001812716",
278
+ :body => ActiveSupport::JSON.encode({ 'message' => 'delete successful' }),
271
279
  :content_type => "application/json",
272
280
  :status => ["200", "OK"])
273
-
281
+
274
282
  # Create a new user
275
- FakeWeb.register_uri(:post,
276
- "https://foo:bar@api.tropo.com/v1/users",
277
- :body => @new_user_json,
283
+ FakeWeb.register_uri(:post,
284
+ "https://foo:bar@api.tropo.com/v1/users",
285
+ :body => @new_user_json,
278
286
  :content_type => "application/json",
279
287
  :status => ["200", "OK"])
280
288
 
281
- # Get a specific user by user_id
282
- FakeWeb.register_uri(:get,
289
+ # Get a specific user by user_id
290
+ FakeWeb.register_uri(:get,
283
291
  "https://foo:bar@api.tropo.com/v1/users/12345",
284
- :body => ActiveSupport::JSON.encode(@existing_user),
292
+ :body => ActiveSupport::JSON.encode(@existing_user),
285
293
  :content_type => "application/json",
286
294
  :status => ["200", "OK"])
287
-
288
- # Get a specific user by user_id
289
- FakeWeb.register_uri(:get,
295
+
296
+ # Get a specific user by user_id
297
+ FakeWeb.register_uri(:get,
290
298
  "https://foo:bar@api.tropo.com/v1/users/98765",
291
- :body => nil,
299
+ :body => nil,
292
300
  :content_type => "application/json",
293
301
  :status => ["404", "Got an error here!"])
294
-
302
+
295
303
  # Get a specific user by username
296
- FakeWeb.register_uri(:get,
304
+ FakeWeb.register_uri(:get,
297
305
  "https://foo:bar@api.tropo.com/v1/users/foo",
298
- :body => ActiveSupport::JSON.encode(@existing_user),
306
+ :body => ActiveSupport::JSON.encode(@existing_user),
299
307
  :content_type => "application/json",
300
308
  :status => ["200", "OK"])
301
309
 
302
310
  # Get a specific user by username with HTTPS/SSL
303
- FakeWeb.register_uri(:get,
311
+ FakeWeb.register_uri(:get,
304
312
  "https://foo:bar@api.tropo.com/v1/users/foo",
305
- :body => ActiveSupport::JSON.encode(@existing_user),
313
+ :body => ActiveSupport::JSON.encode(@existing_user),
306
314
  :content_type => "application/json",
307
315
  :status => ["200", "OK"])
308
-
316
+
309
317
  # Invalid credentials
310
- FakeWeb.register_uri(:get,
318
+ FakeWeb.register_uri(:get,
311
319
  "https://bad:password@api.tropo.com/v1/users/bad",
312
320
  :content_type => "application/json",
313
321
  :status => ["401", "Unauthorized"])
314
-
322
+
315
323
  # Confirm an account account
316
- FakeWeb.register_uri(:post,
317
- "https://foo:bar@api.tropo.com/v1/users/12345/confirmations",
318
- :body => ActiveSupport::JSON.encode({"message" => "successfully confirmed user 12345" }),
324
+ FakeWeb.register_uri(:post,
325
+ "https://foo:bar@api.tropo.com/v1/users/12345/confirmations",
326
+ :body => ActiveSupport::JSON.encode({"message" => "successfully confirmed user 12345" }),
319
327
  :content_type => "application/json",
320
328
  :status => ["200", "OK"])
321
-
329
+
322
330
  # Return the payment method configured for a user
323
- FakeWeb.register_uri(:get,
324
- "https://foo:bar@api.tropo.com/v1/users/12345/payment/method",
325
- :body => ActiveSupport::JSON.encode(@payment_method),
331
+ FakeWeb.register_uri(:get,
332
+ "https://foo:bar@api.tropo.com/v1/users/12345/payment/method",
333
+ :body => ActiveSupport::JSON.encode(@payment_method),
326
334
  :content_type => "application/json",
327
- :status => ["200", "OK"])
335
+ :status => ["200", "OK"])
328
336
 
329
337
  # Return payment types
330
- FakeWeb.register_uri(:get,
331
- "https://foo:bar@api.tropo.com/v1/types/payment",
332
- :body => ActiveSupport::JSON.encode(@payment_methods),
338
+ FakeWeb.register_uri(:get,
339
+ "https://foo:bar@api.tropo.com/v1/types/payment",
340
+ :body => ActiveSupport::JSON.encode(@payment_methods),
333
341
  :content_type => "application/json",
334
342
  :status => ["200", "OK"])
335
-
343
+
336
344
  # Return features
337
- FakeWeb.register_uri(:get,
338
- "https://foo:bar@api.tropo.com/v1/features",
339
- :body => ActiveSupport::JSON.encode(@features),
345
+ FakeWeb.register_uri(:get,
346
+ "https://foo:bar@api.tropo.com/v1/features",
347
+ :body => ActiveSupport::JSON.encode(@features),
340
348
  :content_type => "application/json",
341
- :status => ["200", "OK"])
349
+ :status => ["200", "OK"])
342
350
 
343
351
  # Return features for a user
344
- FakeWeb.register_uri(:get,
345
- "https://foo:bar@api.tropo.com/v1/users/12345/features",
346
- :body => ActiveSupport::JSON.encode(@user_features),
352
+ FakeWeb.register_uri(:get,
353
+ "https://foo:bar@api.tropo.com/v1/users/12345/features",
354
+ :body => ActiveSupport::JSON.encode(@user_features),
347
355
  :content_type => "application/json",
348
356
  :status => ["200", "OK"])
349
357
 
350
358
  # Add a feature to a user
351
- FakeWeb.register_uri(:post,
352
- "https://foo:bar@api.tropo.com/v1/users/12345/features",
353
- :body => ActiveSupport::JSON.encode(@feature),
359
+ FakeWeb.register_uri(:post,
360
+ "https://foo:bar@api.tropo.com/v1/users/12345/features",
361
+ :body => ActiveSupport::JSON.encode(@feature),
354
362
  :content_type => "application/json",
355
363
  :status => ["200", "OK"])
356
-
364
+
357
365
  # Add a feature to a user
358
- FakeWeb.register_uri(:delete,
359
- "https://foo:bar@api.tropo.com/v1/users/12345/features/8",
360
- :body => ActiveSupport::JSON.encode(@feature_delete_message),
366
+ FakeWeb.register_uri(:delete,
367
+ "https://foo:bar@api.tropo.com/v1/users/12345/features/8",
368
+ :body => ActiveSupport::JSON.encode(@feature_delete_message),
361
369
  :content_type => "application/json",
362
370
  :status => ["200", "OK"])
363
-
371
+
364
372
  # Add payment info to a user
365
- FakeWeb.register_uri(:put,
366
- "https://foo:bar@api.tropo.com/v1/users/12345/payment/method",
373
+ FakeWeb.register_uri(:put,
374
+ "https://foo:bar@api.tropo.com/v1/users/12345/payment/method",
367
375
  :body => ActiveSupport::JSON.encode(@payment_info_message),
368
376
  :content_type => "application/json",
369
377
  :status => ["200", "OK"])
370
378
 
371
-
379
+
372
380
  # List an account, with bad credentials
373
- FakeWeb.register_uri(:get,
374
- "https://evolution.voxeo.com/api/account/accesstoken/get.jsp?username=foobar7474&password=fooeyfooey",
375
- :body => ActiveSupport::JSON.encode(@bad_account_creds),
381
+ FakeWeb.register_uri(:get,
382
+ "https://evolution.voxeo.com/api/account/accesstoken/get.jsp?username=foobar7474&password=fooeyfooey",
383
+ :body => ActiveSupport::JSON.encode(@bad_account_creds),
376
384
  :content_type => "application/json",
377
385
  :status => ["403", "Invalid Login."])
378
-
386
+
379
387
  # Get our search terms
380
- FakeWeb.register_uri(:get,
381
- "https://foo:bar@api.tropo.com/v1/users/?username=foobar",
382
- :body => ActiveSupport::JSON.encode(@search_accounts),
388
+ FakeWeb.register_uri(:get,
389
+ "https://foo:bar@api.tropo.com/v1/users/?username=foobar",
390
+ :body => ActiveSupport::JSON.encode(@search_accounts),
383
391
  :content_type => "application/json",
384
392
  :status => ["200", "OK"])
385
-
393
+
386
394
  # Payment resource
387
- FakeWeb.register_uri(:post,
388
- "https://foo:bar@api.tropo.com/v1/users/1234/payments",
389
- :body => ActiveSupport::JSON.encode({ :message => "successfully posted payment for the amount 1.000000" }),
395
+ FakeWeb.register_uri(:post,
396
+ "https://foo:bar@api.tropo.com/v1/users/1234/payments",
397
+ :body => ActiveSupport::JSON.encode({ :message => "successfully posted payment for the amount 1.000000" }),
390
398
  :content_type => "application/json",
391
- :status => ["200", "OK"])
392
-
399
+ :status => ["200", "OK"])
400
+
393
401
  # Modify a user
394
- FakeWeb.register_uri(:put,
395
- "https://foo:bar@api.tropo.com/v1/users/12345",
396
- :body => ActiveSupport::JSON.encode({ :href => "http://api-smsified-eng.voxeo.net/v1/users/12345" }),
402
+ FakeWeb.register_uri(:put,
403
+ "https://foo:bar@api.tropo.com/v1/users/12345",
404
+ :body => ActiveSupport::JSON.encode({ :href => "http://api-smsified-eng.voxeo.net/v1/users/12345" }),
397
405
  :content_type => "application/json",
398
406
  :status => ["200", "OK"])
399
-
407
+
400
408
  # List available partitions
401
- FakeWeb.register_uri(:get,
402
- "https://foo:bar@api.tropo.com/v1/partitions",
403
- :body => ActiveSupport::JSON.encode(@partitions),
409
+ FakeWeb.register_uri(:get,
410
+ "https://foo:bar@api.tropo.com/v1/partitions",
411
+ :body => ActiveSupport::JSON.encode(@partitions),
404
412
  :content_type => "application/json",
405
413
  :status => ["200", "OK"])
406
-
414
+
407
415
  # List available platforms
408
- FakeWeb.register_uri(:get,
409
- "https://foo:bar@api.tropo.com/v1/partitions/staging/platforms",
410
- :body => ActiveSupport::JSON.encode(@platforms),
416
+ FakeWeb.register_uri(:get,
417
+ "https://foo:bar@api.tropo.com/v1/partitions/staging/platforms",
418
+ :body => ActiveSupport::JSON.encode(@platforms),
411
419
  :content_type => "application/json",
412
420
  :status => ["200", "OK"])
413
-
421
+
414
422
  # List balance
415
- FakeWeb.register_uri(:get,
416
- "https://foo:bar@api.tropo.com/v1/users/12345/usage",
417
- :body => ActiveSupport::JSON.encode(@balance),
423
+ FakeWeb.register_uri(:get,
424
+ "https://foo:bar@api.tropo.com/v1/users/12345/usage",
425
+ :body => ActiveSupport::JSON.encode(@balance),
418
426
  :content_type => "application/json",
419
427
  :status => ["200", "OK"])
420
-
428
+
421
429
  # Whitelist
422
- FakeWeb.register_uri(:get,
423
- "https://foo:bar@api.tropo.com/v1/users/12345/partitions/production/platforms/sms/whitelist",
424
- :body => ActiveSupport::JSON.encode(@whitelist),
430
+ FakeWeb.register_uri(:get,
431
+ "https://foo:bar@api.tropo.com/v1/users/12345/partitions/production/platforms/sms/whitelist",
432
+ :body => ActiveSupport::JSON.encode(@whitelist),
425
433
  :content_type => "application/json",
426
434
  :status => ["200", "OK"])
427
435
  # Whitelist
428
- FakeWeb.register_uri(:get,
429
- "https://foo:bar@api.tropo.com/v1/users/partitions/production/platforms/sms/whitelist",
430
- :body => ActiveSupport::JSON.encode(@whitelist),
436
+ FakeWeb.register_uri(:get,
437
+ "https://foo:bar@api.tropo.com/v1/users/partitions/production/platforms/sms/whitelist",
438
+ :body => ActiveSupport::JSON.encode(@whitelist),
431
439
  :content_type => "application/json",
432
440
  :status => ["200", "OK"])
433
-
441
+
434
442
  # Whitelist create
435
- FakeWeb.register_uri(:post,
436
- "https://foo:bar@api.tropo.com/v1/users/12345/partitions/production/platforms/sms/whitelist",
437
- :body => ActiveSupport::JSON.encode(@whitelist),
443
+ FakeWeb.register_uri(:post,
444
+ "https://foo:bar@api.tropo.com/v1/users/12345/partitions/production/platforms/sms/whitelist",
445
+ :body => ActiveSupport::JSON.encode(@whitelist),
438
446
  :content_type => "application/json",
439
447
  :status => ["200", "OK"])
440
448
  # Whitelist delete
441
- FakeWeb.register_uri(:delete,
442
- "https://foo:bar@api.tropo.com/v1/users/12345/partitions/production/platforms/sms/whitelist/14155551212",
443
- :body => ActiveSupport::JSON.encode(@whitelist),
449
+ FakeWeb.register_uri(:delete,
450
+ "https://foo:bar@api.tropo.com/v1/users/12345/partitions/production/platforms/sms/whitelist/14155551212",
451
+ :body => ActiveSupport::JSON.encode(@whitelist),
444
452
  :content_type => "application/json",
445
453
  :status => ["200", "OK"])
446
-
454
+
447
455
  # Countries
448
- FakeWeb.register_uri(:get,
449
- "https://foo:bar@api.tropo.com/v1/countries",
450
- :body => ActiveSupport::JSON.encode(@countries),
456
+ FakeWeb.register_uri(:get,
457
+ "https://foo:bar@api.tropo.com/v1/countries",
458
+ :body => ActiveSupport::JSON.encode(@countries),
451
459
  :content_type => "application/json",
452
460
  :status => ["200", "OK"])
453
461
 
454
462
  # States
455
- FakeWeb.register_uri(:get,
456
- "https://foo:bar@api.tropo.com/v1/countries/36/states",
457
- :body => ActiveSupport::JSON.encode(@states),
463
+ FakeWeb.register_uri(:get,
464
+ "https://foo:bar@api.tropo.com/v1/countries/36/states",
465
+ :body => ActiveSupport::JSON.encode(@states),
458
466
  :content_type => "application/json",
459
467
  :status => ["200", "OK"])
460
-
468
+
461
469
  # Recurrency get
462
- FakeWeb.register_uri(:get,
463
- "https://foo:bar@api.tropo.com/v1/users/1234/payment/recurrence",
464
- :body => ActiveSupport::JSON.encode(@recurrence),
470
+ FakeWeb.register_uri(:get,
471
+ "https://foo:bar@api.tropo.com/v1/users/1234/payment/recurrence",
472
+ :body => ActiveSupport::JSON.encode(@recurrence),
465
473
  :content_type => "application/json",
466
474
  :status => ["200", "OK"])
467
-
475
+
468
476
  # Recurrency update
469
- FakeWeb.register_uri(:put,
470
- "https://foo:bar@api.tropo.com/v1/users/1234/payment/recurrence",
471
- :body => ActiveSupport::JSON.encode(@recurrence_updated),
477
+ FakeWeb.register_uri(:put,
478
+ "https://foo:bar@api.tropo.com/v1/users/1234/payment/recurrence",
479
+ :body => ActiveSupport::JSON.encode(@recurrence_updated),
472
480
  :content_type => "application/json",
473
481
  :status => ["200", "OK"])
474
-
482
+
475
483
  @invitation_created = { 'href' => "http://api-smsified-eng.voxeo.net/v1/invitations/ABC457" }
476
484
  @deleted_invitation = { 'message' => "deleted invitation at uri http://api-smsified-eng.voxeo.net/v1/invitations/ABC457" }
477
485
  @invitations = [ { 'code' => "ABC456", 'count' => 100, 'credit' => "10.00", 'href' => "http://api-smsified-eng.voxeo.net/v1/invitations/ABC456" },
478
486
  { 'code' => "ABC457", 'count' => 100, 'credit' => "10.00", 'href' => "http://api-smsified-eng.voxeo.net/v1/invitations/ABC457" }]
479
487
 
480
488
  # List invitations
481
- FakeWeb.register_uri(:get,
482
- "https://foo:bar@api.tropo.com/v1/invitations",
483
- :body => ActiveSupport::JSON.encode(@invitations),
489
+ FakeWeb.register_uri(:get,
490
+ "https://foo:bar@api.tropo.com/v1/invitations",
491
+ :body => ActiveSupport::JSON.encode(@invitations),
484
492
  :content_type => "application/json",
485
493
  :status => ["200", "OK"])
486
494
 
487
495
  # Get an invitation
488
- FakeWeb.register_uri(:get,
489
- "https://foo:bar@api.tropo.com/v1/invitations/ABC457",
490
- :body => ActiveSupport::JSON.encode(@invitations[1]),
496
+ FakeWeb.register_uri(:get,
497
+ "https://foo:bar@api.tropo.com/v1/invitations/ABC457",
498
+ :body => ActiveSupport::JSON.encode(@invitations[1]),
491
499
  :content_type => "application/json",
492
500
  :status => ["200", "OK"])
493
501
 
494
502
  # Update an invitation
495
- FakeWeb.register_uri(:put,
496
- "https://foo:bar@api.tropo.com/v1/invitations/ABC457",
497
- :body => ActiveSupport::JSON.encode(@invitation_created),
503
+ FakeWeb.register_uri(:put,
504
+ "https://foo:bar@api.tropo.com/v1/invitations/ABC457",
505
+ :body => ActiveSupport::JSON.encode(@invitation_created),
498
506
  :content_type => "application/json",
499
507
  :status => ["200", "OK"])
500
-
508
+
501
509
  # Update an invitation
502
- FakeWeb.register_uri(:put,
503
- "https://foo:bar@api.tropo.com/v1/users/15909/invitations/ABC457",
504
- :body => ActiveSupport::JSON.encode(@invitation_created),
510
+ FakeWeb.register_uri(:put,
511
+ "https://foo:bar@api.tropo.com/v1/users/15909/invitations/ABC457",
512
+ :body => ActiveSupport::JSON.encode(@invitation_created),
505
513
  :content_type => "application/json",
506
514
  :status => ["200", "OK"])
507
-
515
+
508
516
  # Delete an invitation
509
- FakeWeb.register_uri(:delete,
510
- "https://foo:bar@api.tropo.com/v1/invitations/ABC457",
511
- :body => ActiveSupport::JSON.encode(@deleted_invitation),
517
+ FakeWeb.register_uri(:delete,
518
+ "https://foo:bar@api.tropo.com/v1/invitations/ABC457",
519
+ :body => ActiveSupport::JSON.encode(@deleted_invitation),
512
520
  :content_type => "application/json",
513
521
  :status => ["200", "OK"])
514
-
522
+
515
523
  # Delete an invitation
516
- FakeWeb.register_uri(:delete,
517
- "https://foo:bar@api.tropo.com/v1/users/15909/invitations/ABC457",
518
- :body => ActiveSupport::JSON.encode(@deleted_invitation),
524
+ FakeWeb.register_uri(:delete,
525
+ "https://foo:bar@api.tropo.com/v1/users/15909/invitations/ABC457",
526
+ :body => ActiveSupport::JSON.encode(@deleted_invitation),
519
527
  :content_type => "application/json",
520
528
  :status => ["200", "OK"])
521
-
529
+
522
530
  # Create invitation
523
- FakeWeb.register_uri(:post,
524
- "https://foo:bar@api.tropo.com/v1/invitations",
525
- :body => ActiveSupport::JSON.encode(@invitation_created),
531
+ FakeWeb.register_uri(:post,
532
+ "https://foo:bar@api.tropo.com/v1/invitations",
533
+ :body => ActiveSupport::JSON.encode(@invitation_created),
526
534
  :content_type => "application/json",
527
535
  :status => ["200", "OK"])
528
536
 
529
537
  # Create invitation
530
- FakeWeb.register_uri(:post,
531
- "https://foo:bar@api.tropo.com/v1/users/15909/invitations",
532
- :body => ActiveSupport::JSON.encode(@invitation_created),
538
+ FakeWeb.register_uri(:post,
539
+ "https://foo:bar@api.tropo.com/v1/users/15909/invitations",
540
+ :body => ActiveSupport::JSON.encode(@invitation_created),
533
541
  :content_type => "application/json",
534
542
  :status => ["200", "OK"])
535
-
543
+
536
544
  # List invitation for a user
537
- FakeWeb.register_uri(:get,
538
- "https://foo:bar@api.tropo.com/v1/users/15909/invitations",
539
- :body => ActiveSupport::JSON.encode([@invitation_created]),
545
+ FakeWeb.register_uri(:get,
546
+ "https://foo:bar@api.tropo.com/v1/users/15909/invitations",
547
+ :body => ActiveSupport::JSON.encode([@invitation_created]),
540
548
  :content_type => "application/json",
541
549
  :status => ["200", "OK"])
542
-
550
+
543
551
  # List invitation for a user via SSL
544
- FakeWeb.register_uri(:get,
545
- "https://foo:bar@api.tropo.com/v1/invitations",
546
- :body => ActiveSupport::JSON.encode(@invitations),
552
+ FakeWeb.register_uri(:get,
553
+ "https://foo:bar@api.tropo.com/v1/invitations",
554
+ :body => ActiveSupport::JSON.encode(@invitations),
547
555
  :content_type => "application/json",
548
556
  :status => ["200", "OK"])
549
-
557
+
550
558
  # List invitation for a user
551
- FakeWeb.register_uri(:get,
552
- "https://foo:bar@api.tropo.com/v1/users/15909/invitations/ABC457",
553
- :body => ActiveSupport::JSON.encode(@invitations[1]),
559
+ FakeWeb.register_uri(:get,
560
+ "https://foo:bar@api.tropo.com/v1/users/15909/invitations/ABC457",
561
+ :body => ActiveSupport::JSON.encode(@invitations[1]),
554
562
  :content_type => "application/json",
555
563
  :status => ["200", "OK"])
556
-
564
+
557
565
  @username_check = { 'available' => false, 'href' => "http://api.smsified.com/v1/usernames/jsgoecke", 'valid' => true }
558
566
  # List invitation for a user
559
- FakeWeb.register_uri(:get,
560
- "https://foo:bar@api.tropo.com/v1/usernames/12345",
561
- :body => ActiveSupport::JSON.encode(@username_check),
567
+ FakeWeb.register_uri(:get,
568
+ "https://foo:bar@api.tropo.com/v1/usernames/12345",
569
+ :body => ActiveSupport::JSON.encode(@username_check),
562
570
  :content_type => "application/json",
563
571
  :status => ["200", "OK"])
564
572
  end
565
-
566
- let(:tropo_provisioning) do
573
+
574
+ let(:tropo_provisioning) do
567
575
  TropoProvisioning.new('foo', 'bar')
568
576
  end
569
-
577
+
570
578
  let(:exchanges) do
571
579
  '[
572
580
  {
@@ -619,11 +627,11 @@ describe "TropoProvisioning" do
619
627
  }
620
628
  ]'
621
629
  end
622
-
630
+
623
631
  it "should create a TropoProvisioning object" do
624
632
  tropo_provisioning.instance_of?(TropoProvisioning).should == true
625
633
  end
626
-
634
+
627
635
  describe 'authentication' do
628
636
  it "should get an unathorized back if there is an invalid username or password" do
629
637
  begin
@@ -632,12 +640,22 @@ describe "TropoProvisioning" do
632
640
  e.to_s.should == '401: Unauthorized - '
633
641
  end
634
642
  end
635
-
643
+
636
644
  it 'should have the user data on the object if a successful login' do
637
645
  provisioning = TropoProvisioning.new('foo', 'bar')
638
646
  provisioning.user_data['username'].should == 'foo'
639
647
  end
640
-
648
+
649
+ it 'should take a base_url' do
650
+ provisioning = TropoProvisioning.new('foo', 'bar', :base_uri => "http://testserver.com/rest/v1")
651
+ provisioning.base_uri.should == "http://testserver.com/rest/v1/"
652
+ end
653
+
654
+ it 'should sanatize a dirty base_url' do
655
+ provisioning = TropoProvisioning.new('foo', 'bar', :base_uri => "http://testserver.com/rest/v1//////")
656
+ provisioning.base_uri.should == "http://testserver.com/rest/v1/"
657
+ end
658
+
641
659
  it "should not provide a token for an existing account if wrong credentials" do
642
660
  pending('Need to work on tests for the new account')
643
661
  begin
@@ -646,14 +664,14 @@ describe "TropoProvisioning" do
646
664
  e.to_s.should == "403 - Invalid Login."
647
665
  end
648
666
  end
649
-
667
+
650
668
  it "should provide a token for an existing account" do
651
669
  pending('Need to work on tests for the new account')
652
670
  result = tropo_provisioning.account("foobar7474", 'fooey')
653
671
  result.should == @list_account
654
672
  end
655
673
  end
656
-
674
+
657
675
  describe 'applications' do
658
676
  it "should get a list of applications" do
659
677
  _applications = []
@@ -661,12 +679,12 @@ describe "TropoProvisioning" do
661
679
 
662
680
  tropo_provisioning.applications.should == _applications
663
681
  end
664
-
682
+
665
683
  it "should get a specific application" do
666
684
  response = tropo_provisioning.application '108000'
667
685
  response['href'].should == applications[0]['href']
668
686
  end
669
-
687
+
670
688
  it "should raise ArgumentErrors if appropriate arguments are not specified" do
671
689
  begin
672
690
  tropo_provisioning.create_application({ :foo => 'bar' })
@@ -674,7 +692,7 @@ describe "TropoProvisioning" do
674
692
  e.to_s.should == ':name is a required parameter'
675
693
  end
676
694
  end
677
-
695
+
678
696
  it "should raise ArgumentErrors if appropriate values are not passed" do
679
697
  begin
680
698
  tropo_provisioning.create_application({ :name => 'foobar',
@@ -684,7 +702,7 @@ describe "TropoProvisioning" do
684
702
  rescue => e
685
703
  e.to_s.should == ":platform must be 'scripting' or 'webapi'"
686
704
  end
687
-
705
+
688
706
  begin
689
707
  tropo_provisioning.create_application({ :name => 'foobar',
690
708
  :partition => 'foobar',
@@ -694,7 +712,7 @@ describe "TropoProvisioning" do
694
712
  e.to_s.should == ":partition must be 'staging' or 'production'"
695
713
  end
696
714
  end
697
-
715
+
698
716
  it "should receive an href back when we create a new application receiving an href back" do
699
717
  # With camelCase
700
718
  result = tropo_provisioning.create_application({ :name => 'foobar',
@@ -703,7 +721,7 @@ describe "TropoProvisioning" do
703
721
  :messagingUrl => 'http://foobar' })
704
722
  result.href.should == "http://api.tropo.com/v1/applications/108016"
705
723
  result.application_id.should == '108016'
706
-
724
+
707
725
  # With underscores
708
726
  result = tropo_provisioning.create_application({ :name => 'foobar',
709
727
  :partition => 'production',
@@ -712,7 +730,7 @@ describe "TropoProvisioning" do
712
730
  result.href.should == "http://api.tropo.com/v1/applications/108016"
713
731
  result.application_id.should == '108016'
714
732
  end
715
-
733
+
716
734
  it "should receive an href back when we update an application receiving an href back" do
717
735
  # With camelCase
718
736
  result = tropo_provisioning.update_application('108000', { :name => 'foobar',
@@ -720,7 +738,7 @@ describe "TropoProvisioning" do
720
738
  :platform => 'scripting',
721
739
  :messagingUrl => 'http://foobar' })
722
740
  result.href.should == "http://api.tropo.com/v1/applications/108016"
723
-
741
+
724
742
  # With underscore
725
743
  result = tropo_provisioning.update_application('108000', { :name => 'foobar',
726
744
  :partition => 'production',
@@ -728,42 +746,42 @@ describe "TropoProvisioning" do
728
746
  :messaging_url => 'http://foobar' })
729
747
  result.href.should == "http://api.tropo.com/v1/applications/108016"
730
748
  end
731
-
749
+
732
750
  it "should delete an application" do
733
751
  result = tropo_provisioning.delete_application('108000')
734
752
  result.message.should == 'delete successful'
735
753
  end
736
754
  end
737
-
755
+
738
756
  describe 'addresses' do
739
757
  it "should list all of the addresses available for an application" do
740
758
  result = tropo_provisioning.addresses('108000')
741
759
  result.should == @addresses
742
760
  end
743
-
761
+
744
762
  it "should list a single address when requested with a number for numbers" do
745
763
  result = tropo_provisioning.address('108000', '883510001812716')
746
764
  result.should == @addresses[0]
747
765
  end
748
-
766
+
749
767
  it "should list a single address of the appropriate type when requested" do
750
768
  # First a number
751
769
  result = tropo_provisioning.address('108000', '883510001812716')
752
770
  result.should == @addresses[0]
753
-
771
+
754
772
  # Then an IM username
755
773
  result = tropo_provisioning.address('108000', 'xyz123')
756
774
  result.should == @addresses[2]
757
-
775
+
758
776
  # Then a pin
759
777
  result = tropo_provisioning.address('108000', '9991436300')
760
778
  result.should == @addresses[3]
761
-
779
+
762
780
  # Then a token
763
781
  result = tropo_provisioning.address('108000', 'a1b2c3d4')
764
782
  result.should == @addresses[4]
765
783
  end
766
-
784
+
767
785
  it "should generate an error of the addition of the address does not have a required field" do
768
786
  # Add a address without a type
769
787
  begin
@@ -771,35 +789,35 @@ describe "TropoProvisioning" do
771
789
  rescue => e
772
790
  e.to_s.should == ":type is a required parameter"
773
791
  end
774
-
792
+
775
793
  # Add a number without a prefix
776
794
  begin
777
795
  tropo_provisioning.create_address('108000', { :type => 'number' })
778
796
  rescue => e
779
797
  e.to_s.should == ":prefix required to add a number address"
780
798
  end
781
-
799
+
782
800
  # Add a jabber without a username
783
801
  begin
784
802
  tropo_provisioning.create_address('108000', { :type => 'jabber' })
785
803
  rescue => e
786
804
  e.to_s.should == ":username is a required parameter"
787
805
  end
788
-
806
+
789
807
  # Add an aim without a password
790
808
  begin
791
809
  tropo_provisioning.create_address('108000', { :type => 'aim', :username => 'joeblow@aim.com' })
792
810
  rescue => e
793
811
  e.to_s.should == ":password is a required parameter"
794
812
  end
795
-
813
+
796
814
  # Add a token without a channel
797
815
  begin
798
816
  tropo_provisioning.create_address('108000', { :type => 'token' })
799
817
  rescue => e
800
818
  e.to_s.should == ":channel is a required parameter"
801
819
  end
802
-
820
+
803
821
  # Add a token with an invalid channel type
804
822
  begin
805
823
  tropo_provisioning.create_address('108000', { :type => 'token', :channel => 'BBC' })
@@ -807,28 +825,28 @@ describe "TropoProvisioning" do
807
825
  e.to_s.should == ":channel must be voice or messaging"
808
826
  end
809
827
  end
810
-
811
- it "should add appropriate number address" do
828
+
829
+ it "should add appropriate number address" do
812
830
  # Add a address based on a prefix
813
831
  result = tropo_provisioning.create_address('108000', { :type => 'number', :prefix => '1303' })
814
832
  result[:href].should == "http://api.tropo.com/v1/applications/108000/addresses/number/7202551912"
815
833
  result[:address].should == '7202551912'
816
834
  end
817
-
818
- it "should add appropriate jabber address" do
835
+
836
+ it "should add appropriate jabber address" do
819
837
  # Add a jabber account
820
838
  result = tropo_provisioning.create_address('108001', { :type => 'jabber', :username => 'xyz123@bot.im' })
821
839
  result[:href].should == "http://api.tropo.com/v1/applications/108001/addresses/jabber/xyz123@bot.im"
822
- result[:address].should == 'xyz123@bot.im'
840
+ result[:address].should == 'xyz123@bot.im'
823
841
  end
824
842
 
825
- it "should add appropriate token address" do
843
+ it "should add appropriate token address" do
826
844
  # Add a token
827
845
  result = tropo_provisioning.create_address('108002', { :type => 'token', :channel => 'voice' })
828
846
  result[:href].should == "http://api.tropo.com/v1/applications/108002/addresses/token/12345679f90bac47a05b178c37d3c68aaf38d5bdbc5aba0c7abb12345d8a9fd13f1234c1234567dbe2c6f63b"
829
847
  result[:address].should == '12345679f90bac47a05b178c37d3c68aaf38d5bdbc5aba0c7abb12345d8a9fd13f1234c1234567dbe2c6f63b'
830
848
  end
831
-
849
+
832
850
  it "should delete a address" do
833
851
  result = tropo_provisioning.delete_address('108000', '883510001812716')
834
852
  result[:message].should == "delete successful"
@@ -858,7 +876,7 @@ describe "TropoProvisioning" do
858
876
  results = tropo_provisioning.move_address({ :from => '108000', :to => '108002', :address => '883510001812716'})
859
877
  results.should == { 'message' => 'delete successful' }
860
878
  end
861
-
879
+
862
880
  it "should return accounts with associated addresses" do
863
881
  pending()
864
882
  result = tropo_provisioning.account_with_addresses('108000')
@@ -868,14 +886,14 @@ describe "TropoProvisioning" do
868
886
  result.should == nil
869
887
  end
870
888
  end
871
-
889
+
872
890
  describe 'exchanges' do
873
891
  it "should obtain a list of available exchanges" do
874
892
  results = tropo_provisioning.exchanges
875
893
  results.should == ActiveSupport::JSON.decode(exchanges)
876
894
  end
877
895
  end
878
-
896
+
879
897
  describe 'user' do
880
898
  it "should raise argument errors on create_user if required params not passed" do
881
899
  begin
@@ -883,35 +901,35 @@ describe "TropoProvisioning" do
883
901
  rescue => e
884
902
  e.to_s.should == ':username is a required parameter'
885
903
  end
886
-
904
+
887
905
  begin
888
906
  tropo_provisioning.create_user({ :username => "foobar7474" })
889
907
  rescue => e
890
908
  e.to_s.should == ':password is a required parameter'
891
909
  end
892
-
910
+
893
911
  begin
894
- tropo_provisioning.create_user({ :username => "foobar7474", :password => 'fooey' })
912
+ tropo_provisioning.create_user({ :username => "foobar7474", :password => 'fooey', :first_name=> "blah",:last_name=>"blah" })
895
913
  rescue => e
896
914
  e.to_s.should == ':email is a required parameter'
897
915
  end
898
916
  end
899
-
917
+
900
918
  it "should create a new user" do
901
- result = tropo_provisioning.create_user({ :username => "foobar7474", :password => 'fooey', :email => 'jsgoecke@voxeo.com' })
919
+ result = tropo_provisioning.create_user({ :username => "foobar7474", :password => 'fooey', :email => 'jsgoecke@voxeo.com',:first_name=> "jason", :last_name=> "blah" })
902
920
  result.should == @new_user
903
921
  end
904
-
922
+
905
923
  it "should confirm a user" do
906
924
  result = tropo_provisioning.confirm_user('12345', '1234', '127.0.0.1')
907
925
  result.message.should == "successfully confirmed user 12345"
908
926
  end
909
-
927
+
910
928
  it "should obtain details about a user" do
911
929
  result = tropo_provisioning.user('12345')
912
930
  result.should == @existing_user
913
931
  end
914
-
932
+
915
933
  it 'should return a list of search terms that we search for' do
916
934
  result = tropo_provisioning.search_users('username=foobar')
917
935
  result.should == @search_accounts
@@ -927,46 +945,46 @@ describe "TropoProvisioning" do
927
945
  result.href.should == 'http://api-smsified-eng.voxeo.net/v1/users/12345'
928
946
  tropo_provisioning.user_data['password'].should == 'foobar'
929
947
  end
930
-
948
+
931
949
  it 'should see if a username is available' do
932
950
  tropo_provisioning.username_exists?('12345').should == @username_check
933
951
  end
934
952
  end
935
-
953
+
936
954
  describe 'features' do
937
955
  it "should return a list of available features" do
938
956
  result = tropo_provisioning.features
939
957
  result.should == @features
940
958
  end
941
-
959
+
942
960
  it "should return a list of features configured for a user" do
943
961
  result = tropo_provisioning.user_features('12345')
944
962
  result.should == @user_features
945
963
  end
946
-
964
+
947
965
  it "should add a feature to a user" do
948
966
  result = tropo_provisioning.user_enable_feature('12345', 'http://api-smsified-eng.voxeo.net/v1/features/8')
949
967
  result.should == @feature
950
968
  end
951
-
969
+
952
970
  it "should disable a feature for a user" do
953
971
  result = tropo_provisioning.user_disable_feature('12345', '8')
954
972
  result.should == @feature_delete_message
955
973
  end
956
974
  end
957
-
975
+
958
976
  describe 'platforms and partitions' do
959
977
  it 'should list the available partitions' do
960
978
  result = tropo_provisioning.partitions
961
979
  result[0]['name'].should == 'staging'
962
980
  end
963
-
981
+
964
982
  it 'should return a list of available platforms under a partition' do
965
983
  result = tropo_provisioning.platforms('staging')
966
984
  result[0].name.should == 'sms'
967
985
  end
968
986
  end
969
-
987
+
970
988
  describe 'payments' do
971
989
  it "should add a payment method to a user" do
972
990
  result = tropo_provisioning.add_payment_info('12345', { :account_number => '1234567890',
@@ -985,7 +1003,7 @@ describe "TropoProvisioning" do
985
1003
  :phone_number => '4155551212' })
986
1004
  result.should == @payment_info_message
987
1005
  end
988
-
1006
+
989
1007
  it "should add a payment method to a user in camelCase" do
990
1008
  result = tropo_provisioning.add_payment_info('12345', { :accountNumber => '1234567890',
991
1009
  :paymentType => 'https://api-smsified-eng.voxeo.net/v1/types/payment/1',
@@ -1002,7 +1020,7 @@ describe "TropoProvisioning" do
1002
1020
  :email => 'j@doe.com',
1003
1021
  :phoneNumber => '4155551212' })
1004
1022
 
1005
- result.should == @payment_info_message
1023
+ result.should == @payment_info_message
1006
1024
  end
1007
1025
 
1008
1026
  it 'should add a payment method to a user keys as strings' do
@@ -1024,7 +1042,7 @@ describe "TropoProvisioning" do
1024
1042
 
1025
1043
  result.should == @payment_info_message
1026
1044
  end
1027
-
1045
+
1028
1046
  it 'should add a payment method to a user in camelCase and keys as strings' do
1029
1047
  result = tropo_provisioning.add_payment_info('12345', { 'accountNumber' => '1234567890',
1030
1048
  'paymentType' => 'https://api-smsified-eng.voxeo.net/v1/types/payment/1',
@@ -1043,17 +1061,17 @@ describe "TropoProvisioning" do
1043
1061
 
1044
1062
  result.should == @payment_info_message
1045
1063
  end
1046
-
1064
+
1047
1065
  it 'should return the balance' do
1048
1066
  result = tropo_provisioning.balance('12345')
1049
1067
  result['balance'].should == "3.00"
1050
1068
  end
1051
-
1069
+
1052
1070
  it 'should make a payment' do
1053
1071
  result = tropo_provisioning.make_payment('1234', 1.0)
1054
1072
  result.message.should == "successfully posted payment for the amount 1.000000"
1055
1073
  end
1056
-
1074
+
1057
1075
  it "should get the payment method for a user" do
1058
1076
  result = tropo_provisioning.user_payment_method('12345')
1059
1077
  result.should == @payment_method
@@ -1063,7 +1081,7 @@ describe "TropoProvisioning" do
1063
1081
  result = tropo_provisioning.available_payment_types
1064
1082
  result.should == @payment_methods
1065
1083
  end
1066
-
1084
+
1067
1085
  it 'should raise an error if a float is not passed in amount for make_payment' do
1068
1086
  begin
1069
1087
  tropo_provisioning.make_payment('1234', { :foo => 'bar' })
@@ -1071,37 +1089,37 @@ describe "TropoProvisioning" do
1071
1089
  e.to_s.should == "amount must be of type Float"
1072
1090
  end
1073
1091
  end
1074
-
1092
+
1075
1093
  it 'should update the recurring payment details' do
1076
1094
  result = tropo_provisioning.update_recurrence('1234', { :recharge_amount => 13.50, :threshold_percentage => 10 })
1077
1095
  result.should == @recurrence_updated
1078
1096
  end
1079
-
1097
+
1080
1098
  it 'should get the existing recurrent payment details' do
1081
1099
  tropo_provisioning.get_recurrence('1234').should == @recurrence
1082
1100
  end
1083
1101
  end
1084
-
1102
+
1085
1103
  describe 'whitelists' do
1086
1104
  it 'should get the whitelist for a user account' do
1087
1105
  result = tropo_provisioning.whitelist('12345')
1088
1106
  result.should == @whitelist
1089
-
1107
+
1090
1108
  result = tropo_provisioning.whitelist
1091
1109
  result.should == @whitelist
1092
1110
  end
1093
-
1111
+
1094
1112
  it 'should add to a whitelist' do
1095
1113
  result = tropo_provisioning.add_whitelist({ :user_id => '12345', :value => '14155551212' })
1096
1114
  result.should == @whitelist
1097
1115
  end
1098
-
1116
+
1099
1117
  it 'should remove from a whitelist' do
1100
1118
  result = tropo_provisioning.delete_whitelist({ :user_id => '12345', :value => '14155551212' })
1101
1119
  result.should == @whitelist
1102
1120
  end
1103
1121
  end
1104
-
1122
+
1105
1123
  describe 'custome error' do
1106
1124
  it 'should raise a custom error with an http_status code on the error object' do
1107
1125
  begin
@@ -1112,75 +1130,75 @@ describe "TropoProvisioning" do
1112
1130
  end
1113
1131
  end
1114
1132
  end
1115
-
1133
+
1116
1134
  describe 'geography' do
1117
1135
  it 'should return a list of countries' do
1118
1136
  tropo_provisioning.countries.should == @countries
1119
1137
  end
1120
-
1138
+
1121
1139
  it 'should have the id added for the country' do
1122
1140
  result = tropo_provisioning.countries[1][:id].should == '36'
1123
1141
  end
1124
-
1142
+
1125
1143
  it 'should return a list of states' do
1126
1144
  tropo_provisioning.states('36').should == @states
1127
1145
  end
1128
-
1146
+
1129
1147
  it 'should have the id added for the state' do
1130
1148
  tropo_provisioning.states('36')[1]['id'].should == '50'
1131
1149
  end
1132
1150
  end
1133
-
1151
+
1134
1152
  describe 'invitations' do
1135
1153
  it 'should return a list of inivitations' do
1136
1154
  tropo_provisioning.invitations.should == @invitations
1137
1155
  end
1138
-
1156
+
1139
1157
  it 'should return an invitation' do
1140
1158
  tropo_provisioning.invitation('ABC457').should == @invitations[1]
1141
1159
  end
1142
-
1160
+
1143
1161
  it 'should create an invitation' do
1144
1162
  tropo_provisioning.create_invitation({ :code => 'ABC457',
1145
1163
  :count => 100,
1146
1164
  :credit => 10 }).should == @invitation_created
1147
1165
  end
1148
-
1166
+
1149
1167
  it 'should create an invitationfor a specific user' do
1150
1168
  tropo_provisioning.create_invitation('15909',
1151
1169
  { :code => 'ABC457',
1152
1170
  :count => 100,
1153
1171
  :credit => 10 }).should == @invitation_created
1154
1172
  end
1155
-
1173
+
1156
1174
  it 'should update an invitation' do
1157
1175
  tropo_provisioning.update_invitation('ABC457', :count => 200).should == @invitation_created
1158
1176
  end
1159
-
1177
+
1160
1178
  it 'should update an invitation for a specific user' do
1161
1179
  tropo_provisioning.update_invitation('ABC457', '15909', :count => 200).should == @invitation_created
1162
1180
  end
1163
-
1181
+
1164
1182
  it 'should delete an invitation' do
1165
1183
  tropo_provisioning.delete_invitation('ABC457').should == @deleted_invitation
1166
1184
  end
1167
-
1185
+
1168
1186
  it 'should delete a specific user invitation' do
1169
1187
  tropo_provisioning.delete_invitation('ABC457', '15909').should == @deleted_invitation
1170
1188
  end
1171
-
1189
+
1172
1190
  it 'should fetch the invitations for a user' do
1173
1191
  tropo_provisioning.user_invitations('15909').should == [@invitation_created]
1174
1192
  end
1175
-
1193
+
1176
1194
  it 'should list a specific invitation for a user' do
1177
1195
  tropo_provisioning.invitation('ABC457', '15909').should == @invitations[1]
1178
1196
  end
1179
1197
  end
1180
-
1198
+
1181
1199
  describe "HTTPS/SSL support" do
1182
1200
  it 'should fetch invitations via HTTPS/SSL' do
1183
1201
  tropo_provisioning.invitations.should == @invitations
1184
1202
  end
1185
1203
  end
1186
- end
1204
+ end