cybercoach 0.3.0 → 0.4.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.
@@ -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