fsync-client 0.0.2.pre → 0.0.3.pre
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/lib/fsync-client.rb +7 -10
- data/spec/lib/fsync-client_spec.rb +36 -38
- metadata +4 -4
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.3.pre
|
data/lib/fsync-client.rb
CHANGED
@@ -6,16 +6,13 @@ class FinanceSync
|
|
6
6
|
|
7
7
|
attr_reader :version, :entities, :conflicts, :error
|
8
8
|
|
9
|
-
def initialize(
|
10
|
-
@services_url =
|
11
|
-
@version =
|
12
|
-
@
|
13
|
-
@password = params[:password]
|
14
|
-
raise ArgumentError if @user.nil? or @password.nil?
|
15
|
-
raise TypeError unless @version.is_a? Fixnum
|
16
|
-
|
9
|
+
def initialize(url, version, token)
|
10
|
+
@services_url = url
|
11
|
+
@version = version
|
12
|
+
@token = token
|
17
13
|
@error = nil
|
18
14
|
@conflicts = []
|
15
|
+
raise TypeError unless @version.is_a? Fixnum
|
19
16
|
end
|
20
17
|
|
21
18
|
def synchronize(data)
|
@@ -38,8 +35,8 @@ class FinanceSync
|
|
38
35
|
errors = {"400"=>"bad data", "500"=>"sync server error",
|
39
36
|
"423"=>"locked", "401"=> "login error"}
|
40
37
|
|
41
|
-
put = Net::HTTP::Put.new("/financedesktop/sync/synchronize")
|
42
|
-
put.basic_auth(
|
38
|
+
put = Net::HTTP::Put.new("/financedesktop/sync/synchronize?auth=myfc_id")
|
39
|
+
put.basic_auth('', @token)
|
43
40
|
put.content_type = 'application/json'
|
44
41
|
begin
|
45
42
|
response = Net::HTTP.start(@services_url) {|http|
|
@@ -17,30 +17,30 @@ UPDATED_VERSION = '{"conflicts": [], "version": 49, "data": [{"entity": {"import
|
|
17
17
|
"date": "2010-10-11", "guid": "22a648b0-2fe1-4888-96a4-caa27a4c27d7",
|
18
18
|
"type": "transaction"}}]}'
|
19
19
|
|
20
|
-
|
21
|
-
PASSWORD = 'habei'
|
20
|
+
TOKEN = 'ageneratedtoken'
|
22
21
|
|
23
22
|
describe "Finance Sync API wrapper" do
|
24
23
|
|
25
|
-
def fake_sync_response(response,
|
26
|
-
if not (
|
27
|
-
credentials = "
|
24
|
+
def fake_sync_response(response, token='')
|
25
|
+
if not (token.empty?)
|
26
|
+
credentials = ":#{token}@"
|
28
27
|
else
|
29
28
|
credentials = ""
|
30
29
|
end
|
31
30
|
|
32
31
|
FakeWeb.register_uri(
|
33
32
|
:put,
|
34
|
-
"http://#{credentials}services.myfreecomm.com.br/financedesktop/sync/synchronize",
|
33
|
+
"http://#{credentials}services.myfreecomm.com.br/financedesktop/sync/synchronize?auth=myfc_id",
|
35
34
|
response)
|
36
35
|
end
|
37
36
|
|
38
37
|
before(:each) do
|
39
38
|
@services_url = "services.myfreecomm.com.br"
|
40
|
-
@finance_sync = FinanceSync.new(
|
41
|
-
|
39
|
+
@finance_sync = FinanceSync.new(@services_url, version = 2,
|
40
|
+
token = TOKEN)
|
42
41
|
end
|
43
42
|
|
43
|
+
|
44
44
|
describe "initializer" do
|
45
45
|
|
46
46
|
it "should store version" do
|
@@ -54,8 +54,8 @@ describe "Finance Sync API wrapper" do
|
|
54
54
|
end
|
55
55
|
|
56
56
|
it "should have .version" do
|
57
|
-
@finance_sync = FinanceSync.new(
|
58
|
-
|
57
|
+
@finance_sync = FinanceSync.new(@services_url, version = 4,
|
58
|
+
token = TOKEN)
|
59
59
|
@finance_sync.version.should == 4
|
60
60
|
end
|
61
61
|
|
@@ -63,13 +63,13 @@ describe "Finance Sync API wrapper" do
|
|
63
63
|
|
64
64
|
it "should send the params formed correctly" do
|
65
65
|
|
66
|
-
@finance_sync = FinanceSync.new(
|
67
|
-
|
66
|
+
@finance_sync = FinanceSync.new(@services_url, version = 48,
|
67
|
+
token = TOKEN)
|
68
68
|
correct_json = {"version"=>@finance_sync.version, "data"=>ENTITIES}.to_json
|
69
69
|
|
70
70
|
put = mock(Net::HTTP::Put)
|
71
|
-
Net::HTTP::Put.should_receive(:new).with("/financedesktop/sync/synchronize").once.and_return(put)
|
72
|
-
put.should_receive(:basic_auth).with(
|
71
|
+
Net::HTTP::Put.should_receive(:new).with("/financedesktop/sync/synchronize?auth=myfc_id").once.and_return(put)
|
72
|
+
put.should_receive(:basic_auth).with('', TOKEN)
|
73
73
|
put.should_receive(:content_type=).with('application/json')
|
74
74
|
|
75
75
|
http = mock()
|
@@ -88,13 +88,13 @@ describe "Finance Sync API wrapper" do
|
|
88
88
|
|
89
89
|
before(:each) do
|
90
90
|
@invalid_url = 'invalid_url'
|
91
|
-
@finance_sync = FinanceSync.new(
|
92
|
-
|
91
|
+
@finance_sync = FinanceSync.new(@invalid_url, version = 48,
|
92
|
+
token = TOKEN)
|
93
93
|
@correct_json = {"version"=>@finance_sync.version, "data"=>ENTITIES}.to_json
|
94
94
|
|
95
95
|
@put = mock(Net::HTTP::Put)
|
96
|
-
Net::HTTP::Put.should_receive(:new).with("/financedesktop/sync/synchronize").once.and_return(@put)
|
97
|
-
@put.should_receive(:basic_auth).with(
|
96
|
+
Net::HTTP::Put.should_receive(:new).with("/financedesktop/sync/synchronize?auth=myfc_id").once.and_return(@put)
|
97
|
+
@put.should_receive(:basic_auth).with("", TOKEN)
|
98
98
|
@put.should_receive(:content_type=).with('application/json')
|
99
99
|
http = mock()
|
100
100
|
Net::HTTP.should_receive(:start).with(@invalid_url).and_raise(SocketError)
|
@@ -116,8 +116,8 @@ describe "Finance Sync API wrapper" do
|
|
116
116
|
describe "with invalid url" do
|
117
117
|
|
118
118
|
before(:each) do
|
119
|
-
@finance_sync = FinanceSync.new(
|
120
|
-
|
119
|
+
@finance_sync = FinanceSync.new(nil, version = 48,
|
120
|
+
token = TOKEN)
|
121
121
|
end
|
122
122
|
|
123
123
|
it "should return false" do
|
@@ -133,10 +133,10 @@ describe "Finance Sync API wrapper" do
|
|
133
133
|
|
134
134
|
describe "with invalid version specified" do
|
135
135
|
it "should raise TypeError if a non integer is passed " do
|
136
|
-
wrong_params = {:
|
137
|
-
:version => "abcsd", :
|
136
|
+
wrong_params = {:url => "services.myfreecomm.com.br",
|
137
|
+
:version => "abcsd", :token => TOKEN}
|
138
138
|
lambda {
|
139
|
-
FinanceSync.new(wrong_params)
|
139
|
+
FinanceSync.new(*wrong_params)
|
140
140
|
}.should raise_exception(TypeError)
|
141
141
|
|
142
142
|
end
|
@@ -145,9 +145,9 @@ describe "Finance Sync API wrapper" do
|
|
145
145
|
describe "with wrong credentials provided" do
|
146
146
|
|
147
147
|
before(:each) do
|
148
|
-
fake_sync_response({:status=>[401, "unauthorized"]}, '
|
149
|
-
@finance_sync = FinanceSync.new(
|
150
|
-
|
148
|
+
fake_sync_response({:status=>[401, "unauthorized"]}, 'wrongtoken' )
|
149
|
+
@finance_sync = FinanceSync.new(@services_url, version = 48,
|
150
|
+
token = 'wrongtoken')
|
151
151
|
end
|
152
152
|
|
153
153
|
it "should return false " do
|
@@ -165,7 +165,7 @@ describe "Finance Sync API wrapper" do
|
|
165
165
|
|
166
166
|
it "should raise 'Argument Error'" do
|
167
167
|
lambda {
|
168
|
-
FinanceSync.new(
|
168
|
+
FinanceSync.new(@services_url, version = 48)
|
169
169
|
}.should raise_exception(ArgumentError)
|
170
170
|
end
|
171
171
|
end
|
@@ -173,12 +173,11 @@ describe "Finance Sync API wrapper" do
|
|
173
173
|
describe "with no conflicts and no new data" do
|
174
174
|
|
175
175
|
before(:each) do
|
176
|
-
@finance_sync = FinanceSync.new(
|
177
|
-
|
178
|
-
:password=>'credentials' )
|
176
|
+
@finance_sync = FinanceSync.new("services.myfreecomm.com.br",
|
177
|
+
version = 48, token ='atoken' )
|
179
178
|
fake_sync_response({:status=>[200, "OK"],
|
180
179
|
:body=>'{"conflicts": [], "version": 48, "data": []}'},
|
181
|
-
'
|
180
|
+
'atoken')
|
182
181
|
end
|
183
182
|
|
184
183
|
it "should not update version" do
|
@@ -204,11 +203,10 @@ describe "Finance Sync API wrapper" do
|
|
204
203
|
|
205
204
|
before(:each) do
|
206
205
|
|
207
|
-
@finance_sync = FinanceSync.new(
|
208
|
-
|
209
|
-
:password=>'credentials')
|
206
|
+
@finance_sync = FinanceSync.new("services.myfreecomm.com.br",
|
207
|
+
version = 48, token = 'wrongtoken')
|
210
208
|
fake_sync_response({:status=>[200, "OK"], :body=>UPDATED_VERSION},
|
211
|
-
'
|
209
|
+
'wrongtoken')
|
212
210
|
|
213
211
|
end
|
214
212
|
|
@@ -241,7 +239,7 @@ describe "Finance Sync API wrapper" do
|
|
241
239
|
|
242
240
|
before(:each) do
|
243
241
|
fake_sync_response({:status=>[400, "Bad request"], :body=>"invalid data"},
|
244
|
-
|
242
|
+
TOKEN)
|
245
243
|
@bad_data = '{"version": 47, "entity":}'
|
246
244
|
end
|
247
245
|
|
@@ -260,7 +258,7 @@ describe "Finance Sync API wrapper" do
|
|
260
258
|
|
261
259
|
before(:each) do
|
262
260
|
fake_sync_response({:status=>[500, "Server Error"], :body=>"Server Error"},
|
263
|
-
|
261
|
+
TOKEN)
|
264
262
|
@valid_data = '{"valid": "data"}'
|
265
263
|
end
|
266
264
|
|
@@ -278,7 +276,7 @@ describe "Finance Sync API wrapper" do
|
|
278
276
|
describe "on sync server lock" do
|
279
277
|
|
280
278
|
before(:each) do
|
281
|
-
fake_sync_response({:status=>[423, "Locked"], :body=>"Locked"},
|
279
|
+
fake_sync_response({:status=>[423, "Locked"], :body=>"Locked"}, TOKEN)
|
282
280
|
@valid_data = '{"valid": "data"}'
|
283
281
|
end
|
284
282
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fsync-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 961915976
|
5
5
|
prerelease: true
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
9
|
+
- 3
|
10
10
|
- pre
|
11
|
-
version: 0.0.
|
11
|
+
version: 0.0.3.pre
|
12
12
|
platform: ruby
|
13
13
|
authors:
|
14
14
|
- Vanderson Mota
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2010-12-
|
19
|
+
date: 2010-12-16 00:00:00 -02:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|