cybercoach 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,8 +2,8 @@ require 'spec_helper'
2
2
 
3
3
  describe 'Subscription' do
4
4
  before(:context) do
5
- @proposer = UserHelper.make(6)
6
- @proposed = UserHelper.make(7)
5
+ @proposer = UserHelper.make(8)
6
+ @proposed = UserHelper.make(9)
7
7
  ResourceHelper.safe_delete(@proposer)
8
8
  ResourceHelper.safe_delete(@proposed)
9
9
  @proposer.create
@@ -12,18 +12,18 @@ describe 'Subscription' do
12
12
  @partnership.proposer = @proposer
13
13
  @partnership.proposed = @proposed
14
14
  @partnership.privacy_level = CyberCoach::PrivacyLevel::REGISTERED_USER
15
- ResourceHelper.safe_delete(@partnership, UserHelper.options(@proposer))
16
- ResourceHelper.safe_delete(@partnership, UserHelper.options(@proposed))
17
- @partnership.create(UserHelper.options(@proposer))
18
- @partnership.update(UserHelper.options(@proposed))
15
+ ResourceHelper.safe_delete(@partnership, @proposer.authentication)
16
+ ResourceHelper.safe_delete(@partnership, @proposed.authentication)
17
+ @partnership.create(@proposer.authentication)
18
+ @partnership.update(@proposed.authentication)
19
19
  @sport = CyberCoach::Sport.new
20
20
  @sport.name = 'Running'
21
21
  @sport.read
22
22
  end
23
23
 
24
24
  after(:context) do
25
- ResourceHelper.safe_delete(@partnership, UserHelper.options(@proposer))
26
- ResourceHelper.safe_delete(@partnership, UserHelper.options(@proposed))
25
+ ResourceHelper.safe_delete(@partnership, @proposer.authentication)
26
+ ResourceHelper.safe_delete(@partnership, @proposed.authentication)
27
27
  ResourceHelper.safe_delete(@proposer)
28
28
  ResourceHelper.safe_delete(@proposed)
29
29
  end
@@ -35,17 +35,40 @@ describe 'Subscription' do
35
35
  @subscription.privacy_level = CyberCoach::PrivacyLevel::REGISTERED_USER
36
36
  end
37
37
 
38
+ it 'should instantiate itself with preset attributes' do
39
+ uri = '/pants/'
40
+ id = 1
41
+ subscriber = CyberCoach::User.new
42
+ sport = CyberCoach::Sport.new
43
+ privacy_level = CyberCoach::PrivacyLevel::OWNER
44
+ pants = 'yes'
45
+ @subscription = CyberCoach::Subscription.new(
46
+ uri: uri,
47
+ id: id,
48
+ subscriber: subscriber,
49
+ sport: sport,
50
+ privacy_level: privacy_level,
51
+ pants: pants
52
+ )
53
+ expect(@subscription.uri).to be(uri)
54
+ expect(@subscription.id).to be(id)
55
+ expect(@subscription.subscriber).to be(subscriber)
56
+ expect(@subscription.sport).to be(sport)
57
+ expect(@subscription.privacy_level).to be(privacy_level)
58
+ expect { @subscription.pants }.to raise_error(NoMethodError)
59
+ end
60
+
38
61
  it 'should raise an error if it does not exist' do
39
- expect { @subscription.read(UserHelper.options(@proposer)) }.to raise_error(CyberCoach::HttpError)
62
+ expect { @subscription.read(@proposer.authentication) }.to raise_error(CyberCoach::HttpError)
40
63
  end
41
64
 
42
65
  describe 'crud' do
43
66
  before(:example) do
44
- ResourceHelper.safe_delete(@subscription, UserHelper.options(@proposer))
67
+ ResourceHelper.safe_delete(@subscription, @proposer.authentication)
45
68
  end
46
69
 
47
70
  after(:example) do
48
- ResourceHelper.safe_delete(@subscription, UserHelper.options(@proposer))
71
+ ResourceHelper.safe_delete(@subscription, @proposer.authentication)
49
72
  end
50
73
 
51
74
  describe 'with partnership subscriber' do
@@ -54,13 +77,13 @@ describe 'Subscription' do
54
77
  end
55
78
 
56
79
  it 'should create itself' do
57
- @subscription.create(UserHelper.options(@proposer))
80
+ @subscription.create(@proposer.authentication)
58
81
  expect(@subscription.id).not_to be_nil
59
82
  end
60
83
 
61
84
  it 'should read itself' do
62
- @subscription.create(UserHelper.options(@proposer))
63
- @subscription.read(UserHelper.options(@proposer))
85
+ @subscription.create(@proposer.authentication)
86
+ @subscription.read(@proposer.authentication)
64
87
  expect(@subscription.id).not_to be_nil
65
88
  expect(@subscription.uri).not_to be_nil
66
89
  expect(@subscription.subscriber.uri).to eq(@partnership.uri)
@@ -71,19 +94,19 @@ describe 'Subscription' do
71
94
  end
72
95
 
73
96
  it 'should update itself' do
74
- @subscription.create(UserHelper.options(@proposer))
97
+ @subscription.create(@proposer.authentication)
75
98
  old_privacy_level = @subscription.privacy_level
76
99
  new_privacy_level = CyberCoach::PrivacyLevel::EVERYBODY
77
100
  @subscription.privacy_level = new_privacy_level
78
- @subscription.update(UserHelper.options(@proposer))
101
+ @subscription.update(@proposer.authentication)
79
102
  expect(@subscription.privacy_level).not_to eq(old_privacy_level)
80
103
  expect(@subscription.privacy_level).to eq(new_privacy_level)
81
104
  end
82
105
 
83
106
  it 'should delete itself' do
84
- @subscription.create(UserHelper.options(@proposer))
85
- @subscription.delete(UserHelper.options(@proposer))
86
- expect { @subscription.read(UserHelper.options(@proposer)) }.to raise_error(CyberCoach::HttpError)
107
+ @subscription.create(@proposer.authentication)
108
+ @subscription.delete(@proposer.authentication)
109
+ expect { @subscription.read(@proposer.authentication) }.to raise_error(CyberCoach::HttpError)
87
110
  end
88
111
  end
89
112
 
@@ -93,13 +116,13 @@ describe 'Subscription' do
93
116
  end
94
117
 
95
118
  it 'should create itself' do
96
- @subscription.create(UserHelper.options(@proposer))
119
+ @subscription.create(@proposer.authentication)
97
120
  expect(@subscription.id).not_to be_nil
98
121
  end
99
122
 
100
123
  it 'should read itself' do
101
- @subscription.create(UserHelper.options(@proposer))
102
- @subscription.read(UserHelper.options(@proposer))
124
+ @subscription.create(@proposer.authentication)
125
+ @subscription.read(@proposer.authentication)
103
126
  expect(@subscription.id).not_to be_nil
104
127
  expect(@subscription.uri).not_to be_nil
105
128
  expect(@subscription.subscriber.uri).to eq(@proposer.uri)
@@ -110,20 +133,66 @@ describe 'Subscription' do
110
133
  end
111
134
 
112
135
  it 'should update itself' do
113
- @subscription.create(UserHelper.options(@proposer))
136
+ @subscription.create(@proposer.authentication)
114
137
  old_privacy_level = @subscription.privacy_level
115
138
  new_privacy_level = CyberCoach::PrivacyLevel::EVERYBODY
116
139
  @subscription.privacy_level = new_privacy_level
117
- @subscription.update(UserHelper.options(@proposer))
140
+ @subscription.update(@proposer.authentication)
118
141
  expect(@subscription.privacy_level).not_to eq(old_privacy_level)
119
142
  expect(@subscription.privacy_level).to eq(new_privacy_level)
120
143
  end
121
144
 
122
145
  it 'should delete itself' do
123
- @subscription.create(UserHelper.options(@proposer))
124
- @subscription.delete(UserHelper.options(@proposer))
125
- expect { @subscription.read(UserHelper.options(@proposer)) }.to raise_error(CyberCoach::HttpError)
146
+ @subscription.create(@proposer.authentication)
147
+ @subscription.delete(@proposer.authentication)
148
+ expect { @subscription.read(@proposer.authentication) }.to raise_error(CyberCoach::HttpError)
126
149
  end
127
150
  end
128
151
  end
129
- end
152
+
153
+ describe 'invalidation' do
154
+ before(:example) do
155
+ @subscription.subscriber = @proposer
156
+ ResourceHelper.safe_delete(@subscription, @proposer.authentication)
157
+ end
158
+
159
+ after(:example) do
160
+ ResourceHelper.safe_delete(@subscription, @proposer.authentication)
161
+ end
162
+
163
+ it 'should not invalidate when creating' do
164
+ subscriber = @subscription.subscriber
165
+ @subscription.subscriber = CyberCoach::User.new
166
+ expect(@subscription.subscriber).not_to eq(subscriber)
167
+ expect { @subscription.create(@proposer.authentication, false) }.not_to raise_error
168
+ @subscription.subscriber = subscriber
169
+ end
170
+
171
+ it 'should not invalidate when reading' do
172
+ @subscription.create(@proposer.authentication)
173
+ subscriber = @subscription.subscriber
174
+ @subscription.subscriber = CyberCoach::User.new
175
+ expect(@subscription.subscriber).not_to eq(subscriber)
176
+ expect { @subscription.read(@proposer.authentication, false) }.not_to raise_error
177
+ @subscription.subscriber = subscriber
178
+ end
179
+
180
+ it 'should not invalidate when updating' do
181
+ @subscription.create(@proposer.authentication)
182
+ subscriber = @subscription.subscriber
183
+ @subscription.subscriber = CyberCoach::User.new
184
+ expect(@subscription.subscriber).not_to eq(subscriber)
185
+ expect { @subscription.update(@proposer.authentication, false) }.not_to raise_error
186
+ @subscription.subscriber = subscriber
187
+ end
188
+
189
+ it 'should not invalidate when deleting' do
190
+ @subscription.create(@proposer.authentication)
191
+ subscriber = @subscription.subscriber
192
+ @subscription.subscriber = CyberCoach::User.new
193
+ expect(@subscription.subscriber).not_to eq(subscriber)
194
+ expect { @subscription.delete(@proposer.authentication, false) }.not_to raise_error
195
+ @subscription.subscriber = subscriber
196
+ end
197
+ end
198
+ end
@@ -10,13 +10,4 @@ class UserHelper
10
10
  user.real_name = "New York Falcons Test #{i}"
11
11
  user
12
12
  end
13
-
14
- def self.options(user)
15
- {
16
- basic_auth: {
17
- username: user.username,
18
- password: user.password
19
- }
20
- }
21
- end
22
13
  end
@@ -5,32 +5,61 @@ describe 'User' do
5
5
  @user = CyberCoach::User.new
6
6
  end
7
7
 
8
+ it 'should instantiate itself with preset attributes' do
9
+ uri = '/pants/'
10
+ id = 1
11
+ username = 'pants'
12
+ email = 'fancy@pants.com'
13
+ password = 'fancy'
14
+ real_name = 'Fancy Pants'
15
+ privacy_level = CyberCoach::PrivacyLevel::OWNER
16
+ pants = 'yes'
17
+ @user = CyberCoach::User.new(
18
+ uri: uri,
19
+ id: id,
20
+ username: username,
21
+ email: email,
22
+ password: password,
23
+ real_name: real_name,
24
+ privacy_level: privacy_level,
25
+ pants: pants
26
+ )
27
+ expect(@user.uri).to be(uri)
28
+ expect(@user.id).to be(id)
29
+ expect(@user.username).to be(username)
30
+ expect(@user.email).to be(email)
31
+ expect(@user.password).to be(password)
32
+ expect(@user.real_name).to be(real_name)
33
+ expect(@user.privacy_level).to be(privacy_level)
34
+ expect { @user.pants }.to raise_error(NoMethodError)
35
+ end
36
+
8
37
  it 'should raise an error if it does not exist' do
9
38
  @user.username = 'gnirloff'
10
- expect{@user.read}.to raise_error(CyberCoach::HttpError)
39
+ expect { @user.read }.to raise_error(CyberCoach::HttpError)
11
40
  end
12
41
 
13
42
  it 'should read all' do
14
43
  users = CyberCoach::User.read_all
15
44
  expect(users.resources.size).to eq(5)
16
45
  expect(users.next).not_to be_nil
17
- expect{users.previous}.to raise_error(CyberCoach::ResourcePage::NoPreviousPageError)
46
+ expect { users.previous }.to raise_error(CyberCoach::ResourcePage::NoPreviousPageError)
18
47
  end
19
48
 
20
49
  it 'should get the authentication options' do
21
- @user = UserHelper.make(6)
50
+ @user = UserHelper.make(8)
22
51
  @user.create
23
- expect(@user.authentication).to eq({
24
- basic_auth: {
25
- username: @user.username,
26
- password: @user.password
27
- }
28
- })
52
+ expect(@user.authentication).to eq(
53
+ basic_auth: {
54
+ username: @user.username,
55
+ password: @user.password
56
+ }
57
+ )
29
58
  end
30
59
 
31
60
  describe 'crud' do
32
61
  before(:example) do
33
- @user = UserHelper.make(6)
62
+ @user = UserHelper.make(8)
34
63
  ResourceHelper.safe_delete(@user)
35
64
  end
36
65
 
@@ -76,7 +105,53 @@ describe 'User' do
76
105
  it 'should delete itself' do
77
106
  @user.create
78
107
  @user.delete
79
- expect{@user.read}.to raise_error(CyberCoach::HttpError)
108
+ expect { @user.read }.to raise_error(CyberCoach::HttpError)
109
+ end
110
+ end
111
+
112
+ describe 'invalidation' do
113
+ before(:example) do
114
+ @user = UserHelper.make(8)
115
+ ResourceHelper.safe_delete(@user)
116
+ end
117
+
118
+ after(:example) do
119
+ ResourceHelper.safe_delete(@user)
120
+ end
121
+
122
+ it 'should not invalidate when creating' do
123
+ password = @user.password
124
+ @user.password = 'notThePassword'
125
+ expect(@user.password).not_to eq(password)
126
+ expect { @user.create({}, false) }.not_to raise_error
127
+ @user.password = password
128
+ end
129
+
130
+ it 'should not invalidate when reading' do
131
+ @user.create
132
+ password = @user.password
133
+ @user.password = 'notThePassword'
134
+ expect(@user.password).not_to eq(password)
135
+ expect { @user.read({}, false) }.not_to raise_error
136
+ @user.password = password
137
+ end
138
+
139
+ it 'should not invalidate when updating' do
140
+ @user.create
141
+ password = @user.password
142
+ @user.password = 'notThePassword'
143
+ expect(@user.password).not_to eq(password)
144
+ expect { @user.update({}, false) }.not_to raise_error
145
+ @user.password = password
146
+ end
147
+
148
+ it 'should not invalidate when deleting' do
149
+ @user.create
150
+ password = @user.password
151
+ @user.password = 'notThePassword'
152
+ expect(@user.password).not_to eq(password)
153
+ expect { @user.delete({}, false) }.not_to raise_error
154
+ @user.password = password
80
155
  end
81
156
  end
82
- end
157
+ end
@@ -2,8 +2,8 @@ require 'spec_helper'
2
2
 
3
3
  describe 'Integration' do
4
4
  before(:context) do
5
- @proposer = UserHelper.make(6)
6
- @proposed = UserHelper.make(7)
5
+ @proposer = UserHelper.make(8)
6
+ @proposed = UserHelper.make(9)
7
7
  ResourceHelper.safe_delete(@proposer)
8
8
  ResourceHelper.safe_delete(@proposed)
9
9
  @proposer.create
@@ -12,10 +12,10 @@ describe 'Integration' do
12
12
  @partnership.proposer = @proposer
13
13
  @partnership.proposed = @proposed
14
14
  @partnership.privacy_level = CyberCoach::PrivacyLevel::REGISTERED_USER
15
- ResourceHelper.safe_delete(@partnership, UserHelper.options(@proposer))
16
- ResourceHelper.safe_delete(@partnership, UserHelper.options(@proposed))
17
- @partnership.create(UserHelper.options(@proposer))
18
- @partnership.update(UserHelper.options(@proposed))
15
+ ResourceHelper.safe_delete(@partnership, @proposer.authentication)
16
+ ResourceHelper.safe_delete(@partnership, @proposed.authentication)
17
+ @partnership.create(@proposer.authentication)
18
+ @partnership.update(@proposed.authentication)
19
19
  @sport = CyberCoach::Sport.new
20
20
  @sport.name = 'Running'
21
21
  @sport.read
@@ -23,34 +23,34 @@ describe 'Integration' do
23
23
  @subscription.subscriber = @partnership
24
24
  @subscription.sport = @sport
25
25
  @subscription.privacy_level = CyberCoach::PrivacyLevel::REGISTERED_USER
26
- @subscription.create(UserHelper.options(@proposer))
26
+ @subscription.create(@proposer.authentication)
27
27
  @entry = CyberCoach::Entry.new
28
28
  @entry.subscription = @subscription
29
29
  @entry.comment = 'I like pants'
30
30
  @entry.location = 'In your pants'
31
31
  @entry.duration = 1
32
32
  @entry.privacy_level = CyberCoach::PrivacyLevel::REGISTERED_USER
33
- @entry.create(UserHelper.options(@proposer))
33
+ @entry.create(@proposer.authentication)
34
34
  end
35
35
 
36
36
  after(:context) do
37
- ResourceHelper.safe_delete(@entry, UserHelper.options(@proposer))
38
- ResourceHelper.safe_delete(@subscription, UserHelper.options(@proposer))
39
- ResourceHelper.safe_delete(@partnership, UserHelper.options(@proposer))
40
- ResourceHelper.safe_delete(@partnership, UserHelper.options(@proposed))
37
+ ResourceHelper.safe_delete(@entry, @proposer.authentication)
38
+ ResourceHelper.safe_delete(@subscription, @proposer.authentication)
39
+ ResourceHelper.safe_delete(@partnership, @proposer.authentication)
40
+ ResourceHelper.safe_delete(@partnership, @proposed.authentication)
41
41
  ResourceHelper.safe_delete(@proposer)
42
42
  ResourceHelper.safe_delete(@proposed)
43
43
  end
44
44
 
45
45
  it 'should add the subscription to the partnership' do
46
- @partnership.read(UserHelper.options(@proposer))
46
+ @partnership.read(@proposer.authentication)
47
47
  expect(@partnership.subscriptions).not_to be_empty
48
48
  expect(@partnership.subscriptions[0].uri).to eq(@subscription.uri)
49
49
  end
50
50
 
51
51
  it 'should add the entry to the subscription' do
52
- @subscription.read(UserHelper.options(@proposer))
52
+ @subscription.read(@proposer.authentication)
53
53
  expect(@subscription.entries).not_to be_empty
54
54
  expect(@subscription.entries[0].uri).to eq(@entry.uri)
55
55
  end
56
- end
56
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cybercoach
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Manuel Leuenberger
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-26 00:00:00.000000000 Z
11
+ date: 2014-11-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -71,6 +71,7 @@ files:
71
71
  - lib/cybercoach/abstract_resource.rb
72
72
  - lib/cybercoach/entry.rb
73
73
  - lib/cybercoach/format_not_supported_error.rb
74
+ - lib/cybercoach/hash_initializable.rb
74
75
  - lib/cybercoach/http_error.rb
75
76
  - lib/cybercoach/pageable.rb
76
77
  - lib/cybercoach/partnership.rb
@@ -118,7 +119,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
118
119
  version: '0'
119
120
  requirements: []
120
121
  rubyforge_project:
121
- rubygems_version: 2.2.2
122
+ rubygems_version: 2.4.2
122
123
  signing_key:
123
124
  specification_version: 4
124
125
  summary: CyberCoach proxy