adzerk 0.2 → 0.3
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.
- checksums.yaml +7 -0
- data/lib/adzerk.rb +4 -0
- data/lib/adzerk/category.rb +34 -0
- data/lib/adzerk/client.rb +20 -8
- data/lib/adzerk/errors.rb +3 -0
- data/lib/adzerk/geo_targeting.rb +32 -0
- data/lib/adzerk/site_zone_targeting.rb +33 -0
- data/lib/adzerk/util.rb +8 -10
- data/lib/adzerk/version.rb +1 -1
- data/test/adtype_api_spec.rb +16 -0
- data/test/advertiser_api_spec.rb +19 -23
- data/test/campaign_api_spec.rb +39 -43
- data/test/category_api_spec.rb +106 -0
- data/test/channel_api_spec.rb +29 -31
- data/test/channel_site_map_api_spec.rb +11 -11
- data/test/creative_api_spec.rb +99 -67
- data/test/creative_map_api_spec.rb +304 -194
- data/test/flight_api_spec.rb +80 -70
- data/test/geo_targeting_api_spec.rb +122 -0
- data/test/invitation_api_spec.rb +6 -6
- data/test/login_api_spec.rb +9 -7
- data/test/priority_api_spec.rb +18 -18
- data/test/publisher_api_spec.rb +15 -77
- data/test/rakefile.rb +5 -1
- data/test/report_api_spec.rb +2 -2
- data/test/security_api_spec.rb +2 -2
- data/test/site_api_spec.rb +15 -15
- data/test/site_zone_targeting_api_spec.rb +134 -0
- data/test/spec_helper.rb +1 -1
- data/test/util_spec.rb +17 -0
- data/test/zone_api_spec.rb +17 -17
- metadata +45 -26
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: fbf807615b442c107c0adf872c51fa3d91b55044
|
|
4
|
+
data.tar.gz: c22fccc8609e2999a14f218f4a892f96eb6c98ff
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 689ca16190cb2b8880252e0d5120ddfcedecd8a463c7b1260111eb9b7bf50c7cff095a29359d6aa094c123f79e0d911c8f9cd4c34cdb01ad1bf2e55f3e85458a
|
|
7
|
+
data.tar.gz: 686c57f7c0150b20f068550f07a3bc0ab0221a3e5841cd655703dab2b34946e1b0ea5495683ea013f3c5699282bc1000d3c77f76120d4eff79cd336c147ccf0a
|
data/lib/adzerk.rb
CHANGED
|
@@ -3,6 +3,7 @@ require "net/http"
|
|
|
3
3
|
require "active_support/inflector"
|
|
4
4
|
require "rest_client"
|
|
5
5
|
require "adzerk/util"
|
|
6
|
+
require "adzerk/errors"
|
|
6
7
|
require "adzerk/api_endpoint"
|
|
7
8
|
require "adzerk/advertiser"
|
|
8
9
|
require "adzerk/flight"
|
|
@@ -12,4 +13,7 @@ require "adzerk/publisher"
|
|
|
12
13
|
require "adzerk/invitation"
|
|
13
14
|
require "adzerk/reporting"
|
|
14
15
|
require "adzerk/channel_site_map"
|
|
16
|
+
require "adzerk/geo_targeting"
|
|
17
|
+
require "adzerk/site_zone_targeting"
|
|
18
|
+
require "adzerk/category"
|
|
15
19
|
require "adzerk/client"
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
module Adzerk
|
|
2
|
+
class Category
|
|
3
|
+
|
|
4
|
+
include Adzerk::Util
|
|
5
|
+
|
|
6
|
+
attr_reader :client
|
|
7
|
+
|
|
8
|
+
def initialize(args={})
|
|
9
|
+
@client = args[:client]
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def create(flight_id, data={})
|
|
13
|
+
url = "flight/#{flight_id}/category"
|
|
14
|
+
data = { 'category' => camelize_data(data).to_json }
|
|
15
|
+
parse_response(@client.post_request(url, data))
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def delete(flight_id, id)
|
|
19
|
+
url = "flight/#{flight_id}/category/#{id}/delete"
|
|
20
|
+
@client.get_request(url)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def listAll
|
|
24
|
+
response = client.get_request('categories')
|
|
25
|
+
parse_response(response)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def list(flight_id)
|
|
29
|
+
url = "flight/#{flight_id}/categories"
|
|
30
|
+
response = client.get_request(url)
|
|
31
|
+
parse_response(response)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
data/lib/adzerk/client.rb
CHANGED
|
@@ -3,10 +3,10 @@ module Adzerk
|
|
|
3
3
|
|
|
4
4
|
include Adzerk::Util
|
|
5
5
|
|
|
6
|
-
attr_reader :sites, :zones, :campaigns, :channels, :priorities,
|
|
6
|
+
attr_reader :sites, :ad_types, :zones, :campaigns, :channels, :priorities,
|
|
7
7
|
:advertisers, :flights, :creatives, :creative_maps,
|
|
8
8
|
:publishers, :invitations, :reports, :channel_site_maps,
|
|
9
|
-
:logins
|
|
9
|
+
:logins, :geotargetings, :sitezonetargetings, :categories
|
|
10
10
|
|
|
11
11
|
DEFAULTS = {
|
|
12
12
|
:host => ENV["ADZERK_API_HOST"] || 'http://api.adzerk.net/v1/',
|
|
@@ -17,6 +17,7 @@ module Adzerk
|
|
|
17
17
|
@api_key = key
|
|
18
18
|
@config = DEFAULTS.merge!(opts)
|
|
19
19
|
@sites = Adzerk::ApiEndpoint.new(:client => self, :endpoint => 'site')
|
|
20
|
+
@ad_types = Adzerk::ApiEndpoint.new(:client => self, :endpoint => 'adtypes')
|
|
20
21
|
@flights = Adzerk::ApiEndpoint.new(:client => self, :endpoint => 'flight')
|
|
21
22
|
@zones = Adzerk::ApiEndpoint.new(:client => self, :endpoint => 'zone')
|
|
22
23
|
@campaigns = Adzerk::ApiEndpoint.new(:client => self, :endpoint => 'campaign')
|
|
@@ -30,32 +31,33 @@ module Adzerk
|
|
|
30
31
|
@reports = Adzerk::Reporting.new(:client => self)
|
|
31
32
|
@channel_site_maps = Adzerk::ChannelSiteMap.new(:client => self)
|
|
32
33
|
@logins = Adzerk::ApiEndpoint.new(:client => self, :endpoint => 'login')
|
|
34
|
+
@geotargetings = Adzerk::GeoTargeting.new(:client => self, :endpoint => 'geotargeting')
|
|
35
|
+
@sitezonetargetings = Adzerk::SiteZoneTargeting.new(:client => self, :endpoint => 'sitezone')
|
|
36
|
+
@categories = Adzerk::Category.new(:client => self, :endpoint => 'category')
|
|
37
|
+
|
|
33
38
|
end
|
|
34
39
|
|
|
35
40
|
def get_request(url)
|
|
36
41
|
uri = URI.parse(@config[:host] + url)
|
|
37
|
-
http = Net::HTTP.new(uri.host, uri.port)
|
|
38
42
|
request = Net::HTTP::Get.new(uri.request_uri)
|
|
39
43
|
request.add_field(@config[:header], @api_key)
|
|
40
|
-
|
|
44
|
+
send_request(request, uri)
|
|
41
45
|
end
|
|
42
46
|
|
|
43
47
|
def post_request(url, data)
|
|
44
48
|
uri = URI.parse(@config[:host] + url)
|
|
45
|
-
http = Net::HTTP.new(uri.host, uri.port)
|
|
46
49
|
request = Net::HTTP::Post.new(uri.request_uri)
|
|
47
50
|
request.add_field(@config[:header], @api_key)
|
|
48
51
|
request.set_form_data(data)
|
|
49
|
-
|
|
52
|
+
send_request(request, uri)
|
|
50
53
|
end
|
|
51
54
|
|
|
52
55
|
def put_request(url, data)
|
|
53
56
|
uri = URI.parse(@config[:host] + url)
|
|
54
|
-
http = Net::HTTP.new(uri.host, uri.port)
|
|
55
57
|
request = Net::HTTP::Put.new(uri.request_uri)
|
|
56
58
|
request.add_field(@config[:header], @api_key)
|
|
57
59
|
request.set_form_data(data)
|
|
58
|
-
|
|
60
|
+
send_request(request, uri)
|
|
59
61
|
end
|
|
60
62
|
|
|
61
63
|
def create_creative(data={}, image_path='')
|
|
@@ -76,5 +78,15 @@ module Adzerk
|
|
|
76
78
|
:accept => :mime)
|
|
77
79
|
end
|
|
78
80
|
|
|
81
|
+
def send_request(request, uri)
|
|
82
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
|
83
|
+
response = http.request(request)
|
|
84
|
+
if response.kind_of? Net::HTTPClientError
|
|
85
|
+
error_response = JSON.parse(response.body)
|
|
86
|
+
raise Adzerk::ApiError.new(error_response["message"])
|
|
87
|
+
end
|
|
88
|
+
response
|
|
89
|
+
end
|
|
90
|
+
|
|
79
91
|
end
|
|
80
92
|
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
module Adzerk
|
|
2
|
+
class GeoTargeting
|
|
3
|
+
|
|
4
|
+
include Adzerk::Util
|
|
5
|
+
|
|
6
|
+
def initialize(args={})
|
|
7
|
+
@client = args[:client]
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def create(flight_id, data={})
|
|
11
|
+
url = "flight/#{flight_id}/geotargeting"
|
|
12
|
+
data = { 'geotargeting' => camelize_data(data).to_json }
|
|
13
|
+
parse_response(@client.post_request(url, data))
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def get(flight_id, id)
|
|
17
|
+
url = "flight/#{flight_id}/geotargeting/#{id}"
|
|
18
|
+
parse_response(@client.get_request(url))
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def update(flight_id, id, data={})
|
|
22
|
+
url = "flight/#{flight_id}/geotargeting/#{id}"
|
|
23
|
+
data = { 'geotargeting' => camelize_data(data).to_json }
|
|
24
|
+
parse_response(@client.put_request(url, data))
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def delete(flight_id, id)
|
|
28
|
+
url = "flight/#{flight_id}/geotargeting/#{id}/delete"
|
|
29
|
+
@client.get_request(url)
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
module Adzerk
|
|
2
|
+
class SiteZoneTargeting
|
|
3
|
+
|
|
4
|
+
include Adzerk::Util
|
|
5
|
+
|
|
6
|
+
def initialize(args={})
|
|
7
|
+
@client = args[:client]
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def create(flight_id, data={})
|
|
11
|
+
url = "flight/#{flight_id}/sitezonetargeting"
|
|
12
|
+
data = { 'sitezone' => camelize_data(data).to_json }
|
|
13
|
+
parse_response(@client.post_request(url, data))
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def get(flight_id, id)
|
|
17
|
+
url = "flight/#{flight_id}/sitezonetargeting/#{id}"
|
|
18
|
+
parse_response(@client.get_request(url))
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def update(flight_id, id, data={})
|
|
22
|
+
url = "flight/#{flight_id}/sitezonetargeting/#{id}"
|
|
23
|
+
data = { 'sitezone' => camelize_data(data).to_json }
|
|
24
|
+
parse_response(@client.put_request(url, data))
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def delete(flight_id, id)
|
|
28
|
+
url = "flight/#{flight_id}/sitezonetargeting/#{id}/delete"
|
|
29
|
+
@client.get_request(url)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
end
|
|
33
|
+
end
|
data/lib/adzerk/util.rb
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
module Adzerk
|
|
2
2
|
module Util
|
|
3
|
-
extend self
|
|
3
|
+
extend self
|
|
4
4
|
|
|
5
5
|
def camelize_data(data)
|
|
6
6
|
return data unless data.respond_to?(:reduce)
|
|
7
7
|
data.reduce({}) do |acc, (sym, val)|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
sym = sym.to_s.camelize if sym.class == Symbol
|
|
9
|
+
acc[sym] = case val
|
|
10
|
+
when Hash then camelize_data(val)
|
|
11
|
+
when Array then val.map { |elem| camelize_data(elem) }
|
|
12
|
+
else val
|
|
13
|
+
end
|
|
13
14
|
acc
|
|
14
15
|
end
|
|
15
16
|
end
|
|
@@ -28,10 +29,7 @@ module Adzerk
|
|
|
28
29
|
end
|
|
29
30
|
|
|
30
31
|
def parse_response(response)
|
|
31
|
-
|
|
32
|
-
uncamelize_data(JSON.parse(response.body))
|
|
33
|
-
else
|
|
34
|
-
end
|
|
32
|
+
uncamelize_data(JSON.parse(response.body))
|
|
35
33
|
end
|
|
36
34
|
end
|
|
37
35
|
end
|
data/lib/adzerk/version.rb
CHANGED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
|
2
|
+
|
|
3
|
+
describe "Ad Type API" do
|
|
4
|
+
|
|
5
|
+
before(:each) do
|
|
6
|
+
@client = Adzerk::Client.new(API_KEY)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
it "should list all ad_types" do
|
|
10
|
+
result = @client.ad_types.list
|
|
11
|
+
expect(result.length).to be > 0
|
|
12
|
+
expect(result[:items].last[:id].to_s).to_not eq(nil)
|
|
13
|
+
expect(result[:items].last[:width]).to_not eq(nil)
|
|
14
|
+
expect(result[:items].last[:height]).to_not eq(nil)
|
|
15
|
+
end
|
|
16
|
+
end
|
data/test/advertiser_api_spec.rb
CHANGED
|
@@ -15,67 +15,63 @@ describe "Advertiser API" do
|
|
|
15
15
|
:is_active => $is_active,
|
|
16
16
|
:is_deleted => $is_deleted)
|
|
17
17
|
$advertiser_id = advertiser[:id].to_s
|
|
18
|
-
$title.
|
|
19
|
-
$is_active.
|
|
20
|
-
$is_deleted.
|
|
18
|
+
expect($title).to eq(advertiser[:title])
|
|
19
|
+
expect($is_active).to eq(advertiser[:is_active])
|
|
20
|
+
expect($is_deleted).to eq(advertiser[:is_deleted])
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
it "should list a specific advertiser" do
|
|
24
24
|
advertiser = @advertisers.get($advertiser_id)
|
|
25
|
-
$title.
|
|
26
|
-
$is_active.
|
|
27
|
-
$is_deleted.
|
|
25
|
+
expect($title).to eq(advertiser[:title])
|
|
26
|
+
expect($is_active).to eq(advertiser[:is_active])
|
|
27
|
+
expect($is_deleted).to eq(advertiser[:is_deleted])
|
|
28
28
|
end
|
|
29
29
|
|
|
30
30
|
it "should list all advertisers" do
|
|
31
31
|
result = @advertisers.list
|
|
32
|
-
result.length.
|
|
32
|
+
expect(result.length).to be > 0
|
|
33
33
|
advertiser = result[:items].last
|
|
34
|
-
$title.
|
|
35
|
-
$is_active.
|
|
36
|
-
$is_deleted.
|
|
37
|
-
$advertiser_id.
|
|
34
|
+
expect($title).to eq(advertiser[:title])
|
|
35
|
+
expect($is_active).to eq(advertiser[:is_active])
|
|
36
|
+
expect($is_deleted).to eq(advertiser[:is_deleted])
|
|
37
|
+
expect($advertiser_id).to eq(advertiser[:id].to_s)
|
|
38
38
|
end
|
|
39
39
|
|
|
40
40
|
it "should update a advertiser" do
|
|
41
41
|
advertiser = @advertisers.update(:id => $advertiser_id,
|
|
42
42
|
:title => "Cocacola",
|
|
43
43
|
:is_active => false)
|
|
44
|
-
advertiser[:title].
|
|
45
|
-
advertiser[:is_active].
|
|
44
|
+
expect(advertiser[:title]).to eq("Cocacola")
|
|
45
|
+
expect(advertiser[:is_active]).to eq(false)
|
|
46
46
|
end
|
|
47
47
|
|
|
48
48
|
it "should search advertiser based on name" do
|
|
49
49
|
advertiser = @advertisers.search("Cocacola")
|
|
50
|
-
advertiser[:total_items].
|
|
50
|
+
expect(advertiser[:total_items]).to be > 0
|
|
51
51
|
end
|
|
52
52
|
|
|
53
53
|
it "should delete a new advertiser" do
|
|
54
54
|
response = @advertisers.delete($advertiser_id)
|
|
55
|
-
response.body.
|
|
55
|
+
expect(response.body).to eq('"Successfully deleted."')
|
|
56
56
|
end
|
|
57
57
|
|
|
58
58
|
it "should not list deleted advertisers" do
|
|
59
59
|
response = @advertisers.list
|
|
60
60
|
response[:items].each do |r|
|
|
61
|
-
r["Id"].
|
|
61
|
+
expect(r["Id"]).not_to eq($advertiser_id)
|
|
62
62
|
end
|
|
63
63
|
end
|
|
64
64
|
|
|
65
65
|
it "should not get individual deleted advertiser" do
|
|
66
|
-
|
|
67
|
-
response[:message].should eq("This advertiser is deleted.")
|
|
66
|
+
expect { @advertisers.get $advertiser_id }.to raise_error("This advertiser is deleted.")
|
|
68
67
|
end
|
|
69
68
|
|
|
70
69
|
it "should not update a deleted advertiser" do
|
|
71
|
-
|
|
72
|
-
:title => "Cocacola")
|
|
73
|
-
advertiser[:message].should eq("This advertiser is deleted.")
|
|
70
|
+
expect { @advertisers.update(:id => $advertiser_id, :title => "Cocacola") }.to raise_error("This advertiser is deleted.")
|
|
74
71
|
end
|
|
75
72
|
|
|
76
73
|
it "should require a title" do
|
|
77
|
-
|
|
78
|
-
response[:message].should eq("A title is required.")
|
|
74
|
+
expect{ @advertisers.create() }.to raise_error("A title is required.")
|
|
79
75
|
end
|
|
80
76
|
|
|
81
77
|
end
|
data/test/campaign_api_spec.rb
CHANGED
|
@@ -48,14 +48,14 @@ describe "Campaign API" do
|
|
|
48
48
|
:is_deleted => false)
|
|
49
49
|
|
|
50
50
|
$campaign_id = campaign[:id].to_s
|
|
51
|
-
$campaign_name.
|
|
51
|
+
expect($campaign_name).to eq(campaign[:name])
|
|
52
52
|
# JSON.parse(response.body)["StartDate"].should == "/Date(1293858000000-0500)/"
|
|
53
53
|
# JSON.parse(response.body)["EndDate"].should == "/Date(1325307600000-0500)/"
|
|
54
|
-
$campaign_is_active.
|
|
55
|
-
$campaign_price.to_f.
|
|
56
|
-
$campaign_advertiser_id.
|
|
57
|
-
campaign[:is_deleted].
|
|
58
|
-
campaign[:flights].
|
|
54
|
+
expect($campaign_is_active).to eq(campaign[:is_active])
|
|
55
|
+
expect($campaign_price.to_f).to eq(campaign[:price])
|
|
56
|
+
expect($campaign_advertiser_id).to eq(campaign[:advertiser_id])
|
|
57
|
+
expect(campaign[:is_deleted]).to eq(false)
|
|
58
|
+
expect(campaign[:flights]).to eq([])
|
|
59
59
|
end
|
|
60
60
|
|
|
61
61
|
it "should create a new campaign with one flight" do
|
|
@@ -82,22 +82,22 @@ describe "Campaign API" do
|
|
|
82
82
|
}
|
|
83
83
|
campaign = @campaigns.create(new1_campaign)
|
|
84
84
|
$campaign_id_1 = campaign[:id].to_s
|
|
85
|
-
$campaign_name.
|
|
85
|
+
expect($campaign_name).to eq(campaign[:name])
|
|
86
86
|
# JSON.parse(response.body)["StartDate"].should == "/Date(1293858000000-0500)/"
|
|
87
87
|
# JSON.parse(response.body)["EndDate"].should == "/Date(1325307600000-0500)/"
|
|
88
|
-
$campaign_is_active.
|
|
89
|
-
campaign[:is_deleted].
|
|
90
|
-
$campaign_price.to_f.
|
|
91
|
-
$campaign_advertiser_id.
|
|
92
|
-
campaign[:flights].first[:id].
|
|
88
|
+
expect($campaign_is_active).to eq(campaign[:is_active])
|
|
89
|
+
expect(campaign[:is_deleted]).to eq(false)
|
|
90
|
+
expect($campaign_price.to_f).to eq(campaign[:price])
|
|
91
|
+
expect($campaign_advertiser_id).to eq(campaign[:advertiser_id])
|
|
92
|
+
expect(campaign[:flights].first[:id]).not_to eq(nil)
|
|
93
93
|
end
|
|
94
94
|
|
|
95
95
|
|
|
96
96
|
it "should list a specific campaign" do
|
|
97
97
|
campaign = @campaigns.get($campaign_id_1)
|
|
98
|
-
campaign[:id].
|
|
99
|
-
campaign[:flights].
|
|
100
|
-
campaign[:name].
|
|
98
|
+
expect(campaign[:id]).to eq($campaign_id_1.to_i)
|
|
99
|
+
expect(campaign[:flights]).not_to be_empty
|
|
100
|
+
expect(campaign[:name]).to eq($campaign_name)
|
|
101
101
|
end
|
|
102
102
|
|
|
103
103
|
it "should update a campaign" do
|
|
@@ -121,34 +121,19 @@ describe "Campaign API" do
|
|
|
121
121
|
}
|
|
122
122
|
|
|
123
123
|
campaign = @campaigns.update(campaign_to_update)
|
|
124
|
-
campaign[:name].
|
|
124
|
+
expect(campaign[:name]).to eq($campaign_name)
|
|
125
125
|
# JSON.parse(response.body)["StartDate"].should == "/Date(1293858000000-0500)/"
|
|
126
126
|
# JSON.parse(response.body)["EndDate"].should == "/Date(1325307600000-0500)/"
|
|
127
|
-
campaign[:is_active].
|
|
128
|
-
campaign[:price].
|
|
129
|
-
campaign[:advertiser_id].
|
|
130
|
-
campaign[:is_deleted].
|
|
131
|
-
campaign[:flights].
|
|
127
|
+
expect(campaign[:is_active]).to eq($campaign_is_active)
|
|
128
|
+
expect(campaign[:price]).to eq($campaign_price.to_f)
|
|
129
|
+
expect(campaign[:advertiser_id]).to eq($campaign_advertiser_id)
|
|
130
|
+
expect(campaign[:is_deleted]).to eq(false)
|
|
131
|
+
expect(campaign[:flights]).to eq($campaign_flights)
|
|
132
132
|
end
|
|
133
133
|
|
|
134
134
|
it "should list all campaigns" do
|
|
135
135
|
campaigns = @campaigns.list
|
|
136
|
-
campaigns.length.
|
|
137
|
-
end
|
|
138
|
-
|
|
139
|
-
it "should delete a new campaign" do
|
|
140
|
-
response = @campaigns.delete($campaign_id)
|
|
141
|
-
response.body.should == '"Successfully deleted."'
|
|
142
|
-
end
|
|
143
|
-
|
|
144
|
-
it "should not update a deleted campaign" do
|
|
145
|
-
campaign_to_update = {
|
|
146
|
-
:id => $campaign_id,
|
|
147
|
-
:name => "test"
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
campaign = @campaigns.update(campaign_to_update)
|
|
151
|
-
campaign[:message].should eq("This advertiser is not part of your network")
|
|
136
|
+
expect(campaigns.length).to be > 0
|
|
152
137
|
end
|
|
153
138
|
|
|
154
139
|
it "should not create/update a campaign with a advertiserId that doesn't belong to it" do
|
|
@@ -163,8 +148,7 @@ describe "Campaign API" do
|
|
|
163
148
|
:is_deleted => false
|
|
164
149
|
}
|
|
165
150
|
|
|
166
|
-
|
|
167
|
-
campaign[:message].should eq("This advertiser is not part of your network")
|
|
151
|
+
expect{ @campaigns.create(new_campaign) }.to raise_error("This advertiser is not part of your network")
|
|
168
152
|
|
|
169
153
|
updated_campaign = {
|
|
170
154
|
:id => $campaign_id,
|
|
@@ -178,13 +162,25 @@ describe "Campaign API" do
|
|
|
178
162
|
:is_deleted => false
|
|
179
163
|
}
|
|
180
164
|
|
|
181
|
-
|
|
182
|
-
campaign[:message].should eq("This advertiser is not part of your network")
|
|
165
|
+
expect{ @campaigns.update(updated_campaign) }.to raise_error("This advertiser is not part of your network")
|
|
183
166
|
end
|
|
184
167
|
|
|
185
168
|
it "should not retrieve a campaign with a advertiserId that doesn't belong to it" do
|
|
186
|
-
|
|
187
|
-
|
|
169
|
+
expect { @campaigns.get('123') }.to raise_error("This campaign is not part of your network")
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
it "should delete a new campaign" do
|
|
173
|
+
response = @campaigns.delete($campaign_id)
|
|
174
|
+
expect(response.body).to eq('"Successfully deleted."')
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
it "should not update a deleted campaign" do
|
|
178
|
+
campaign_to_update = {
|
|
179
|
+
:id => $campaign_id,
|
|
180
|
+
:name => "test"
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
expect { @campaigns.update(campaign_to_update) }.to raise_error("This campaign has been deleted")
|
|
188
184
|
end
|
|
189
185
|
|
|
190
186
|
end
|