sklik-api 0.0.16 → 0.1.0
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.
- data/Rakefile +28 -4
- data/VERSION +1 -1
- data/lib/sklik-api/campaign.rb +112 -67
- data/lib/sklik-api/campaign_parts/adgroup.rb +272 -95
- data/lib/sklik-api/campaign_parts/adtext.rb +165 -31
- data/lib/sklik-api/campaign_parts/keyword.rb +192 -38
- data/lib/sklik-api/client.rb +4 -4
- data/lib/sklik-api/connection.rb +36 -13
- data/lib/sklik-api/exceptions.rb +6 -0
- data/lib/sklik-api/sklik_object.rb +29 -1
- data/lib/sklik-api.rb +20 -3
- data/sklik-api.gemspec +11 -3
- data/test/integration/adgroup_test.rb +126 -0
- data/test/integration/adtext_test.rb +106 -0
- data/test/integration/campaign_test.rb +87 -0
- data/test/integration/errors_test.rb +164 -0
- data/test/integration/keyword_test.rb +131 -0
- data/test/unit/adgroup_test.rb +147 -0
- data/test/unit/campaign_test.rb +318 -0
- data/test/unit/client_test.rb +27 -0
- metadata +12 -4
- data/test/unit/campaign.rb +0 -180
data/test/unit/campaign.rb
DELETED
@@ -1,180 +0,0 @@
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
2
|
-
require 'helper'
|
3
|
-
class CampaignTest < Test::Unit::TestCase
|
4
|
-
context "Campaign" do
|
5
|
-
|
6
|
-
setup do
|
7
|
-
@test_campaign_hash = {
|
8
|
-
:name => "hustokrutě megapřísně - #{Time.now.strftime("%Y.%m.%d %H:%M:%S")}",
|
9
|
-
:status => :running,
|
10
|
-
:cpc => 3.5,
|
11
|
-
:budget => 15.0,
|
12
|
-
:customer_id => 192495,
|
13
|
-
:excluded_search_services => [2,3,4,5,6,7,8], #choose only seznam.cz
|
14
|
-
:network_setting => {
|
15
|
-
:content => true,
|
16
|
-
:search => true
|
17
|
-
},
|
18
|
-
|
19
|
-
:ad_groups => [
|
20
|
-
{
|
21
|
-
:name => "my adgroup name",
|
22
|
-
:ads => [
|
23
|
-
{
|
24
|
-
:headline => "Super headline",
|
25
|
-
:description1 => "Trying to do ",
|
26
|
-
:description2 => "best description ever",
|
27
|
-
:display_url => "bartas.cz",
|
28
|
-
:url => "http://www.bartas.cz"
|
29
|
-
}
|
30
|
-
],
|
31
|
-
:keywords => [
|
32
|
-
"\"some funny keyword\"",
|
33
|
-
"[myphrase keyword]",
|
34
|
-
"mybroad keyword for me",
|
35
|
-
"test of diarcritics âô"
|
36
|
-
]
|
37
|
-
},
|
38
|
-
{
|
39
|
-
:name => "hustokrutě mazácká adgroupa",
|
40
|
-
:ads => [
|
41
|
-
{
|
42
|
-
:headline => "Super bombasitcký",
|
43
|
-
:description1 => "Trying to do ",
|
44
|
-
:description2 => "best description ever",
|
45
|
-
:display_url => "bartas.cz",
|
46
|
-
:url => "http://www.bartas.cz?utm_adgroup=4"
|
47
|
-
}
|
48
|
-
],
|
49
|
-
:keywords => [
|
50
|
-
"\"some funny keyword\"",
|
51
|
-
"[myphrase keyword]",
|
52
|
-
"-negative broad keyword",
|
53
|
-
"test of diarcritics âô",
|
54
|
-
"dokonalý kw"
|
55
|
-
]
|
56
|
-
}
|
57
|
-
]
|
58
|
-
}
|
59
|
-
@campaign = SklikApi::Campaign.new(@test_campaign_hash)
|
60
|
-
end
|
61
|
-
|
62
|
-
should "be initialized" do
|
63
|
-
assert_nothing_raised do
|
64
|
-
SklikApi::Campaign.new(@test_campaign_hash)
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
should "be found" do
|
69
|
-
assert SklikApi::Campaign.find().size > 0, "In sklik sandbox should be some campaigns"
|
70
|
-
end
|
71
|
-
|
72
|
-
should "return stats" do
|
73
|
-
assert_nothing_raised do
|
74
|
-
SklikApi::Campaign.find(:campaign_id => 390265).first.get_stats Date.today, Date.today
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
should "have hash stored inside" do
|
79
|
-
assert_equal @campaign.args, @test_campaign_hash
|
80
|
-
end
|
81
|
-
|
82
|
-
should "return empty array when asking for not known campaign" do
|
83
|
-
assert_equal SklikApi::Campaign.find(:campaign_id => 123456789).size , 0
|
84
|
-
end
|
85
|
-
|
86
|
-
should "return array of search services" do
|
87
|
-
assert_equal SklikApi::Campaign.list_search_services, [{:id=>1, :name=>"Vyhledávání na Seznam.cz"},
|
88
|
-
{:id=>2, :name=>"Firmy.cz"},
|
89
|
-
{:id=>3, :name=>"Sbazar.cz"},
|
90
|
-
{:id=>4, :name=>"Encyklopedie.Seznam.cz"},
|
91
|
-
{:id=>5, :name=>"Seznam na mobil (Smobil.cz)"},
|
92
|
-
{:id=>6, :name=>"Seznam Obrázky (Obrazky.cz)"},
|
93
|
-
{:id=>7, :name=>"Seznam Zboží (Zbozi.cz)"},
|
94
|
-
{:id=>8, :name=>"Partnerské vyhledávače"}]
|
95
|
-
end
|
96
|
-
|
97
|
-
context "create" do
|
98
|
-
setup do
|
99
|
-
@campaign = SklikApi::Campaign.new(@test_campaign_hash)
|
100
|
-
unless @campaign.save
|
101
|
-
puts "ERROR: \n #{@campaign.errors.join("\n")}"
|
102
|
-
end
|
103
|
-
end
|
104
|
-
|
105
|
-
should "return valid to_hash" do
|
106
|
-
campaigns = SklikApi::Campaign.find(:customer_id => @campaign.args[:customer_id], :campaign_id => @campaign.args[:campaign_id])
|
107
|
-
assert_equal campaigns.size, 1, "Find should return array containing one campaign"
|
108
|
-
campaign = campaigns.first
|
109
|
-
campaign_hash = campaign.to_hash
|
110
|
-
assert_equal campaign_hash[:ad_groups].size, @test_campaign_hash[:ad_groups].size, "Campaign should have right adgroup count"
|
111
|
-
assert_equal campaign_hash[:ad_groups].inject(0){|i,o| i + o[:keywords].size}, @test_campaign_hash[:ad_groups].inject(0){|i,o| i + o[:keywords].size}, "Campaign should have right keywords count"
|
112
|
-
assert_equal campaign_hash[:ad_groups].inject(0){|i,o| i + o[:ads].size}, @test_campaign_hash[:ad_groups].inject(0){|i,o| i + o[:ads].size}, "Campaign should have right ads count"
|
113
|
-
end
|
114
|
-
|
115
|
-
should "be created with right parameters" do
|
116
|
-
|
117
|
-
assert_equal @campaign.args[:status], :running, "Must be running"
|
118
|
-
|
119
|
-
campaigns = SklikApi::Campaign.find(:customer_id => @campaign.args[:customer_id], :campaign_id => @campaign.args[:campaign_id])
|
120
|
-
campaign_hash = campaigns.first.to_hash
|
121
|
-
|
122
|
-
assert_equal campaign_hash[:campaign_id], @campaign.args[:campaign_id], "campaign id should be same"
|
123
|
-
assert_equal campaign_hash[:status], :running , "campaign should be running"
|
124
|
-
assert_equal campaign_hash[:budget].to_f, @test_campaign_hash[:budget].to_f, "budgets should be same"
|
125
|
-
assert_equal campaign_hash[:name], @test_campaign_hash[:name], "campaign name should be same"
|
126
|
-
assert_equal campaign_hash[:ad_groups].size, @test_campaign_hash[:ad_groups].size, "campaign ad_groups should have same count"
|
127
|
-
end
|
128
|
-
|
129
|
-
should "be created and updated by changing arguments" do
|
130
|
-
campaign = SklikApi::Campaign.find(:customer_id => @campaign.args[:customer_id], :campaign_id => @campaign.args[:campaign_id]).first
|
131
|
-
new_name = "Test of updated campaign name- #{Time.now.strftime("%Y.%m.%d %H:%M:%S")}"
|
132
|
-
campaign.args[:name] = new_name
|
133
|
-
campaign.save
|
134
|
-
campaign_hash = SklikApi::Campaign.find(:customer_id => @campaign.args[:customer_id], :campaign_id => @campaign.args[:campaign_id]).first.to_hash
|
135
|
-
assert_equal campaign_hash[:name], new_name, "campaign name should be same"
|
136
|
-
|
137
|
-
campaign = SklikApi::Campaign.find(:customer_id => @campaign.args[:customer_id], :campaign_id => @campaign.args[:campaign_id]).first
|
138
|
-
campaign.args[:status] = :paused
|
139
|
-
campaign.save
|
140
|
-
campaign_hash = SklikApi::Campaign.find(:customer_id => @campaign.args[:customer_id], :campaign_id => @campaign.args[:campaign_id]).first.to_hash
|
141
|
-
assert_equal campaign_hash[:status], :paused, "campaign should be paused"
|
142
|
-
|
143
|
-
campaign = SklikApi::Campaign.find(:customer_id => @campaign.args[:customer_id], :campaign_id => @campaign.args[:campaign_id]).first
|
144
|
-
campaign.args[:status] = :stopped
|
145
|
-
campaign.save
|
146
|
-
campaign = SklikApi::Campaign.find(:customer_id => @campaign.args[:customer_id], :campaign_id => @campaign.args[:campaign_id]).first
|
147
|
-
assert_equal campaign.args[:status], :stopped, "campaign should be stopped"
|
148
|
-
|
149
|
-
campaign = SklikApi::Campaign.find(:customer_id => @campaign.args[:customer_id], :campaign_id => @campaign.args[:campaign_id]).first
|
150
|
-
campaign.args[:status] = :paused
|
151
|
-
campaign.save
|
152
|
-
campaign = SklikApi::Campaign.find(:customer_id => @campaign.args[:customer_id], :campaign_id => @campaign.args[:campaign_id]).first
|
153
|
-
assert_equal campaign.args[:status], :paused, "campaign should be paused"
|
154
|
-
end
|
155
|
-
|
156
|
-
should "be created and updated by update method" do
|
157
|
-
campaign = SklikApi::Campaign.find(:customer_id => @campaign.args[:customer_id], :campaign_id => @campaign.args[:campaign_id]).first
|
158
|
-
new_name = "Test of updated campaign name- #{Time.now.strftime("%Y.%m.%d %H:%M:%S")}"
|
159
|
-
assert campaign.update(name: new_name), "Should update name"
|
160
|
-
campaign_hash = SklikApi::Campaign.find(:customer_id => @campaign.args[:customer_id], :campaign_id => @campaign.args[:campaign_id]).first.to_hash
|
161
|
-
assert_equal campaign_hash[:name], new_name, "campaign name should be same"
|
162
|
-
|
163
|
-
campaign = SklikApi::Campaign.find(:customer_id => @campaign.args[:customer_id], :campaign_id => @campaign.args[:campaign_id]).first
|
164
|
-
assert campaign.update(status: :paused), "should update status to paused"
|
165
|
-
campaign_hash = SklikApi::Campaign.find(:customer_id => @campaign.args[:customer_id], :campaign_id => @campaign.args[:campaign_id]).first.to_hash
|
166
|
-
assert_equal campaign_hash[:status], :paused, "campaign should be paused"
|
167
|
-
|
168
|
-
campaign = SklikApi::Campaign.find(:customer_id => @campaign.args[:customer_id], :campaign_id => @campaign.args[:campaign_id]).first
|
169
|
-
assert campaign.update(status: :stopped), "should update status to stopped"
|
170
|
-
campaign = SklikApi::Campaign.find(:customer_id => @campaign.args[:customer_id], :campaign_id => @campaign.args[:campaign_id]).first
|
171
|
-
assert_equal campaign.args[:status], :stopped, "campaign should be stopped"
|
172
|
-
|
173
|
-
campaign = SklikApi::Campaign.find(:customer_id => @campaign.args[:customer_id], :campaign_id => @campaign.args[:campaign_id]).first
|
174
|
-
assert campaign.update(status: :paused), "should update status to paused"
|
175
|
-
campaign = SklikApi::Campaign.find(:customer_id => @campaign.args[:customer_id], :campaign_id => @campaign.args[:campaign_id]).first
|
176
|
-
assert_equal campaign.args[:status], :paused, "campaign should be paused"
|
177
|
-
end
|
178
|
-
end
|
179
|
-
end
|
180
|
-
end
|