myfinance 1.2.1 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +3 -2
- data/.hound.yml +3 -1063
- data/.overcommit.yml +33 -0
- data/.rubocop.yml +19 -1131
- data/CHANGELOG.md +3 -0
- data/Gemfile.lock +3 -1
- data/README.md +200 -0
- data/Rakefile +1 -1
- data/bin/rspec +21 -0
- data/lib/myfinance.rb +4 -59
- data/lib/myfinance/client.rb +14 -2
- data/lib/myfinance/configuration.rb +2 -2
- data/lib/myfinance/entities/collection.rb +13 -5
- data/lib/myfinance/entities/sale.rb +32 -0
- data/lib/myfinance/entities/sale_account.rb +18 -0
- data/lib/myfinance/entities/sale_account_collection.rb +13 -0
- data/lib/myfinance/entities/sale_collection.rb +13 -0
- data/lib/myfinance/entities/sale_rule.rb +16 -0
- data/lib/myfinance/entities/sale_rule_collection.rb +13 -0
- data/lib/myfinance/http.rb +10 -11
- data/lib/myfinance/request.rb +2 -3
- data/lib/myfinance/resources/base.rb +1 -1
- data/lib/myfinance/resources/sale.rb +39 -0
- data/lib/myfinance/resources/sale_account.rb +39 -0
- data/lib/myfinance/resources/sale_rule.rb +39 -0
- data/lib/myfinance/response.rb +6 -6
- data/lib/myfinance/version.rb +1 -1
- data/myfinance.gemspec +14 -9
- data/spec/lib/myfinance/client_spec.rb +14 -0
- data/spec/lib/myfinance/entities/sale_account_collection_spec.rb +5 -0
- data/spec/lib/myfinance/entities/sale_account_spec.rb +18 -0
- data/spec/lib/myfinance/entities/sale_collection_spec.rb +5 -0
- data/spec/lib/myfinance/entities/sale_rule_collection_spec.rb +5 -0
- data/spec/lib/myfinance/entities/sale_rule_spec.rb +16 -0
- data/spec/lib/myfinance/entities/sale_spec.rb +32 -0
- data/spec/lib/myfinance/resources/sale_account.spec.rb +124 -0
- data/spec/lib/myfinance/resources/sale_account_spec.rb +116 -0
- data/spec/lib/myfinance/resources/sale_rule_spec.rb +126 -0
- data/spec/lib/myfinance/resources/sale_spec.rb +126 -0
- data/spec/support/shared_examples/entity_collection.rb +21 -0
- data/spec/support/shared_examples/http_request_methods.rb +12 -5
- metadata +51 -3
@@ -0,0 +1,124 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Myfinance::Resources::SaleAccount, vcr: true do
|
4
|
+
let(:client) do
|
5
|
+
equipemyfinance_api_token = "b8e224ea249c9e01a31ce19d4f92e2baca3d5055a1ce0cf0"
|
6
|
+
equipemyfinance_account_id = 3539
|
7
|
+
Myfinance.client(equipemyfinance_api_token, equipemyfinance_account_id)
|
8
|
+
end
|
9
|
+
let(:resource) { client.sale_accounts }
|
10
|
+
let(:entity_class) { Myfinance::Entities::SaleAccount }
|
11
|
+
let(:collection_class) { Myfinance::Entities::SaleAccountCollection }
|
12
|
+
let(:request_error) { Myfinance::RequestError }
|
13
|
+
let(:entity) { 3703 }
|
14
|
+
let(:sale_account_id) { 7 }
|
15
|
+
|
16
|
+
describe "#find_all" do
|
17
|
+
subject { resource.find_all }
|
18
|
+
|
19
|
+
it "returns a 200 OK response code" do
|
20
|
+
expect(subject.response.code).to eq(200)
|
21
|
+
end
|
22
|
+
|
23
|
+
it "returns a SaleAccounts collection" do
|
24
|
+
expect(subject).to be_a(collection_class)
|
25
|
+
end
|
26
|
+
|
27
|
+
it "returns items as SaleAccount" do
|
28
|
+
expect(subject.collection).to all(be_a(entity_class))
|
29
|
+
end
|
30
|
+
|
31
|
+
context "with invalid arguments" do
|
32
|
+
let(:sale_account_id) { nil }
|
33
|
+
|
34
|
+
it "raises not found error" do
|
35
|
+
expect { subject }.to raise_error(request_error, "Not Found")
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
describe "#find" do
|
41
|
+
subject { resource.find(sale_account_id) }
|
42
|
+
|
43
|
+
it "returns a Sale" do
|
44
|
+
expect(subject).to be_a(entity_class)
|
45
|
+
end
|
46
|
+
|
47
|
+
context "with invalid arguments" do
|
48
|
+
let(:sale_account_id) { nil }
|
49
|
+
|
50
|
+
it "raises not found error with 404" do
|
51
|
+
expect { subject }.to raise_error(request_error, "Not Found")
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
describe "#create" do
|
57
|
+
let(:params) do
|
58
|
+
{
|
59
|
+
provider: "pagseguro",
|
60
|
+
name: "PagSeguro",
|
61
|
+
description: "Conta do PagSeguro",
|
62
|
+
entity_id: entity_id
|
63
|
+
}
|
64
|
+
end
|
65
|
+
|
66
|
+
subject { resource.create(sale_account_id, params) }
|
67
|
+
|
68
|
+
it "creates a Sale" do
|
69
|
+
expect(subject).to be_a(entity_class)
|
70
|
+
end
|
71
|
+
|
72
|
+
context "when given invalid params" do
|
73
|
+
let(:params) do
|
74
|
+
{
|
75
|
+
provider: "amarelinha",
|
76
|
+
}
|
77
|
+
end
|
78
|
+
|
79
|
+
it "returns 422 Unprocessable Entity" do
|
80
|
+
expect { subject }.to raise_error(request_error) do |e|
|
81
|
+
expect(e).to have_attributes(
|
82
|
+
code: 422,
|
83
|
+
message: "Unprocessable Entity"
|
84
|
+
)
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
describe "#update" do
|
91
|
+
let(:params) do
|
92
|
+
{
|
93
|
+
nominal_amount: BigDecimal.new(999),
|
94
|
+
description: "Amarelinha"
|
95
|
+
}
|
96
|
+
end
|
97
|
+
subject { resource.update(sale_account_id, params) }
|
98
|
+
|
99
|
+
it "updates a Sale" do
|
100
|
+
expect(subject).to be_a(entity_class)
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
describe "#destroy" do
|
105
|
+
let(:sale_account_id) { 10 }
|
106
|
+
|
107
|
+
subject { resource.destroy(sale_account_id) }
|
108
|
+
|
109
|
+
it "destroys Sale" do
|
110
|
+
expect(subject).to be_truthy
|
111
|
+
end
|
112
|
+
|
113
|
+
context "when given invalid ID" do
|
114
|
+
let(:sale_account_id) { 171 }
|
115
|
+
|
116
|
+
it "returns 404 Not Found" do
|
117
|
+
expect { subject }.to raise_error(request_error) do |e|
|
118
|
+
expect(e.code).to eq(404)
|
119
|
+
expect(e.message).to eq("Not Found")
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
@@ -0,0 +1,116 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Myfinance::Resources::SaleAccount, vcr: true do
|
4
|
+
let(:client) do
|
5
|
+
equipemyfinance_api_token = "b8e224ea249c9e01a31ce19d4f92e2baca3d5055a1ce0cf0"
|
6
|
+
equipemyfinance_account_id = 3539
|
7
|
+
Myfinance.client(equipemyfinance_api_token, equipemyfinance_account_id)
|
8
|
+
end
|
9
|
+
let(:resource) { client.sale_accounts }
|
10
|
+
let(:entity_class) { Myfinance::Entities::SaleAccount }
|
11
|
+
let(:collection_class) { Myfinance::Entities::SaleAccountCollection }
|
12
|
+
let(:request_error) { Myfinance::RequestError }
|
13
|
+
let(:entity_id) { 3703 }
|
14
|
+
let(:sale_account_id) { 7 }
|
15
|
+
|
16
|
+
describe "#find_all" do
|
17
|
+
subject { resource.find_all }
|
18
|
+
|
19
|
+
it "returns a 200 OK response code" do
|
20
|
+
expect(subject.response.code).to eq(200)
|
21
|
+
end
|
22
|
+
|
23
|
+
it "returns a SaleAccounts collection" do
|
24
|
+
expect(subject).to be_a(collection_class)
|
25
|
+
end
|
26
|
+
|
27
|
+
it "returns items as SaleAccount" do
|
28
|
+
expect(subject.collection).to all(be_a(entity_class))
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
describe "#find" do
|
33
|
+
subject { resource.find(sale_account_id) }
|
34
|
+
|
35
|
+
it "returns a Sale" do
|
36
|
+
expect(subject).to be_a(entity_class)
|
37
|
+
end
|
38
|
+
|
39
|
+
context "with invalid arguments" do
|
40
|
+
let(:sale_account_id) { 0 }
|
41
|
+
|
42
|
+
it "raises not found error with 404" do
|
43
|
+
expect { subject }.to raise_error(request_error, "Not Found")
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe "#create" do
|
49
|
+
let(:params) do
|
50
|
+
{
|
51
|
+
provider: "pagseguro",
|
52
|
+
name: "PagSeguro",
|
53
|
+
description: "Conta do PagSeguro",
|
54
|
+
entity_id: entity_id
|
55
|
+
}
|
56
|
+
end
|
57
|
+
|
58
|
+
subject { resource.create(params) }
|
59
|
+
|
60
|
+
it "creates a Sale" do
|
61
|
+
expect(subject).to be_a(entity_class)
|
62
|
+
end
|
63
|
+
|
64
|
+
context "when given invalid params" do
|
65
|
+
let(:params) do
|
66
|
+
{
|
67
|
+
provider: "amarelinha",
|
68
|
+
}
|
69
|
+
end
|
70
|
+
|
71
|
+
it "returns 422 Unprocessable Entity" do
|
72
|
+
expect { subject }.to raise_error(request_error) do |e|
|
73
|
+
expect(e).to have_attributes(
|
74
|
+
code: 422,
|
75
|
+
message: "Unprocessable Entity"
|
76
|
+
)
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
describe "#update" do
|
83
|
+
let(:params) do
|
84
|
+
{
|
85
|
+
nominal_amount: BigDecimal.new(999),
|
86
|
+
description: "Amarelinha"
|
87
|
+
}
|
88
|
+
end
|
89
|
+
subject { resource.update(sale_account_id, params) }
|
90
|
+
|
91
|
+
it "updates a Sale" do
|
92
|
+
expect(subject).to be_a(entity_class)
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
describe "#destroy" do
|
97
|
+
let(:sale_account_id) { 10 }
|
98
|
+
|
99
|
+
subject { resource.destroy(sale_account_id) }
|
100
|
+
|
101
|
+
it "destroys Sale" do
|
102
|
+
expect(subject).to be_truthy
|
103
|
+
end
|
104
|
+
|
105
|
+
context "when given invalid ID" do
|
106
|
+
let(:sale_account_id) { 171 }
|
107
|
+
|
108
|
+
it "returns 404 Not Found" do
|
109
|
+
expect { subject }.to raise_error(request_error) do |e|
|
110
|
+
expect(e.code).to eq(404)
|
111
|
+
expect(e.message).to eq("Not Found")
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
@@ -0,0 +1,126 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Myfinance::Resources::SaleRule, vcr: true do
|
4
|
+
let(:client) do
|
5
|
+
equipemyfinance_api_token = "b8e224ea249c9e01a31ce19d4f92e2baca3d5055a1ce0cf0"
|
6
|
+
equipemyfinance_account_id = 3539
|
7
|
+
Myfinance.client(equipemyfinance_api_token, equipemyfinance_account_id)
|
8
|
+
end
|
9
|
+
let(:resource) { client.sale_rules }
|
10
|
+
let(:entity_class) { Myfinance::Entities::SaleRule }
|
11
|
+
let(:collection_class) { Myfinance::Entities::SaleRuleCollection }
|
12
|
+
let(:request_error) { Myfinance::RequestError }
|
13
|
+
let(:sale_account_id) { 7 }
|
14
|
+
let(:sale_rule_id) { 6 }
|
15
|
+
|
16
|
+
describe "#find_all" do
|
17
|
+
subject { resource.find_all(sale_account_id) }
|
18
|
+
|
19
|
+
it "returns a 200 OK response code" do
|
20
|
+
expect(subject.response.code).to eq(200)
|
21
|
+
end
|
22
|
+
|
23
|
+
it "returns a SaleRule collection" do
|
24
|
+
expect(subject).to be_a(collection_class)
|
25
|
+
end
|
26
|
+
|
27
|
+
it "returns items as SaleRule" do
|
28
|
+
expect(subject.collection).to all(be_a(entity_class))
|
29
|
+
end
|
30
|
+
|
31
|
+
context "with invalid arguments" do
|
32
|
+
let(:sale_account_id) { nil }
|
33
|
+
|
34
|
+
it "raises not found error" do
|
35
|
+
expect { subject }.to raise_error(request_error, "Not Found")
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
describe "#find" do
|
41
|
+
subject { resource.find(sale_account_id, sale_rule_id) }
|
42
|
+
|
43
|
+
it "returns a SaleRule" do
|
44
|
+
expect(subject).to be_a(entity_class)
|
45
|
+
end
|
46
|
+
|
47
|
+
context "with invalid arguments" do
|
48
|
+
let(:sale_account_id) { nil }
|
49
|
+
|
50
|
+
it "raises not found error with 404" do
|
51
|
+
expect { subject }.to raise_error(request_error, "Not Found")
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
describe "#create" do
|
57
|
+
let(:params) do
|
58
|
+
{
|
59
|
+
payment_method: "debit",
|
60
|
+
issuer: "visa",
|
61
|
+
fee_percentage: 1.0,
|
62
|
+
sale_account_id: sale_account_id
|
63
|
+
}
|
64
|
+
end
|
65
|
+
|
66
|
+
subject { resource.create(sale_account_id, params) }
|
67
|
+
|
68
|
+
it "creates a SaleRule" do
|
69
|
+
expect(subject).to be_a(entity_class)
|
70
|
+
end
|
71
|
+
|
72
|
+
context "when given invalid params" do
|
73
|
+
let(:params) do
|
74
|
+
{
|
75
|
+
amount: BigDecimal.new(199),
|
76
|
+
description: "O Guia"
|
77
|
+
}
|
78
|
+
end
|
79
|
+
|
80
|
+
it "returns 422 Unprocessable Entity" do
|
81
|
+
expect { subject }.to raise_error(request_error) do |e|
|
82
|
+
expect(e).to have_attributes(
|
83
|
+
code: 422,
|
84
|
+
message: "Unprocessable Entity"
|
85
|
+
)
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
describe "#update" do
|
92
|
+
let(:params) do
|
93
|
+
{
|
94
|
+
payment_method: "credit",
|
95
|
+
issuer: "visa",
|
96
|
+
sale_account_id: sale_account_id
|
97
|
+
}
|
98
|
+
end
|
99
|
+
subject { resource.update(sale_account_id, sale_rule_id, params) }
|
100
|
+
|
101
|
+
it "updates a SaleRule" do
|
102
|
+
expect(subject).to be_a(entity_class)
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
describe "#destroy" do
|
107
|
+
let(:sale_rule_id) { 12 }
|
108
|
+
|
109
|
+
subject { resource.destroy(sale_account_id, sale_rule_id) }
|
110
|
+
|
111
|
+
it "destroys SaleRule" do
|
112
|
+
expect(subject).to be_truthy
|
113
|
+
end
|
114
|
+
|
115
|
+
context "when given invalid ID" do
|
116
|
+
let(:sale_rule_id) { 171 }
|
117
|
+
|
118
|
+
it "returns 404 Not Found" do
|
119
|
+
expect { subject }.to raise_error(request_error) do |e|
|
120
|
+
expect(e.code).to eq(404)
|
121
|
+
expect(e.message).to eq("Not Found")
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
125
|
+
end
|
126
|
+
end
|
@@ -0,0 +1,126 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Myfinance::Resources::Sale, vcr: true do
|
4
|
+
let(:client) do
|
5
|
+
equipemyfinance_api_token = "b8e224ea249c9e01a31ce19d4f92e2baca3d5055a1ce0cf0"
|
6
|
+
equipemyfinance_account_id = 3539
|
7
|
+
Myfinance.client(equipemyfinance_api_token, equipemyfinance_account_id)
|
8
|
+
end
|
9
|
+
let(:resource) { client.sales }
|
10
|
+
let(:entity_class) { Myfinance::Entities::Sale }
|
11
|
+
let(:collection_class) { Myfinance::Entities::SaleCollection }
|
12
|
+
let(:request_error) { Myfinance::RequestError }
|
13
|
+
let(:entity_id) { 3703 }
|
14
|
+
let(:sale_id) { 8 }
|
15
|
+
let(:sale_account_id) { 7 }
|
16
|
+
|
17
|
+
describe "#find_all" do
|
18
|
+
subject { resource.find_all(entity_id) }
|
19
|
+
|
20
|
+
it "returns a 200 OK response code" do
|
21
|
+
expect(subject.response.code).to eq(200)
|
22
|
+
end
|
23
|
+
|
24
|
+
it "returns a Sales collection" do
|
25
|
+
expect(subject).to be_a(collection_class)
|
26
|
+
end
|
27
|
+
|
28
|
+
it "returns items as Sale" do
|
29
|
+
expect(subject.collection).to all(be_a(entity_class))
|
30
|
+
end
|
31
|
+
|
32
|
+
context "with invalid arguments" do
|
33
|
+
let(:entity_id) { nil }
|
34
|
+
|
35
|
+
it "raises not found error" do
|
36
|
+
expect { subject }.to raise_error(request_error, "Not Found")
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
describe "#find" do
|
42
|
+
subject { resource.find(entity_id, 8) }
|
43
|
+
|
44
|
+
it "returns a Sale" do
|
45
|
+
expect(subject).to be_a(entity_class)
|
46
|
+
end
|
47
|
+
|
48
|
+
context "with invalid arguments" do
|
49
|
+
let(:entity_id) { nil }
|
50
|
+
|
51
|
+
it "raises not found error with 404" do
|
52
|
+
expect { subject }.to raise_error(request_error, "Not Found")
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
describe "#create" do
|
58
|
+
let(:params) do
|
59
|
+
{
|
60
|
+
nominal_amount: BigDecimal.new(199),
|
61
|
+
payment_method: "cash",
|
62
|
+
occurred_at: Date.new(2017, 1, 1), description: "O Guia",
|
63
|
+
sale_account_id: sale_account_id
|
64
|
+
}
|
65
|
+
end
|
66
|
+
|
67
|
+
subject { resource.create(entity_id, params) }
|
68
|
+
|
69
|
+
it "creates a Sale" do
|
70
|
+
expect(subject).to be_a(entity_class)
|
71
|
+
end
|
72
|
+
|
73
|
+
context "when given invalid params" do
|
74
|
+
let(:params) do
|
75
|
+
{
|
76
|
+
amount: BigDecimal.new(199),
|
77
|
+
description: "O Guia"
|
78
|
+
}
|
79
|
+
end
|
80
|
+
|
81
|
+
it "returns 422 Unprocessable Entity" do
|
82
|
+
expect { subject }.to raise_error(request_error) do |e|
|
83
|
+
expect(e).to have_attributes(
|
84
|
+
code: 422,
|
85
|
+
message: "Unprocessable Entity"
|
86
|
+
)
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
describe "#update" do
|
93
|
+
let(:params) do
|
94
|
+
{
|
95
|
+
nominal_amount: BigDecimal.new(999),
|
96
|
+
description: "O Guia Vol. II"
|
97
|
+
}
|
98
|
+
end
|
99
|
+
subject { resource.update(entity_id, sale_id, params) }
|
100
|
+
|
101
|
+
it "updates a Sale" do
|
102
|
+
expect(subject).to be_a(entity_class)
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
describe "#destroy" do
|
107
|
+
let(:sale_id) { 17 }
|
108
|
+
|
109
|
+
subject { resource.destroy(entity_id, sale_id) }
|
110
|
+
|
111
|
+
it "destroys Sale" do
|
112
|
+
expect(subject).to be_truthy
|
113
|
+
end
|
114
|
+
|
115
|
+
context "when given invalid ID" do
|
116
|
+
let(:sale_id) { 171 }
|
117
|
+
|
118
|
+
it "returns 404 Not Found" do
|
119
|
+
expect { subject }.to raise_error(request_error) do |e|
|
120
|
+
expect(e.code).to eq(404)
|
121
|
+
expect(e.message).to eq("Not Found")
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
125
|
+
end
|
126
|
+
end
|