adzerk 0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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