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