amiando 0.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.
- data/.gitignore +6 -0
- data/Gemfile +17 -0
- data/Guardfile +11 -0
- data/README.md +26 -0
- data/Rakefile +12 -0
- data/amiando.gemspec +27 -0
- data/lib/amiando.rb +59 -0
- data/lib/amiando/api_key.rb +35 -0
- data/lib/amiando/boolean.rb +33 -0
- data/lib/amiando/event.rb +131 -0
- data/lib/amiando/request.rb +38 -0
- data/lib/amiando/resource.rb +152 -0
- data/lib/amiando/result.rb +33 -0
- data/lib/amiando/ticket_category.rb +99 -0
- data/lib/amiando/ticket_shop.rb +63 -0
- data/lib/amiando/user.rb +148 -0
- data/lib/amiando/version.rb +3 -0
- data/test/amiando/amiando_test.rb +13 -0
- data/test/amiando/api_key_test.rb +58 -0
- data/test/amiando/boolean_test.rb +21 -0
- data/test/amiando/event_test.rb +141 -0
- data/test/amiando/resource_test.rb +68 -0
- data/test/amiando/result_test.rb +25 -0
- data/test/amiando/ticket_category_test.rb +89 -0
- data/test/amiando/ticket_shop_test.rb +42 -0
- data/test/amiando/user_test.rb +130 -0
- data/test/fixtures/ApiKey/018fa0a2281ec9026bc122bc346366f6.yml +60 -0
- data/test/fixtures/ApiKey/1f62195e173114773b3ec2613582ece9.yml +60 -0
- data/test/fixtures/ApiKey/76860dbafe66279f25f56cd66b3f6ba1.yml +62 -0
- data/test/fixtures/ApiKey/97d82801a10696aaf385bf5873034b60.yml +60 -0
- data/test/fixtures/ApiKey/a703d1fcec1576fa8cb4ca1c5f53f545.yml +62 -0
- data/test/fixtures/ApiKey/a948a98b153ab66978e37160f352bfbc.yml +60 -0
- data/test/fixtures/ApiKey/b7ecc9e79dd856dec661554cd00490ed.yml +62 -0
- data/test/fixtures/ApiKey/ded8694c21d2e1c0cec845f72ba452b5.yml +60 -0
- data/test/fixtures/ApiKey/fa883db60c0390aa8948098d32497015.yml +60 -0
- data/test/fixtures/Event/29a95cd545b2fba8121dce97a3c859e3.yml +60 -0
- data/test/fixtures/Event/361940ebc5f074b1d6d96c2dbeb573ab.yml +60 -0
- data/test/fixtures/Event/3a90bf0a17eb1d647f1496d04640797a.yml +60 -0
- data/test/fixtures/Event/3b8ae154ad13c7152366b79c0d34b053.yml +60 -0
- data/test/fixtures/Event/49877df5f8c251e3364a3560ab1ab46c.yml +60 -0
- data/test/fixtures/Event/50cb3d76b40032b0fa5731ce7d2ae2f6.yml +62 -0
- data/test/fixtures/Event/5d6016557d86e7b7ff83d07d1ef4bf44.yml +60 -0
- data/test/fixtures/Event/67e55d2f91fa702eb8dc612cbfa661f9.yml +60 -0
- data/test/fixtures/Event/813535fc6ee153c1a6d8e826f1fe04dc.yml +60 -0
- data/test/fixtures/Event/8eabb0f839e03cde5818397c7121e6b4.yml +61 -0
- data/test/fixtures/Event/96a5ccd0281a67a4bdb276516b77e756.yml +62 -0
- data/test/fixtures/Event/9e689bd5495dc898a710cba8e6d1d779.yml +62 -0
- data/test/fixtures/Event/a816e5664ff66b8e3d27b74435a0c123.yml +60 -0
- data/test/fixtures/Event/c5ad7e1d1c160d7d1132297892a9ec94.yml +60 -0
- data/test/fixtures/Event/c88c85889575508f75deee325e16e49d.yml +60 -0
- data/test/fixtures/Event/d6a585196f1a2a94d22f22a2140d4c07.yml +60 -0
- data/test/fixtures/Event/e00eebd4faf194fe592fa6e7615909b8.yml +60 -0
- data/test/fixtures/Event/e753b6f404795c6635856ea43b0c7d35.yml +60 -0
- data/test/fixtures/Event/eb341dbccefaad75aad439f10cc7d82d.yml +60 -0
- data/test/fixtures/Event/ebab641e40ca57f8e0883d8ea003bd78.yml +60 -0
- data/test/fixtures/Event/ef17351e4bbc84eb776fe16dda31e1e4.yml +62 -0
- data/test/fixtures/Global/505952258352958b3b59a3812372ed02.yml +60 -0
- data/test/fixtures/Global/d41a6ca323b5db99b4e3c06e108c52cc.yml +60 -0
- data/test/fixtures/TicketCategory/0412c9d453efd804e171c6ba57fd980a.yml +66 -0
- data/test/fixtures/TicketCategory/49877df5f8c251e3364a3560ab1ab46c.yml +60 -0
- data/test/fixtures/TicketCategory/4d3f8d9ff3fb728fc37aaa6e40355a00.yml +62 -0
- data/test/fixtures/TicketCategory/5d4fdfda01ed8193c6bbc5e089db5a4b.yml +60 -0
- data/test/fixtures/TicketCategory/655e7a8089d67b8eeea1176398e4b289.yml +60 -0
- data/test/fixtures/TicketCategory/a9b19dc83437d00ffc4603c04f78159f.yml +62 -0
- data/test/fixtures/TicketCategory/bee3d6eb4247fec0849d91fb2f768524.yml +60 -0
- data/test/fixtures/TicketCategory/c6f8563714904f006b28ac06312b107d.yml +60 -0
- data/test/fixtures/TicketCategory/e6076c26b1b75eec091c5b91c9f75ad9.yml +62 -0
- data/test/fixtures/TicketCategory/ebfcf07be91b8cb6d05156713592abc9.yml +60 -0
- data/test/fixtures/TicketCategory/fe63648cf867613ec93b380e06257349.yml +60 -0
- data/test/fixtures/TicketShop/03d35073550910e61201cf425b4ff73e.yml +60 -0
- data/test/fixtures/TicketShop/0524d80dc6e3fad88d49adf71ffa2ab9.yml +60 -0
- data/test/fixtures/TicketShop/09729fb0d9f1490bec3acfa0e6742190.yml +60 -0
- data/test/fixtures/TicketShop/15c36c73e9f1d3255a61a559e3b98562.yml +60 -0
- data/test/fixtures/TicketShop/4605dd240202cd7510bfecaf474ac615.yml +62 -0
- data/test/fixtures/TicketShop/5c1f5488a196f44f2c18cc186816fd42.yml +60 -0
- data/test/fixtures/TicketShop/71f80402a72be32fdd34074d4426b765.yml +62 -0
- data/test/fixtures/TicketShop/bc24338e918c6edb07a55f4d580c5af3.yml +60 -0
- data/test/fixtures/TicketShop/d095062bf22d235f277c979b025e5cac.yml +60 -0
- data/test/fixtures/TicketShop/ece5150c24e5000bf4eff8dcdb6311bb.yml +60 -0
- data/test/fixtures/User/0b4a60c6c962b4b3af9ab21832cd76b2.yml +60 -0
- data/test/fixtures/User/0f635f4bb82fdc84af205efe76f43ae0.yml +60 -0
- data/test/fixtures/User/1c2f2c8a5372e998f38b9d387107cee2.yml +60 -0
- data/test/fixtures/User/1e3ab0fb92b5b1992f35256b4be7497b.yml +71 -0
- data/test/fixtures/User/3bac6d29256056f2b9a1ea6fad26966d.yml +60 -0
- data/test/fixtures/User/3ffaba64188557400a8678dbefd75990.yml +60 -0
- data/test/fixtures/User/5a26c7f9edf6d6027b19b57feda4a96f.yml +60 -0
- data/test/fixtures/User/5c17b4b5287f5d0ba390e25e99cf2270.yml +49 -0
- data/test/fixtures/User/6501a4db53a97afe6f7b9afeeb996888.yml +60 -0
- data/test/fixtures/User/6ad0dd77081f413e3df25d6a625d38cd.yml +60 -0
- data/test/fixtures/User/7d493f7758d9795ad522bc827cb51b77.yml +60 -0
- data/test/fixtures/User/89e6cb6ae39e29a154c99e0e33bb1b91.yml +60 -0
- data/test/fixtures/User/90a3bfe214f17305e356ad3f1a9c9ce7.yml +60 -0
- data/test/fixtures/User/92ad6537c8be5aab7cbd778d424f4944.yml +60 -0
- data/test/fixtures/User/9485b68940997e23e3721a413d4fbdd5.yml +49 -0
- data/test/fixtures/User/98348fe6fbecb7916faadd835916d94d.yml +60 -0
- data/test/fixtures/User/b63d7aa4703a3140b4d9884e9f302362.yml +60 -0
- data/test/fixtures/User/b8c3fd04d7bd0925c3ccd3a3978ab8e6.yml +49 -0
- data/test/fixtures/User/baa28f50439b903e423dbdf918fff20b.yml +62 -0
- data/test/fixtures/User/e51278f9f771be0c6c3ac0e4ee1b6459.yml +59 -0
- data/test/fixtures/User/eb30a195ac7829d506954f472e9e6dea.yml +60 -0
- data/test/support/factory.rb +45 -0
- data/test/support/hydra_cache.rb +59 -0
- data/test/test_helper.rb +36 -0
- metadata +330 -0
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
describe Amiando::Event do
|
|
4
|
+
before do
|
|
5
|
+
Amiando.api_key = Amiando::TEST_KEY
|
|
6
|
+
HydraCache.prefix = 'Event'
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
after do
|
|
10
|
+
Amiando.api_key = nil
|
|
11
|
+
HydraCache.prefix = nil
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
describe 'find' do
|
|
15
|
+
it 'finds an already existing event' do
|
|
16
|
+
original = Amiando::Factory(:event, :identifier => 'wadus')
|
|
17
|
+
Amiando.run
|
|
18
|
+
|
|
19
|
+
event = Amiando::Event.find(original.id)
|
|
20
|
+
Amiando.run
|
|
21
|
+
|
|
22
|
+
event.id.must_equal original.id
|
|
23
|
+
event.identifier.must_equal 'wadus'
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
describe 'exists' do
|
|
28
|
+
it 'checks if an event an already exists' do
|
|
29
|
+
original = Amiando::Factory(:event, :identifier => 'wadus')
|
|
30
|
+
Amiando.run
|
|
31
|
+
|
|
32
|
+
exists = Amiando::Event.exists?('wadus')
|
|
33
|
+
Amiando.run
|
|
34
|
+
|
|
35
|
+
exists.result.must_equal true
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
describe 'create' do
|
|
40
|
+
it 'creates an event wit valid parameters passed' do
|
|
41
|
+
event = Amiando::Event.create(
|
|
42
|
+
:host_id => Amiando::TEST_USER.id,
|
|
43
|
+
:title => 'Secret title',
|
|
44
|
+
:country => 'es',
|
|
45
|
+
:selected_date => Time.at(0)
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
Amiando.run
|
|
49
|
+
|
|
50
|
+
event.id.wont_be_nil
|
|
51
|
+
event.success.must_equal true
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
describe 'update' do
|
|
56
|
+
it 'updates the event' do
|
|
57
|
+
event = Amiando::Factory.create(:event, :title => 'wadus',
|
|
58
|
+
:identifier => "event-identifier-update-#{HydraCache.revision}")
|
|
59
|
+
|
|
60
|
+
Amiando::Event.update(event.id, :title => 'wadus 2')
|
|
61
|
+
Amiando.run
|
|
62
|
+
|
|
63
|
+
event = Amiando::Event.find(event.id)
|
|
64
|
+
Amiando.run
|
|
65
|
+
|
|
66
|
+
event.title.must_equal 'wadus 2'
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
describe 'find_all_by_user_id' do
|
|
71
|
+
it 'fetches event ids for a user' do
|
|
72
|
+
event = Amiando::Factory.create(:event, :identifier => "event-identifier-find-all-#{HydraCache.revision}")
|
|
73
|
+
|
|
74
|
+
all = Amiando::Event.find_all_by_user_id(Amiando::TEST_USER.id)
|
|
75
|
+
Amiando.run
|
|
76
|
+
|
|
77
|
+
all.result.must_include event.id
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
describe 'activate' do
|
|
82
|
+
it "returns errors if it can't be activated" do
|
|
83
|
+
event = Amiando::Factory.create(:event, :identifier => "event-identifier-activate-#{HydraCache.revision}")
|
|
84
|
+
|
|
85
|
+
activated = Amiando::Event.activate(event.id)
|
|
86
|
+
Amiando.run
|
|
87
|
+
|
|
88
|
+
activated.result.must_equal false
|
|
89
|
+
activated.errors.wont_be_empty
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
##
|
|
93
|
+
# To be implemented when we can do everything necessary to activate an event
|
|
94
|
+
# (create ticket categories, etc).
|
|
95
|
+
# it 'activates the event' do
|
|
96
|
+
# end
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
describe 'delete' do
|
|
100
|
+
it 'deletes the event' do
|
|
101
|
+
event = Amiando::Factory.create(:event, :identifier => "event-identifier-#{HydraCache.revision}")
|
|
102
|
+
|
|
103
|
+
deleted = Amiando::Event.delete(event.id)
|
|
104
|
+
Amiando.run
|
|
105
|
+
|
|
106
|
+
deleted.result.must_equal true
|
|
107
|
+
|
|
108
|
+
exists = Amiando::Event.exists?(event.id)
|
|
109
|
+
Amiando.run
|
|
110
|
+
|
|
111
|
+
exists.result.must_equal false
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
describe 'search' do
|
|
116
|
+
it 'finds events by identifier' do
|
|
117
|
+
event = Amiando::Factory(:event, :identifier => 'waduswadus1234')
|
|
118
|
+
Amiando.run
|
|
119
|
+
|
|
120
|
+
search = Amiando::Event.search(:identifier => 'waduswadus1234')
|
|
121
|
+
Amiando.run
|
|
122
|
+
|
|
123
|
+
search.result.must_include event.id
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
it 'finds events by title' do
|
|
127
|
+
event = Amiando::Factory(:event, :title => 'Long title wadus bang bang bang')
|
|
128
|
+
Amiando.run
|
|
129
|
+
|
|
130
|
+
search = Amiando::Event.search(:title => 'Long title wadus bang bang bang')
|
|
131
|
+
Amiando.run
|
|
132
|
+
|
|
133
|
+
search.result.must_include event.id
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
it 'raises an error if more than one or no search option passed' do
|
|
137
|
+
lambda { Amiando::Event.search :title => 'a', :identifier => 'e' }.must_raise ArgumentError
|
|
138
|
+
lambda { Amiando::Event.search({})}.must_raise ArgumentError
|
|
139
|
+
end
|
|
140
|
+
end
|
|
141
|
+
end
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
describe Amiando::Resource do
|
|
4
|
+
class Wadus < Amiando::Resource
|
|
5
|
+
map :first_name, :firstName
|
|
6
|
+
map :last_name , :lastName
|
|
7
|
+
map :creation, :creation, :type => :time
|
|
8
|
+
|
|
9
|
+
def self.create
|
|
10
|
+
post new, 'somewhere'
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
it 'raises error when amiando is down' do
|
|
15
|
+
stub_request(:post, /somewhere/).to_return(:status => 503)
|
|
16
|
+
lambda {
|
|
17
|
+
key = Wadus.create
|
|
18
|
+
Amiando.run
|
|
19
|
+
}.must_raise Amiando::Error::ServiceDown
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it 'raises an error if populate method is not implemented' do
|
|
23
|
+
lambda {
|
|
24
|
+
Wadus.new.populate(nil)
|
|
25
|
+
}.must_raise Amiando::Error::NotImplemented
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
it "raises an error when the call doesnt supply the required api key" do
|
|
29
|
+
stub_request(:post, /somewhere/).to_return(
|
|
30
|
+
:status => 400,
|
|
31
|
+
:body => "{\"errors\":[\"com.amiando.api.rest.MissingParam.apikey\"],\"success\":false}"
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
lambda {
|
|
35
|
+
Wadus.create
|
|
36
|
+
Amiando.run
|
|
37
|
+
}.must_raise Amiando::Error::MissingApiKey
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
it 'maps attributes appropriately' do
|
|
41
|
+
expected = {:firstName => '1', :lastName => '2', :wadus => '3'}
|
|
42
|
+
Wadus.map_params(:first_name => '1', :last_name => '2', :wadus => '3').must_equal expected
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
it 'reverse maps attributes appropriately' do
|
|
46
|
+
expected = {:first_name => '1', :last_name => '2', :wadus => '3'}
|
|
47
|
+
Wadus.reverse_map_params(:firstName => '1', :lastName => '2', :wadus => '3').must_equal expected
|
|
48
|
+
Wadus.reverse_map_params('firstName' => '1', 'lastName' => '2', 'wadus' => '3').must_equal expected
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
it 'maps attributes with typecasting' do
|
|
52
|
+
time = Time.at(0)
|
|
53
|
+
expected = { :creation => '1970-01-01T01:00:00+01:00' }
|
|
54
|
+
Wadus.map_params(:creation => time).must_equal expected
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
it 'automatically typecasts if the object is a Time' do
|
|
58
|
+
time = Time.at(0)
|
|
59
|
+
expected = { :firstName => '1970-01-01T01:00:00+01:00' }
|
|
60
|
+
Wadus.map_params(:first_name => time).must_equal expected
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
it 'reverse maps attributes with typecasting' do
|
|
64
|
+
time = Time.at(0)
|
|
65
|
+
expected = { :creation => time }
|
|
66
|
+
Wadus.reverse_map_params(:creation => '1970-01-01T01:00:00+01:00').must_equal expected
|
|
67
|
+
end
|
|
68
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
describe Amiando::Result do
|
|
4
|
+
it "raises error if you try to get the result before it's been calculated" do
|
|
5
|
+
lambda { result = Amiando::Result.new{}; result.result }.must_raise Amiando::Error::NotInitialized
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
it "uses the passed block to calculate the result" do
|
|
9
|
+
result = Amiando::Result.new do |something|
|
|
10
|
+
something * 2
|
|
11
|
+
end
|
|
12
|
+
result.populate(2)
|
|
13
|
+
result.result.must_equal 4
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it "can access itself in the block" do
|
|
17
|
+
result = Amiando::Result.new do |something, res|
|
|
18
|
+
res.errors = ["hi"]
|
|
19
|
+
something * 2
|
|
20
|
+
end
|
|
21
|
+
result.populate(2)
|
|
22
|
+
result.result.must_equal 4
|
|
23
|
+
result.errors.must_equal ["hi"]
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
require "test_helper"
|
|
2
|
+
|
|
3
|
+
describe Amiando::TicketCategory do
|
|
4
|
+
before do
|
|
5
|
+
Amiando.api_key = Amiando::TEST_KEY
|
|
6
|
+
HydraCache.prefix = 'TicketCategory'
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
after do
|
|
10
|
+
Amiando.api_key = nil
|
|
11
|
+
HydraCache.prefix = nil
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
describe 'create' do
|
|
15
|
+
it 'should create a ticket category given valid required parameters' do
|
|
16
|
+
event = Amiando::Factory.create(:event)
|
|
17
|
+
ticket_category = Amiando::TicketCategory.create(event.id,
|
|
18
|
+
:name => "Name",
|
|
19
|
+
:price => "50",
|
|
20
|
+
:available => "1"
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
Amiando.run
|
|
24
|
+
|
|
25
|
+
ticket_category.id.wont_be_nil
|
|
26
|
+
ticket_category.success.must_equal true
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
it 'should return errors if invalid data given' do
|
|
30
|
+
ticket_category = Amiando::Factory.create(:ticket_category, :name => "")
|
|
31
|
+
|
|
32
|
+
ticket_category.success.must_equal false
|
|
33
|
+
ticket_category.errors.must_include "com.amiando.api.rest.MissingParam.name"
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
describe 'update' do
|
|
38
|
+
it 'should update a ticket category given valid parameters' do
|
|
39
|
+
ticket_category = Amiando::Factory.create(:ticket_category)
|
|
40
|
+
|
|
41
|
+
update = Amiando::TicketCategory.update(ticket_category.id, :name => "New name")
|
|
42
|
+
Amiando.run
|
|
43
|
+
|
|
44
|
+
update.result.must_equal true
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
it 'should return errors if invalid data given' do
|
|
48
|
+
ticket_category = Amiando::Factory.create(:ticket_category)
|
|
49
|
+
|
|
50
|
+
update = Amiando::TicketCategory.update(ticket_category.id, :name => "")
|
|
51
|
+
Amiando.run
|
|
52
|
+
|
|
53
|
+
update.result.must_equal false
|
|
54
|
+
update.errors.must_include "com.amiando.TicketCategory.NameMissing"
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
describe 'find' do
|
|
59
|
+
it 'finds a ticket category given the id' do
|
|
60
|
+
ticket_category = Amiando::Factory.create(:ticket_category)
|
|
61
|
+
found = Amiando::TicketCategory.find(ticket_category.id)
|
|
62
|
+
Amiando.run
|
|
63
|
+
|
|
64
|
+
found.must_equal ticket_category
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
describe 'find_all_by_event_id' do
|
|
69
|
+
it 'fetches ticket category ids for the event' do
|
|
70
|
+
event = Amiando::Factory.create(:event)
|
|
71
|
+
ticket_category = Amiando::Factory.create(:ticket_category, :event => event)
|
|
72
|
+
|
|
73
|
+
found = Amiando::TicketCategory.find_all_by_event_id(event.id)
|
|
74
|
+
Amiando.run
|
|
75
|
+
|
|
76
|
+
found.result.must_include ticket_category.id
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
it 'fetches ticket categories for the event' do
|
|
80
|
+
event = Amiando::Factory.create(:event)
|
|
81
|
+
ticket_category = Amiando::Factory.create(:ticket_category, :event => event)
|
|
82
|
+
|
|
83
|
+
found = Amiando::TicketCategory.find_all_by_event_id(event.id, :full)
|
|
84
|
+
Amiando.run
|
|
85
|
+
|
|
86
|
+
found.result.must_include ticket_category
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
end
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
describe Amiando::TicketShop do
|
|
4
|
+
before do
|
|
5
|
+
Amiando.api_key = Amiando::TEST_KEY
|
|
6
|
+
HydraCache.prefix = 'TicketShop'
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
after do
|
|
10
|
+
Amiando.api_key = nil
|
|
11
|
+
HydraCache.prefix = nil
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
describe 'find' do
|
|
15
|
+
it 'gets the ticket shop of an event' do
|
|
16
|
+
event = Amiando::Factory.create(:event, :identifier => "event-ticketshop-find-#{HydraCache.revision}")
|
|
17
|
+
|
|
18
|
+
ticket_shop = Amiando::TicketShop.find(event.id)
|
|
19
|
+
Amiando.run
|
|
20
|
+
|
|
21
|
+
ticket_shop.id.wont_be_nil
|
|
22
|
+
ticket_shop.ticket_base_fee.wont_be_nil
|
|
23
|
+
ticket_shop.fee_inclusive.wont_be_nil
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
describe 'update' do
|
|
28
|
+
it 'updates the values of the ticketshop' do
|
|
29
|
+
event = Amiando::Factory.create(:event, :identifier => "event-ticketshop-update-#{HydraCache.revision}")
|
|
30
|
+
|
|
31
|
+
update = Amiando::TicketShop.update(event.id, :fee_inclusive => true, :shipment_fee_inclusive => true, :currency => 'USD')
|
|
32
|
+
Amiando.run
|
|
33
|
+
|
|
34
|
+
ticket_shop = Amiando::TicketShop.find(event.id)
|
|
35
|
+
Amiando.run
|
|
36
|
+
|
|
37
|
+
ticket_shop.fee_inclusive.must_equal true
|
|
38
|
+
ticket_shop.shipment_fee_inclusive.must_equal true
|
|
39
|
+
ticket_shop.currency.must_equal 'USD'
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
require 'test_helper'
|
|
2
|
+
|
|
3
|
+
describe Amiando::User do
|
|
4
|
+
before do
|
|
5
|
+
Amiando.api_key = Amiando::TEST_KEY
|
|
6
|
+
HydraCache.prefix = 'User'
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
after do
|
|
10
|
+
Amiando.api_key = nil
|
|
11
|
+
HydraCache.prefix = nil
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
describe 'create' do
|
|
15
|
+
it 'creates a user with valid parameters passed' do
|
|
16
|
+
user = Amiando::User.create(
|
|
17
|
+
:first_name => 'Jorge',
|
|
18
|
+
:last_name => 'Llop',
|
|
19
|
+
:username => "jorgellop-#{HydraCache.revision}@example.com",
|
|
20
|
+
:password => '123456',
|
|
21
|
+
:language => 'es'
|
|
22
|
+
)
|
|
23
|
+
Amiando.run
|
|
24
|
+
|
|
25
|
+
user.id.wont_be_nil
|
|
26
|
+
user.success.must_equal true
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
describe 'exists?' do
|
|
31
|
+
it "will return if the user exists" do
|
|
32
|
+
username = "jorgellop-exists-#{HydraCache.revision}@example.com"
|
|
33
|
+
user = Amiando::Factory.create(:user, :username => username)
|
|
34
|
+
|
|
35
|
+
exists = Amiando::User.exists?(username)
|
|
36
|
+
Amiando.run
|
|
37
|
+
|
|
38
|
+
exists.result.must_equal true
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
describe 'find_by_username' do
|
|
43
|
+
it 'should return the user id when found' do
|
|
44
|
+
username = "jorgellop-find_by_username-#{HydraCache.revision}@example.com"
|
|
45
|
+
user = Amiando::Factory.create(:user, :username => username)
|
|
46
|
+
|
|
47
|
+
result = Amiando::User.find_by_username(username)
|
|
48
|
+
Amiando.run
|
|
49
|
+
|
|
50
|
+
result.result.must_equal user.id
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
describe 'logout' do
|
|
55
|
+
it 'logs out a user if exists' do
|
|
56
|
+
username = "jorgellop-logout-test-#{HydraCache.revision}@example.com"
|
|
57
|
+
user = Amiando::Factory.create(:user, :username => username)
|
|
58
|
+
|
|
59
|
+
logout = Amiando::User.logout(user.id)
|
|
60
|
+
Amiando.run
|
|
61
|
+
|
|
62
|
+
logout.result.must_equal true
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
describe 'update' do
|
|
67
|
+
it 'updates a user given the id' do
|
|
68
|
+
username = "jorgellop-update-#{HydraCache.revision}@example.com"
|
|
69
|
+
user = Amiando::Factory.create(:user, :username => username)
|
|
70
|
+
|
|
71
|
+
update = Amiando::User.update(user.id, :telephone => "0034666666666")
|
|
72
|
+
Amiando.run
|
|
73
|
+
|
|
74
|
+
update.result.must_equal true
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
describe 'find' do
|
|
79
|
+
it 'finds a user given the id' do
|
|
80
|
+
username = "jorgellop-find-#{HydraCache.revision}@example.com"
|
|
81
|
+
user = Amiando::Factory.create(:user, :username => username)
|
|
82
|
+
|
|
83
|
+
found = Amiando::User.find(user.id)
|
|
84
|
+
Amiando.run
|
|
85
|
+
|
|
86
|
+
found.must_equal user
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
describe 'delete' do
|
|
91
|
+
it 'should delete a user' do
|
|
92
|
+
username = "jorgellop-delete-#{HydraCache.revision}@example.com"
|
|
93
|
+
user = Amiando::Factory.create(:user, :username => username)
|
|
94
|
+
|
|
95
|
+
deleted = Amiando::User.delete(user.id)
|
|
96
|
+
Amiando.run
|
|
97
|
+
|
|
98
|
+
deleted.result.must_equal true
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
describe 'request_permission' do
|
|
103
|
+
it 'should be successful given the right password' do
|
|
104
|
+
username = "jorgellop-request-permission-#{HydraCache.revision}@example.com"
|
|
105
|
+
user = Amiando::Factory(:user, :username => username, :password => '12345')
|
|
106
|
+
key = Amiando::Factory(:api_key)
|
|
107
|
+
Amiando.run
|
|
108
|
+
|
|
109
|
+
Amiando.api_key = key.key
|
|
110
|
+
permission = Amiando::User.request_permission(user.id, '12345')
|
|
111
|
+
Amiando.run
|
|
112
|
+
|
|
113
|
+
permission.result.must_equal true
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
it 'should not be successful given the wrong password' do
|
|
117
|
+
username = "jorgellop-request-permission-#{HydraCache.revision}@example.com"
|
|
118
|
+
user = Amiando::Factory(:user, :username => username, :password => '12345')
|
|
119
|
+
key = Amiando::Factory(:api_key)
|
|
120
|
+
Amiando.run
|
|
121
|
+
|
|
122
|
+
Amiando.api_key = key.key
|
|
123
|
+
permission = Amiando::User.request_permission(user.id, 'wrong password')
|
|
124
|
+
Amiando.run
|
|
125
|
+
|
|
126
|
+
permission.result.must_equal false
|
|
127
|
+
permission.errors.must_include "com.amiando.api.rest.InvalidPassword"
|
|
128
|
+
end
|
|
129
|
+
end
|
|
130
|
+
end
|