adzerk 0.1

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.
@@ -0,0 +1,331 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Creative Flight API" do
4
+
5
+ $creative_url = 'http://www.adzerk.com'
6
+ @@map = $adzerk::CreativeMap.new
7
+ @@advertiser = $adzerk::Advertiser.new
8
+ @@channel = $adzerk::Channel.new
9
+ @@campaign = $adzerk::Campaign.new
10
+ @@site = $adzerk::Site.new
11
+ @@flight = $adzerk::Flight.new
12
+
13
+ before(:all) do
14
+ new_advertiser = {
15
+ 'Title' => "Test"
16
+ }
17
+ response = @@advertiser.create(new_advertiser)
18
+ $brandId = JSON.parse(response.body)["Id"]
19
+
20
+ new_channel = {
21
+ 'Title' => 'Test Channel ' + rand(1000000).to_s,
22
+ 'Commission' => '0',
23
+ 'Engine' => 'CPM',
24
+ 'Keywords' => 'test',
25
+ 'CPM' => '10.00',
26
+ 'AdTypes' => [0,1,2,3,4]
27
+ }
28
+ response = @@channel.create(new_channel)
29
+ $channelId = JSON.parse(response.body)["Id"]
30
+
31
+ new_campaign = {
32
+ 'Name' => 'Test campaign ' + rand(1000000).to_s,
33
+ 'StartDate' => "1/1/2011",
34
+ 'EndDate' => "12/31/2011",
35
+ 'IsActive' => false,
36
+ 'Price' => '10.00',
37
+ 'BrandId' => $brandId,
38
+ 'Flights' => [],
39
+ 'IsDeleted' => false
40
+ }
41
+ response = @@campaign.create(new_campaign)
42
+ $campaignId = JSON.parse(response.body)["Id"]
43
+
44
+ new_flight = {
45
+ 'NoEndDate' => false,
46
+ 'ChannelId' => $channelId,
47
+ 'Name' => 'Test flight ' + rand(1000000).to_s,
48
+ 'StartDate' => "1/1/2011",
49
+ 'EndDate' => "12/31/2011",
50
+ 'NoEndDate' => false,
51
+ 'Price' => '15.00',
52
+ 'OptionType' => 1,
53
+ 'Impressions' => 10000,
54
+ 'IsUnlimited' => false,
55
+ 'IsFullSpeed' => false,
56
+ 'Keywords' => "test, test2",
57
+ 'UserAgentKeywords' => nil,
58
+ 'WeightOverride' => nil,
59
+ 'CampaignId' => $campaignId,
60
+ 'IsActive' => true,
61
+ 'IsDeleted' => false
62
+ }
63
+ response = @@flight.create(new_flight)
64
+ $flightId = JSON.parse(response.body)["Id"]
65
+
66
+ new_site = {
67
+ 'Title' => 'Test Site ' + rand(1000000).to_s,
68
+ 'Url' => 'http://www.adzerk.com'
69
+ }
70
+ response = @@site.create(new_site)
71
+ $siteId = JSON.parse(response.body)["Id"]
72
+ end
73
+
74
+ it "should create a creative" do
75
+ $Title = 'Test creative ' + rand(1000000).to_s
76
+ $ImageName = "test.jpg"
77
+ $Url = "http://adzerk.com"
78
+ $Body = "Test text"
79
+ $BrandId = $brandId
80
+ $CampaignId = $campaignId
81
+ $FlightId = $flightId
82
+ $MapId = 0
83
+ $AdTypeId = 18
84
+ $ZoneId = 0
85
+ $SiteId = $siteId
86
+ $ChannelId = $channelId
87
+ $SizeOverride = false
88
+ $Iframe = false
89
+ $PublisherAccountId = 372
90
+ $ScriptBody = nil
91
+ $Impressions = 100000
92
+ $Percentage = 0
93
+ $DistributionType = 0
94
+ $AdFormatId = 0
95
+ $IsActive = true
96
+ $Alt = "test alt"
97
+ $IsDeleted = false
98
+ $IsSync = false
99
+
100
+ new_creative = {
101
+ 'CampaignId' => $CampaignId,
102
+ 'FlightId' => $FlightId,
103
+ #'MapId' => $MapId,
104
+ #'ZoneId' => $ZoneId,
105
+ 'ChannelId' => $ChannelId,
106
+ 'SizeOverride' => $SizeOverride,
107
+ 'Iframe' => $Iframe,
108
+ 'PublisherAccountId' => $PublisherAccountId,
109
+ 'ScriptBody' => $ScriptBody,
110
+ 'Impressions' => $Impressions,
111
+ 'Percentage' => $Percentage,
112
+ 'SiteId' => $SiteId,
113
+ #'DistributionType' => $DistributionType,
114
+ 'AdFormatId' => $AdFormatId,
115
+ 'IsActive' => $IsActive,
116
+ 'IsDeleted' => $IsDeleted,
117
+ 'Creative' => {
118
+ 'Title' => $Title,
119
+ 'ImageName' => $ImageName,
120
+ 'Url' => $Url,
121
+ 'Body' => $Body,
122
+ 'BrandId' => $BrandId,
123
+ 'AdTypeId' => $AdTypeId,
124
+ 'IsActive' => $IsActive,
125
+ 'Alt' => $Alt,
126
+ 'IsDeleted' => $IsDeleted,
127
+ 'IsSync' => $IsSync
128
+ }
129
+ }
130
+ response = @@map.create(new_creative)
131
+ Adzerk.uploadCreative(JSON.parse(response.body)["Creative"]["Id"].to_s, "250x250.gif")
132
+ $creative_id = JSON.parse(response.body)["Id"].to_s
133
+ JSON.parse(response.body)["Creative"]["Title"].should == $Title
134
+ JSON.parse(response.body)["Creative"]["Url"].should == $Url
135
+ JSON.parse(response.body)["Creative"]["Body"].should == $Body
136
+ JSON.parse(response.body)["Creative"]["BrandId"].should == $BrandId
137
+ JSON.parse(response.body)["CampaignId"].should == $CampaignId
138
+ JSON.parse(response.body)["FlightId"].should == $FlightId
139
+ #JSON.parse(response.body)["MapId"].should == $MapId
140
+ JSON.parse(response.body)["Creative"]["AdTypeId"].should == $AdTypeId
141
+ #JSON.parse(response.body)["ZoneId"].should == $ZoneId
142
+ JSON.parse(response.body)["SiteId"].should == $SiteId
143
+ JSON.parse(response.body)["ChannelId"].should == $ChannelId
144
+ JSON.parse(response.body)["SizeOverride"].should == $SizeOverride
145
+ JSON.parse(response.body)["PublisherAccountId"].should == $PublisherAccountId
146
+ JSON.parse(response.body)["ScriptBody"].should == $ScriptBody
147
+ JSON.parse(response.body)["Impressions"].should == $Impressions
148
+ JSON.parse(response.body)["Percentage"].should == $Percentage
149
+ #JSON.parse(response.body)["DistributionType"].should == $DistributionType
150
+ JSON.parse(response.body)["AdFormatId"].should == $AdFormatId
151
+ JSON.parse(response.body)["Creative"]["IsActive"].should == $IsActive
152
+ JSON.parse(response.body)["Creative"]["Alt"].should == $Alt
153
+ JSON.parse(response.body)["IsDeleted"].should == $IsDeleted
154
+ JSON.parse(response.body)["Creative"]["IsSync"].should == $IsSync
155
+ end
156
+
157
+ it "should list all creatives for a flight" do
158
+ response = @@map.list($FlightId)
159
+ entry = response["Items"].last.to_json
160
+ $creative_id = JSON.parse(entry)["Id"]
161
+ JSON.parse(entry)["Creative"]["Title"].should == $Title
162
+ JSON.parse(entry)["Creative"]["Url"].should == $Url
163
+ JSON.parse(entry)["Creative"]["Body"].should == $Body
164
+ JSON.parse(entry)["Creative"]["BrandId"].should == $BrandId
165
+ #JSON.parse(entry)["CampaignId"].should == $CampaignId
166
+ #JSON.parse(entry)["FlightId"].should == $FlightId
167
+ #JSON.parse(entry)["MapId"].should == $MapId
168
+ JSON.parse(entry)["Creative"]["AdTypeId"].should == $AdTypeId
169
+ #JSON.parse(entry)["ZoneId"].should == $ZoneId
170
+ JSON.parse(entry)["SiteId"].should == $SiteId
171
+ #JSON.parse(entry)["ChannelId"].should == $ChannelId
172
+ JSON.parse(entry)["SizeOverride"].should == $SizeOverride
173
+ #JSON.parse(entry)["PublisherAccountId"].should == $PublisherAccountId
174
+ JSON.parse(entry)["ScriptBody"].should == $ScriptBody
175
+ #JSON.parse(entry)["Impressions"].should == $Impressions
176
+ JSON.parse(entry)["Percentage"].should == $Percentage
177
+ #JSON.parse(entry)["DistributionType"].should == $DistributionType
178
+ JSON.parse(entry)["AdFormatId"].should == $AdFormatId
179
+ JSON.parse(entry)["Creative"]["IsActive"].should == $IsActive
180
+ JSON.parse(entry)["Creative"]["Alt"].should == $Alt
181
+ JSON.parse(entry)["IsDeleted"].should == $IsDeleted
182
+ JSON.parse(entry)["Creative"]["IsSync"].should == $IsSync
183
+ end
184
+
185
+ it "should get a specific creative" do
186
+ response = @@map.get($creative_id, $flightId)
187
+ JSON.parse(response.body)["Id"].should == $creative_id
188
+ JSON.parse(response.body)["Creative"]["Title"].should == $Title
189
+ JSON.parse(response.body)["Creative"]["Url"].should == $Url
190
+ JSON.parse(response.body)["Creative"]["Body"].should == $Body
191
+ JSON.parse(response.body)["Creative"]["BrandId"].should == $BrandId
192
+ #JSON.parse(response.body)["CampaignId"].should == $CampaignId
193
+ #JSON.parse(response.body)["FlightId"].should == $FlightId
194
+ #JSON.parse(response.body)["MapId"].should == $MapId
195
+ JSON.parse(response.body)["Creative"]["AdTypeId"].should == $AdTypeId
196
+ #JSON.parse(response.body)["ZoneId"].should == $ZoneId
197
+ JSON.parse(response.body)["SiteId"].should == $SiteId
198
+ #JSON.parse(response.body)["ChannelId"].should == $ChannelId
199
+ JSON.parse(response.body)["SizeOverride"].should == $SizeOverride
200
+ #JSON.parse(response.body)["PublisherAccountId"].should == $PublisherAccountId
201
+ JSON.parse(response.body)["ScriptBody"].should == $ScriptBody
202
+ #JSON.parse(response.body)["Impressions"].should == $Impressions
203
+ JSON.parse(response.body)["Percentage"].should == $Percentage
204
+ #JSON.parse(response.body)["DistributionType"].should == $DistributionType
205
+ JSON.parse(response.body)["AdFormatId"].should == $AdFormatId
206
+ JSON.parse(response.body)["Creative"]["IsActive"].should == $IsActive
207
+ JSON.parse(response.body)["Creative"]["Alt"].should == $Alt
208
+ JSON.parse(response.body)["IsDeleted"].should == $IsDeleted
209
+ JSON.parse(response.body)["Creative"]["IsSync"].should == $IsSync
210
+ end
211
+
212
+ it "should update a specific creative" do
213
+ update_creative = {
214
+ 'Id' => $creative_id.to_i,
215
+ 'Title' => $Title,
216
+ 'ImageName' => $ImageName,
217
+ 'Url' => $Url,
218
+ 'Body' => $Body,
219
+ 'BrandId' => $BrandId,
220
+ 'CampaignId' => $CampaignId,
221
+ 'FlightId' => $FlightId,
222
+ #'MapId' => $MapId,
223
+ 'AdTypeId' => $AdTypeId,
224
+ #'ZoneId' => $ZoneId,
225
+ 'SiteId' => $SiteId,
226
+ 'ChannelId' => $ChannelId,
227
+ 'SizeOverride' => $SizeOverride,
228
+ 'Iframe' => $Iframe,
229
+ 'PublisherAccountId' => $PublisherAccountId,
230
+ 'ScriptBody' => $ScriptBody,
231
+ 'Impressions' => $Impressions,
232
+ 'Percentage' => $Percentage,
233
+ #'DistributionType' => $DistributionType,
234
+ 'AdFormatId' => $AdFormatId,
235
+ 'IsActive' => $IsActive,
236
+ 'Alt' => $Alt,
237
+ 'IsDeleted' => $IsDeleted,
238
+ 'IsSync' => $IsSync
239
+ }
240
+ response = @@map.update(update_creative)
241
+ # JSON.parse(response.body)["Id"].should == $creative_id
242
+ # JSON.parse(response.body)["Creative"]["Title"].should == $Title
243
+ # JSON.parse(response.body)["Creative"]["Url"].should == $Url
244
+ # JSON.parse(response.body)["Creative"]["Body"].should == $Body
245
+ # JSON.parse(response.body)["Creative"]["BrandId"].should == $BrandId
246
+ # JSON.parse(response.body)["CampaignId"].should == $CampaignId
247
+ # JSON.parse(response.body)["FlightId"].should == $FlightId
248
+ # JSON.parse(response.body)["MapId"].should == $MapId
249
+ # JSON.parse(response.body)["Creative"]["AdTypeId"].should == $AdTypeId
250
+ # JSON.parse(response.body)["ZoneId"].should == $ZoneId
251
+ # JSON.parse(response.body)["SiteId"].should == $SiteId
252
+ # JSON.parse(response.body)["ChannelId"].should == $ChannelId
253
+ # JSON.parse(response.body)["SizeOverride"].should == $SizeOverride
254
+ # JSON.parse(response.body)["PublisherAccountId"].should == $PublisherAccountId
255
+ # JSON.parse(response.body)["ScriptBody"].should == $ScriptBody
256
+ # JSON.parse(response.body)["Impressions"].should == $Impressions
257
+ # JSON.parse(response.body)["Percentage"].should == $Percentage
258
+ # JSON.parse(response.body)["DistributionType"].should == $DistributionType
259
+ # JSON.parse(response.body)["AdFormatId"].should == $AdFormatId
260
+ # JSON.parse(response.body)["Creative"]["IsActive"].should == $IsActive
261
+ # JSON.parse(response.body)["Creative"]["Alt"].should == $Alt
262
+ # JSON.parse(response.body)["IsDeleted"].should == $IsDeleted
263
+ # JSON.parse(response.body)["Creative"]["IsSync"].should == $IsSync
264
+ end
265
+
266
+ it "should delete the creatives after creating it" do
267
+ response = @@map.delete($creative_id, $FlightId)
268
+ response.body.should == "OK"
269
+ end
270
+
271
+ it "should not create a map when campaignId is forbidden" do
272
+ map = {
273
+ 'CampaignId' => '123',
274
+ 'FlightId' => $FlightId,
275
+ 'ChannelId' => $ChannelId,
276
+ 'SizeOverride' => $SizeOverride,
277
+ 'Iframe' => $Iframe,
278
+ 'PublisherAccountId' => $PublisherAccountId,
279
+ 'ScriptBody' => $ScriptBody,
280
+ 'Impressions' => $Impressions,
281
+ 'SiteId' => $SiteId,
282
+ 'Percentage' => $Percentage,
283
+ 'AdFormatId' => $AdFormatId,
284
+ 'IsActive' => $IsActive,
285
+ 'IsDeleted' => $IsDeleted
286
+ }
287
+ response = @@map.create(map)
288
+ true.should == !response.body.scan(/Object/).nil?
289
+ end
290
+
291
+ it "should not create a map when flightId is forbidden" do
292
+ map = {
293
+ 'CampaignId' => $CampaignId,
294
+ 'FlightId' => '123',
295
+ 'ChannelId' => $ChannelId,
296
+ 'SizeOverride' => $SizeOverride,
297
+ 'Iframe' => $Iframe,
298
+ 'PublisherAccountId' => $PublisherAccountId,
299
+ 'ScriptBody' => $ScriptBody,
300
+ 'Impressions' => $Impressions,
301
+ 'SiteId' => $SiteId,
302
+ 'Percentage' => $Percentage,
303
+ 'AdFormatId' => $AdFormatId,
304
+ 'IsActive' => $IsActive,
305
+ 'IsDeleted' => $IsDeleted
306
+ }
307
+ response = @@map.create(map)
308
+ true.should == !response.body.scan(/Object/).nil?
309
+ end
310
+
311
+ it "should not create a map when channelId is forbidden" do
312
+ map = {
313
+ 'CampaignId' => $CampaignId,
314
+ 'FlightId' => $FlightId,
315
+ 'ChannelId' => '123',
316
+ 'SizeOverride' => $SizeOverride,
317
+ 'Iframe' => $Iframe,
318
+ 'PublisherAccountId' => $PublisherAccountId,
319
+ 'ScriptBody' => $ScriptBody,
320
+ 'Impressions' => $Impressions,
321
+ 'SiteId' => $SiteId,
322
+ 'Percentage' => $Percentage,
323
+ 'AdFormatId' => $AdFormatId,
324
+ 'IsActive' => $IsActive,
325
+ 'IsDeleted' => $IsDeleted
326
+ }
327
+ response = @@map.create(map)
328
+ true.should == !response.body.scan(/Object/).nil?
329
+ end
330
+
331
+ end
@@ -0,0 +1,296 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Flight API" do
4
+
5
+ $flight_url = 'http://www.adzerk.com'
6
+ @@flight = $adzerk::Flight.new
7
+ @@advertiser = $adzerk::Advertiser.new
8
+ @@channel = $adzerk::Channel.new
9
+ @@campaign = $adzerk::Campaign.new
10
+
11
+ before(:all) do
12
+ new_advertiser = {
13
+ 'Title' => "Test"
14
+ }
15
+ response = @@advertiser.create(new_advertiser)
16
+ $brandId = JSON.parse(response.body)["Id"]
17
+
18
+ new_channel = {
19
+ 'Title' => 'Test Channel ' + rand(1000000).to_s,
20
+ 'Commission' => '0',
21
+ 'Engine' => 'CPM',
22
+ 'Keywords' => 'test',
23
+ 'CPM' => '10.00',
24
+ 'AdTypes' => [0,1,2,3,4]
25
+ }
26
+ response = @@channel.create(new_channel)
27
+ $channelId = JSON.parse(response.body)["Id"]
28
+
29
+ new_campaign = {
30
+ 'Name' => 'Test campaign ' + rand(1000000).to_s,
31
+ 'StartDate' => "1/1/2011",
32
+ 'EndDate' => "12/31/2011",
33
+ 'IsActive' => false,
34
+ 'Price' => '10.00',
35
+ 'BrandId' => $brandId,
36
+ 'Flights' => [],
37
+ 'IsDeleted' => false
38
+ }
39
+ response = @@campaign.create(new_campaign)
40
+ $campaignId = JSON.parse(response.body)["Id"]
41
+ end
42
+
43
+ it "should create a flight" do
44
+ $flight_Name = 'Test flight ' + rand(1000000).to_s
45
+ $flight_StartDate = "1/1/2011"
46
+ $flight_EndDate = "12/31/2011"
47
+ $flight_NoEndDate = false
48
+ $flight_Price = '15.00'
49
+ $flight_OptionType = 1
50
+ $flight_Impressions = 10000
51
+ $flight_IsUnlimited = false
52
+ $flight_IsFullSpeed = false
53
+ $flight_Keywords = "test, test2"
54
+ $flight_UserAgentKeywords = nil
55
+ $flight_WeightOverride = nil
56
+ $flight_CampaignId = $campaignId
57
+ $flight_IsActive = true
58
+ $flight_IsDeleted = false
59
+
60
+ new_flight = {
61
+ 'NoEndDate' => false,
62
+ 'ChannelId' => $channelId,
63
+ 'Name' => $flight_Name,
64
+ 'StartDate' => $flight_StartDate,
65
+ 'EndDate' => $flight_EndDate,
66
+ 'NoEndDate' => $flight_NoEndDate,
67
+ 'Price' => $flight_Price,
68
+ 'OptionType' => $flight_OptionType,
69
+ 'Impressions' => $flight_Impressions,
70
+ 'IsUnlimited' => $flight_IsUnlimited,
71
+ 'IsFullSpeed' => $flight_IsFullSpeed,
72
+ 'Keywords' => $flight_Keywords,
73
+ 'UserAgentKeywords' => $flight_UserAgentKeywords,
74
+ 'WeightOverride' => $flight_WeightOverride,
75
+ 'CampaignId' => $flight_CampaignId,
76
+ 'IsActive' => $flight_IsActive,
77
+ 'IsDeleted' => $flight_IsDeleted
78
+ }
79
+ response = @@flight.create(new_flight)
80
+ $flight_id = JSON.parse(response.body)["Id"].to_s
81
+ JSON.parse(response.body)["NoEndDate"].should == false
82
+ JSON.parse(response.body)["ChannelId"].should == $channelId
83
+ JSON.parse(response.body)["Name"].should == $flight_Name
84
+ # JSON.parse(response.body)["StartDate"].should == "/Date(1293840000000+0000)/"
85
+ # JSON.parse(response.body)["EndDate"].should == "/Date(1325307600000-0500)/"
86
+ JSON.parse(response.body)["NoEndDate"].should == $flight_NoEndDate
87
+ JSON.parse(response.body)["Price"].should == 15.0
88
+ JSON.parse(response.body)["OptionType"].should == $flight_OptionType
89
+ JSON.parse(response.body)["Impressions"].should == $flight_Impressions
90
+ JSON.parse(response.body)["IsUnlimited"].should == $flight_IsUnlimited
91
+ JSON.parse(response.body)["IsFullSpeed"].should == $flight_IsFullSpeed
92
+ JSON.parse(response.body)["Keywords"].should == $flight_Keywords
93
+ JSON.parse(response.body)["UserAgentKeywords"].should == $flight_UserAgentKeywords
94
+ JSON.parse(response.body)["WeightOverride"].should == $flight_WeightOverride
95
+ JSON.parse(response.body)["CampaignId"].should == $flight_CampaignId
96
+ JSON.parse(response.body)["IsActive"].should == $flight_IsActive
97
+ JSON.parse(response.body)["IsDeleted"].should == $flight_IsDeleted
98
+ end
99
+
100
+ it "should list a specific flight" do
101
+ response = @@flight.get($flight_id)
102
+ response.body.should == '{"Id":' + $flight_id + ',"StartDate":"\\/Date(1293840000000+0000)\\/","EndDate":"\\/Date(1325289600000+0000)\\/","Price":15.00,"OptionType":1,"Impressions":10000,"IsUnlimited":false,"IsNoDuplicates":false,"IsFullSpeed":false,"Keywords":"test, test2","Name":"' + $flight_Name + '","CampaignId":' + $campaignId.to_s + ',"ChannelId":0,"IsDeleted":false,"IsActive":true}'
103
+ end
104
+
105
+ it "should update a flight" do
106
+ $u_flight_Name = 'Test Test flight ' + rand(1000000).to_s
107
+ $u_flight_StartDate = "1/1/2011"
108
+ $u_flight_EndDate = "12/31/2011"
109
+ $u_flight_NoEndDate = false
110
+ $u_flight_Price = '16.00'
111
+ $u_flight_OptionType = 1
112
+ $u_flight_Impressions = 12000
113
+ $u_flight_IsUnlimited = false
114
+ $u_flight_IsFullSpeed = false
115
+ $u_flight_Keywords = "test, test2"
116
+ $u_flight_UserAgentKeywords = nil
117
+ $u_flight_WeightOverride = nil
118
+ $u_flight_CampaignId = $campaignId
119
+ $u_flight_IsActive = true
120
+ $u_flight_IsDeleted = false
121
+
122
+ new_flight = {
123
+ 'Id' => $flight_id,
124
+ 'NoEndDate' => false,
125
+ 'ChannelId' => $channelId,
126
+ 'Name' => $u_flight_Name,
127
+ 'StartDate' => $u_flight_StartDate,
128
+ 'EndDate' => $u_flight_EndDate,
129
+ 'NoEndDate' => $u_flight_NoEndDate,
130
+ 'Price' => $u_flight_Price,
131
+ 'OptionType' => $u_flight_OptionType,
132
+ 'Impressions' => $u_flight_Impressions,
133
+ 'IsUnlimited' => $u_flight_IsUnlimited,
134
+ 'IsFullSpeed' => $u_flight_IsFullSpeed,
135
+ 'Keywords' => $u_flight_Keywords,
136
+ 'UserAgentKeywords' => $u_flight_UserAgentKeywords,
137
+ 'WeightOverride' => $u_flight_WeightOverride,
138
+ 'CampaignId' => $u_flight_CampaignId,
139
+ 'IsActive' => $u_flight_IsActive,
140
+ 'IsDeleted' => $u_flight_IsDeleted
141
+ }
142
+ response = @@flight.update(new_flight)
143
+ $flight_id = JSON.parse(response.body)["Id"].to_s
144
+ JSON.parse(response.body)["NoEndDate"].should == false
145
+ JSON.parse(response.body)["ChannelId"].should == $channelId
146
+ JSON.parse(response.body)["Name"].should == $u_flight_Name
147
+ # JSON.parse(response.body)["StartDate"].should == "/Date(1293840000000+0000)/"
148
+ # JSON.parse(response.body)["EndDate"].should == "/Date(1325307600000-0500)/"
149
+ JSON.parse(response.body)["NoEndDate"].should == $u_flight_NoEndDate
150
+ JSON.parse(response.body)["Price"].should == 16.0
151
+ JSON.parse(response.body)["OptionType"].should == $u_flight_OptionType
152
+ JSON.parse(response.body)["Impressions"].should == $u_flight_Impressions
153
+ JSON.parse(response.body)["IsUnlimited"].should == $u_flight_IsUnlimited
154
+ JSON.parse(response.body)["IsFullSpeed"].should == $u_flight_IsFullSpeed
155
+ JSON.parse(response.body)["Keywords"].should == $u_flight_Keywords
156
+ JSON.parse(response.body)["UserAgentKeywords"].should == $u_flight_UserAgentKeywords
157
+ JSON.parse(response.body)["WeightOverride"].should == $u_flight_WeightOverride
158
+ JSON.parse(response.body)["CampaignId"].should == $u_flight_CampaignId
159
+ JSON.parse(response.body)["IsActive"].should == $u_flight_IsActive
160
+ JSON.parse(response.body)["IsDeleted"].should == $u_flight_IsDeleted
161
+ end
162
+
163
+ it "should list all flights" do
164
+ result = @@flight.list()
165
+ result.length.should > 0
166
+ ## Can't test this right now because of paging issues
167
+ # result["Items"].last["Id"].to_s.should == $flight_id
168
+ # result["Items"].last["NoEndDate"].should == false
169
+ # result["Items"].last["ChannelId"].should == $channelId
170
+ # result["Items"].last["Name"].should == $flight_Name
171
+ # result["Items"].last["StartDate"].should == "/Date(1293858000000-0500)/"
172
+ # result["Items"].last["EndDate"].should == "/Date(1325307600000-0500)/"
173
+ # result["Items"].last["NoEndDate"].should == $flight_NoEndDate
174
+ # result["Items"].last["Price"].should == 15.0
175
+ # result["Items"].last["OptionType"].should == $flight_OptionType
176
+ # result["Items"].last["Impressions"].should == $flight_Impressions
177
+ # result["Items"].last["IsUnlimited"].should == $flight_IsUnlimited
178
+ # result["Items"].last["IsFullSpeed"].should == $flight_IsFullSpeed
179
+ # result["Items"].last["Keywords"].should == $flight_Keywords
180
+ # result["Items"].last["UserAgentKeywords"].should == $flight_UserAgentKeywords
181
+ # result["Items"].last["WeightOverride"].should == $flight_WeightOverride
182
+ # result["Items"].last["CampaignId"].should == $flight_CampaignId
183
+ # result["Items"].last["IsActive"].should == $flight_IsActive
184
+ # result["Items"].last["IsDeleted"].should == $flight_IsDeleted
185
+ end
186
+
187
+ it "should not get if campaignId or channelId is forbidden" do
188
+ response = @@flight.get($flight_id)
189
+ true.should == !response.body.scan(/Object/).nil?
190
+ end
191
+
192
+ it "should delete a new flight" do
193
+ response = @@flight.delete($flight_id)
194
+ response.body.should == 'OK'
195
+ end
196
+
197
+ it "should not get individual deleted flight" do
198
+ response = @@flight.get($flight_id)
199
+ response.body.should == '{"Id":0,"ChannelId":0,"IsDeleted":false,"IsActive":false}'
200
+ end
201
+
202
+ it "should not create/update if campaignId is forbidden" do
203
+ new_flight = {
204
+ 'NoEndDate' => false,
205
+ 'ChannelId' => $channelId,
206
+ 'Name' => $flight_Name,
207
+ 'StartDate' => $flight_StartDate,
208
+ 'EndDate' => $flight_EndDate,
209
+ 'NoEndDate' => $flight_NoEndDate,
210
+ 'Price' => $flight_Price,
211
+ 'OptionType' => $flight_OptionType,
212
+ 'Impressions' => $flight_Impressions,
213
+ 'IsUnlimited' => $flight_IsUnlimited,
214
+ 'IsFullSpeed' => $flight_IsFullSpeed,
215
+ 'Keywords' => $flight_Keywords,
216
+ 'UserAgentKeywords' => $flight_UserAgentKeywords,
217
+ 'WeightOverride' => $flight_WeightOverride,
218
+ 'CampaignId' => '123',
219
+ 'IsActive' => $flight_IsActive,
220
+ 'IsDeleted' => $flight_IsDeleted
221
+ }
222
+ response = @@flight.create(new_flight)
223
+ true.should == !response.body.scan(/Object/).nil?
224
+
225
+ new_flight = {
226
+ 'Id' => $flight_id,
227
+ 'NoEndDate' => false,
228
+ 'ChannelId' => $channelId,
229
+ 'Name' => $flight_Name,
230
+ 'StartDate' => $flight_StartDate,
231
+ 'EndDate' => $flight_EndDate,
232
+ 'NoEndDate' => $flight_NoEndDate,
233
+ 'Price' => $flight_Price,
234
+ 'OptionType' => $flight_OptionType,
235
+ 'Impressions' => $flight_Impressions,
236
+ 'IsUnlimited' => $flight_IsUnlimited,
237
+ 'IsFullSpeed' => $flight_IsFullSpeed,
238
+ 'Keywords' => $flight_Keywords,
239
+ 'UserAgentKeywords' => $flight_UserAgentKeywords,
240
+ 'WeightOverride' => $flight_WeightOverride,
241
+ 'CampaignId' => '123',
242
+ 'IsActive' => $flight_IsActive,
243
+ 'IsDeleted' => $flight_IsDeleted
244
+ }
245
+ response = @@flight.update(new_flight)
246
+ true.should == !response.body.scan(/Object/).nil?
247
+ end
248
+
249
+ it "should not create/update if channelId is forbidden" do
250
+ new_flight = {
251
+ 'NoEndDate' => false,
252
+ 'ChannelId' => '123',
253
+ 'Name' => $flight_Name,
254
+ 'StartDate' => $flight_StartDate,
255
+ 'EndDate' => $flight_EndDate,
256
+ 'NoEndDate' => $flight_NoEndDate,
257
+ 'Price' => $flight_Price,
258
+ 'OptionType' => $flight_OptionType,
259
+ 'Impressions' => $flight_Impressions,
260
+ 'IsUnlimited' => $flight_IsUnlimited,
261
+ 'IsFullSpeed' => $flight_IsFullSpeed,
262
+ 'Keywords' => $flight_Keywords,
263
+ 'UserAgentKeywords' => $flight_UserAgentKeywords,
264
+ 'WeightOverride' => $flight_WeightOverride,
265
+ 'CampaignId' => $flight_CampaignId,
266
+ 'IsActive' => $flight_IsActive,
267
+ 'IsDeleted' => $flight_IsDeleted
268
+ }
269
+ response = @@flight.create(new_flight)
270
+ true.should == !response.body.scan(/Object/).nil?
271
+
272
+ new_flight = {
273
+ 'Id' => $flight_id,
274
+ 'NoEndDate' => false,
275
+ 'ChannelId' => '123',
276
+ 'Name' => $flight_Name,
277
+ 'StartDate' => $flight_StartDate,
278
+ 'EndDate' => $flight_EndDate,
279
+ 'NoEndDate' => $flight_NoEndDate,
280
+ 'Price' => $flight_Price,
281
+ 'OptionType' => $flight_OptionType,
282
+ 'Impressions' => $flight_Impressions,
283
+ 'IsUnlimited' => $flight_IsUnlimited,
284
+ 'IsFullSpeed' => $flight_IsFullSpeed,
285
+ 'Keywords' => $flight_Keywords,
286
+ 'UserAgentKeywords' => $flight_UserAgentKeywords,
287
+ 'WeightOverride' => $flight_WeightOverride,
288
+ 'CampaignId' => $flight_CampaignId,
289
+ 'IsActive' => $flight_IsActive,
290
+ 'IsDeleted' => $flight_IsDeleted
291
+ }
292
+ response = @@flight.update(new_flight)
293
+ true.should == !response.body.scan(/Object/).nil?
294
+ end
295
+
296
+ end