tsubaiso-sdk 1.2.6 → 1.2.7

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.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +3 -2
  3. data/lib/tsubaiso_sdk.rb +550 -118
  4. data/test/stubbings/stub_register.rb +196 -0
  5. data/test/tsubaiso_sdk/common_setup_and_teardown.rb +23 -0
  6. data/test/tsubaiso_sdk/test_ap_reason_masters.rb +26 -0
  7. data/test/tsubaiso_sdk/test_api_history.rb +27 -0
  8. data/test/tsubaiso_sdk/test_ar_reason_masters.rb +26 -0
  9. data/test/tsubaiso_sdk/test_bank_account.rb +34 -0
  10. data/test/tsubaiso_sdk/test_bank_account_master.rb +119 -0
  11. data/test/tsubaiso_sdk/test_bank_account_transaction.rb +61 -0
  12. data/test/tsubaiso_sdk/test_bank_reason_master.rb +90 -0
  13. data/test/tsubaiso_sdk/test_bonus.rb +26 -0
  14. data/test/tsubaiso_sdk/test_bulk_scheduled_dates.rb +24 -0
  15. data/test/tsubaiso_sdk/test_corporate_master.rb +27 -0
  16. data/test/tsubaiso_sdk/test_customer.rb +71 -0
  17. data/test/tsubaiso_sdk/test_dept.rb +66 -0
  18. data/test/tsubaiso_sdk/test_fixed_assets.rb +18 -0
  19. data/test/tsubaiso_sdk/test_journal.rb +53 -0
  20. data/test/tsubaiso_sdk/test_journal_distribution.rb +29 -0
  21. data/test/tsubaiso_sdk/test_manual_journal.rb +84 -0
  22. data/test/tsubaiso_sdk/test_payrolles.rb +26 -0
  23. data/test/tsubaiso_sdk/test_petty_cash_reason_master.rb +72 -0
  24. data/test/tsubaiso_sdk/test_physical_inventory_master.rb +84 -0
  25. data/test/tsubaiso_sdk/test_purchase.rb +120 -0
  26. data/test/tsubaiso_sdk/test_reimbursement_reason_master.rb +27 -0
  27. data/test/tsubaiso_sdk/test_reimbursements.rb +63 -0
  28. data/test/tsubaiso_sdk/test_reimbursements_transactions.rb +75 -0
  29. data/test/tsubaiso_sdk/test_sale.rb +125 -0
  30. data/test/tsubaiso_sdk/test_scheduled_dates.rb +16 -0
  31. data/test/tsubaiso_sdk/test_staff.rb +26 -0
  32. data/test/tsubaiso_sdk/test_staff_data.rb +71 -0
  33. data/test/tsubaiso_sdk/test_staff_datum_master.rb +37 -0
  34. data/test/tsubaiso_sdk/test_tag.rb +53 -0
  35. data/test/tsubaiso_sdk/test_tax_master.rb +25 -0
  36. metadata +35 -5
  37. data/test/test_tsubaiso_sdk.rb +0 -964
@@ -0,0 +1,63 @@
1
+ require 'minitest/autorun'
2
+ require_relative './common_setup_and_teardown.rb'
3
+
4
+ class ReimbursementsTest < Minitest::Test
5
+ include CommonSetupAndTeardown
6
+
7
+ def setup
8
+ @reimbursement_1 = {
9
+ applicant: 'Irfan',
10
+ application_term: '2016-03-01',
11
+ staff_code: 'EP2000',
12
+ memo: 'aaaaaaaa'
13
+ }
14
+
15
+ @reimbursement_2 = {
16
+ applicant: 'Matsuno',
17
+ application_term: '2016-03-01',
18
+ staff_code: 'EP2000',
19
+ memo: 'aaaaaaaa'
20
+ }
21
+ super("reimbursements")
22
+ end
23
+
24
+ def test_list_reimbursements
25
+ reimbursement_a = @api.create_reimbursement(@reimbursement_1)
26
+ reimbursement_b = @api.create_reimbursement(@reimbursement_2)
27
+
28
+ reimbursement_a_id = reimbursement_a[:json][:id]
29
+ reimbursement_b_id = reimbursement_b[:json][:id]
30
+
31
+ reimbursements_list = @api.list_reimbursements(2016, 3)
32
+ assert_equal 200, reimbursements_list[:status].to_i, reimbursements_list.inspect
33
+ assert(reimbursements_list[:json].any? { |x| x[:id] == reimbursement_a_id })
34
+ assert(reimbursements_list[:json].any? { |x| x[:id] == reimbursement_b_id })
35
+ end
36
+
37
+ def test_show_reimbursement
38
+ reimbursement = @api.create_reimbursement(@reimbursement_1)
39
+ reimbursement = @api.show_reimbursement(reimbursement[:json][:id])
40
+
41
+ assert_equal 200, reimbursement[:status].to_i, reimbursement.inspect
42
+ assert_equal @reimbursement_1[:applicant], reimbursement[:json][:applicant]
43
+ end
44
+
45
+ def test_update_reimbursement
46
+ reimbursement = @api.create_reimbursement(@reimbursement_1)
47
+ options = {
48
+ applicant: 'test',
49
+ dept_code: 'COMMON'
50
+ }
51
+ updated_reimbursement = @api.update_reimbursement(reimbursement[:json][:id], options)
52
+ assert_equal 200, updated_reimbursement[:status].to_i, updated_reimbursement.inspect
53
+ assert_equal options[:applicant], updated_reimbursement[:json][:applicant]
54
+ assert_equal options[:dept_code], updated_reimbursement[:json][:dept_code]
55
+ end
56
+
57
+ def test_create_reimbursement
58
+ reimbursement = @api.create_reimbursement(@reimbursement_1)
59
+ assert_equal 200, reimbursement[:status].to_i, reimbursement.inspect
60
+ assert_equal @reimbursement_1[:applicant], reimbursement[:json][:applicant]
61
+ end
62
+
63
+ end
@@ -0,0 +1,75 @@
1
+ require 'minitest/autorun'
2
+ require_relative './common_setup_and_teardown.rb'
3
+
4
+ class ReimbursementsTransactionsTest < Minitest::Test
5
+ include CommonSetupAndTeardown
6
+
7
+ def setup
8
+ @reimbursement_tx_1 = {
9
+ transaction_timestamp: '2016-03-01',
10
+ price_value: 10_000,
11
+ dc: 'c',
12
+ tax_type: 'tax',
13
+ reason_code: 'SUPPLIES',
14
+ brief: 'everyting going well',
15
+ memo: 'easy',
16
+ data_partner: { link_url: 'www.example.com/5', id_code: '5' }
17
+ }
18
+
19
+ @reimbursement_tx_2 = {
20
+ transaction_timestamp: '2016-03-01',
21
+ price_value: 20_000,
22
+ dc: 'c',
23
+ tax_type: 'tax',
24
+ reason_code: 'SUPPLIES',
25
+ brief: 'not well',
26
+ memo: 'hard',
27
+ data_partner: { link_url: 'www.example.com/6', id_code: '6' }
28
+ }
29
+
30
+ super("reimbursement_transactions")
31
+ end
32
+
33
+ def test_create_reimbursement_transaction
34
+ options = @reimbursement_tx_1.merge({ :reimbursement_id => 300 })
35
+ reimbursement_transaction = @api.create_reimbursement_transaction(options)
36
+ assert_equal 200, reimbursement_transaction[:status].to_i, reimbursement_transaction.inspect
37
+ assert_equal @reimbursement_tx_1[:price_value], reimbursement_transaction[:json][:price_value]
38
+ assert_equal @reimbursement_tx_1[:data_partner][:id_code], reimbursement_transaction[:json][:data_partner][:id_code]
39
+ end
40
+
41
+ def test_update_reimbursement_transaction
42
+ options = @reimbursement_tx_1.merge({ :reimbursement_id => 300 })
43
+ reimbursement_transaction = @api.create_reimbursement_transaction(options)
44
+ updates = { :id => reimbursement_transaction[:json][:id], :price_value => 9999, :reason_code => 'SUPPLIES', :data_partner => { :id_code => '500' } }
45
+
46
+ updated_reimbursement_transaction = @api.update_reimbursement_transaction(updates)
47
+ assert_equal 200, updated_reimbursement_transaction[:status].to_i, updated_reimbursement_transaction.inspect
48
+ assert_equal updates[:id].to_i, updated_reimbursement_transaction[:json][:id].to_i
49
+ assert_equal updates[:price_value].to_i, updated_reimbursement_transaction[:json][:price_value].to_i
50
+ assert_equal updates[:reason_code], updated_reimbursement_transaction[:json][:reason_code]
51
+ assert_equal updates[:data_partner][:id_code], updated_reimbursement_transaction[:json][:data_partner][:id_code]
52
+ end
53
+
54
+ def test_list_reimbursement_transactions
55
+ options = { :reimbursement_id => 300 }
56
+ reimbursement_transaction_1 = @api.create_reimbursement_transaction(@reimbursement_tx_1.merge(options))
57
+ reimbursement_transaction_2 = @api.create_reimbursement_transaction(@reimbursement_tx_2.merge(options))
58
+
59
+ reimbursement_transactions = @api.list_reimbursement_transactions(300)
60
+ assert_equal 200, reimbursement_transactions[:status].to_i, reimbursement_transactions.inspect
61
+ assert(reimbursement_transactions[:json].any? { |x| x[:id] == reimbursement_transaction_1[:json][:id] })
62
+ assert(reimbursement_transactions[:json].any? { |x| x[:id] == reimbursement_transaction_2[:json][:id] })
63
+ end
64
+
65
+ def test_show_reimbursement_transaction
66
+ options = { :reimbursement_id => 300 }
67
+ reimbursement_transaction = @api.create_reimbursement_transaction(@reimbursement_tx_1.merge(options))
68
+ reimbursement_transaction = @api.show_reimbursement_transaction(reimbursement_transaction[:json][:id])
69
+
70
+ assert_equal 200, reimbursement_transaction[:status].to_i, reimbursement_transaction.inspect
71
+ assert_equal options[:reimbursement_id], reimbursement_transaction[:json][:reimbursement_id]
72
+ end
73
+
74
+
75
+ end
@@ -0,0 +1,125 @@
1
+ require 'minitest/autorun'
2
+ require_relative './common_setup_and_teardown.rb'
3
+
4
+ class SaleTest < Minitest::Test
5
+ include CommonSetupAndTeardown
6
+
7
+ def setup
8
+ @sale_201608 = {
9
+ price_including_tax: 10_800,
10
+ realization_timestamp: '2016-08-01',
11
+ customer_master_code: '101',
12
+ dept_code: 'SETSURITSU',
13
+ reason_master_code: 'SALES',
14
+ dc: 'd',
15
+ memo: '',
16
+ tax_code: 1007,
17
+ scheduled_memo: 'This is a scheduled memo.',
18
+ scheduled_receive_timestamp: '2016-09-25',
19
+ data_partner: { link_url: 'www.example.com/1', id_code: '1', partner_code: 'Example' }
20
+ }
21
+
22
+ @sale_201609 = {
23
+ price_including_tax: 10_800,
24
+ realization_timestamp: '2016-09-01',
25
+ customer_master_code: '101',
26
+ dept_code: 'SETSURITSU',
27
+ reason_master_code: 'SALES',
28
+ dc: 'd',
29
+ memo: '',
30
+ tax_code: 1007,
31
+ scheduled_memo: 'This is a scheduled memo.',
32
+ scheduled_receive_timestamp: '2016-09-25',
33
+ data_partner: { link_url: 'www.example.com/2', id_code: '2' }
34
+ }
35
+
36
+ @sale_201702 = {
37
+ price_including_tax: 10_800,
38
+ realization_timestamp: '2017-02-28',
39
+ customer_master_code: '105',
40
+ reason_master_code: 'SALES',
41
+ dc: 'd',
42
+ memo: '',
43
+ tax_code: 18,
44
+ scheduled_memo: 'This is a scheduled memo.',
45
+ scheduled_receive_timestamp: '2017-03-25',
46
+ data_partner: { link_url: 'www.example.com/8', id_code: '8' }
47
+ }
48
+ super("ar")
49
+ end
50
+
51
+ def test_create_sale
52
+ sale = @api.create_sale(@sale_201608)
53
+
54
+ assert_equal 200, sale[:status].to_i, sale.inspect
55
+ assert_equal @sale_201608[:dept_code], sale[:json][:dept_code]
56
+ assert_equal @sale_201608[:data_partner][:id_code], sale[:json][:data_partner][:id_code]
57
+ assert_equal @sale_201608[:data_partner][:link_url], sale[:json][:data_partner][:link_url]
58
+ end
59
+
60
+ def test_list_sales
61
+ august_sale_a = @api.create_sale(@sale_201608)
62
+ feb_sale = @api.create_sale(@sale_201702)
63
+ september_sale = @api.create_sale(@sale_201609)
64
+
65
+ august_sale_a_id = august_sale_a[:json][:id]
66
+ feb_sale_id = feb_sale[:json][:id]
67
+ september_sale_id = september_sale[:json][:id]
68
+
69
+ sales_list = @api.list_sales(2016, 8)
70
+ assert_equal 200, sales_list[:status].to_i, sales_list.inspect
71
+ assert sales_list[:json].size == 1
72
+
73
+ assert(sales_list[:json].any? { |x| x[:id] == august_sale_a_id })
74
+ assert(sales_list[:json].none? { |x| x[:id] == feb_sale_id })
75
+ assert(sales_list[:json].none? { |x| x[:id] == september_sale_id })
76
+ end
77
+
78
+ def test_update_sale
79
+ sale = @api.create_sale(@sale_201608)
80
+ options = {
81
+ id: sale[:json][:id].to_i,
82
+ price_including_tax: 25_000,
83
+ memo: 'Updated memo',
84
+ data_partner: { id_code: "100" }
85
+ }
86
+
87
+ updated_sale = @api.update_sale(options)
88
+ assert_equal 200, updated_sale[:status].to_i, updated_sale[:json]
89
+ assert_equal options[:id], updated_sale[:json][:id]
90
+ assert_equal options[:memo], updated_sale[:json][:memo]
91
+ assert_equal options[:price_including_tax], updated_sale[:json][:price_including_tax]
92
+ assert_equal options[:data_partner][:id_code], updated_sale[:json][:data_partner][:id_code]
93
+ end
94
+
95
+ def test_find_or_create_sale
96
+ with_key = @sale_201608.merge!({:key => { "id_code" => "1", "partner_code" => "Example"}})
97
+ sale1 = @api.find_or_create_sale(with_key)
98
+
99
+ assert_equal 200, sale1[:status].to_i, sale1.inspect
100
+ assert_equal @sale_201608[:dept_code], sale1[:json][:dept_code]
101
+ assert_equal @sale_201608[:data_partner][:id_code], sale1[:json][:data_partner][:id_code]
102
+ assert_equal @sale_201608[:data_partner][:partner_code], sale1[:json][:data_partner][:partner_code]
103
+
104
+ key_options = { key: { id_code: sale1[:json][:data_partner][:id_code], partner_code: sale1[:json][:data_partner][:partner_code] } }
105
+ sale2 = @api.find_or_create_sale(@sale_201608.merge(key_options))
106
+ assert_equal sale2[:json][:id], sale1[:json][:id]
107
+ assert_equal sale2[:json][:data_partner][:id_code], sale1[:json][:data_partner][:id_code]
108
+ end
109
+
110
+ def test_list_sales_and_account_balances
111
+ # Without customer_master_code and ar_segment option parameters
112
+ balance_lists = @api.list_sales_and_account_balances(2019, 12)
113
+ assert_equal 200, balance_lists[:status].to_i, balance_lists.inspect
114
+ assert_equal 3, balance_lists[:json].size
115
+
116
+ # With customer_master_id option parameters
117
+ balance_list_with_opts = @api.list_sales_and_account_balances(2019, 12,
118
+ :customer_master_id => 101)
119
+
120
+ assert_equal 200, balance_list_with_opts[:status].to_i, balance_list_with_opts.inspect
121
+ assert_equal 2, balance_list_with_opts[:json].size
122
+ assert(balance_list_with_opts[:json].all? { |x| x[:customer_master_code] == "101"})
123
+ end
124
+
125
+ end
@@ -0,0 +1,16 @@
1
+ require 'minitest/autorun'
2
+ require_relative './common_setup_and_teardown.rb'
3
+
4
+ class ScheduledDatesTest < Minitest::Test
5
+ include CommonSetupAndTeardown
6
+
7
+ def setup
8
+ super('scheduled_dates')
9
+ end
10
+
11
+ def test_calc_scheduled_dates
12
+ response = @api.scheduled_date('2019-01-02', '1m10', '5', 'before')
13
+ assert_equal '200', response[:status]
14
+ assert_equal '2019-01-10', response[:json][:scheduled_date]
15
+ end
16
+ end
@@ -0,0 +1,26 @@
1
+ require 'minitest/autorun'
2
+ require_relative './common_setup_and_teardown.rb'
3
+
4
+ class StaffTest < Minitest::Test
5
+ include CommonSetupAndTeardown
6
+
7
+ def setup
8
+ super("staffs")
9
+ end
10
+
11
+ def test_show_staff
12
+ staff_list = @api.list_staff
13
+ first_staff_id = staff_list[:json].first[:id]
14
+
15
+ get_staff_member = @api.show_staff(first_staff_id)
16
+ assert_equal 200, get_staff_member[:status].to_i, get_staff_member.inspect
17
+ assert_equal first_staff_id, get_staff_member[:json][:id]
18
+ end
19
+
20
+ def test_list_staff
21
+ staff_list = @api.list_staff
22
+ assert_equal 200, staff_list[:status].to_i, staff_list.inspect
23
+ assert !staff_list.empty?
24
+ end
25
+
26
+ end
@@ -0,0 +1,71 @@
1
+ require 'minitest/autorun'
2
+ require_relative './common_setup_and_teardown.rb'
3
+
4
+ class StaffDataTest < Minitest::Test
5
+ include CommonSetupAndTeardown
6
+
7
+ def setup
8
+ @staff_data_1 = {
9
+ staff_id: 300,
10
+ code: 'QUALIFICATION',
11
+ value: 'TOEIC',
12
+ start_timestamp: '2016-01-01',
13
+ no_finish_timestamp: '1',
14
+ memo: 'First memo'
15
+ }
16
+ super("staff_data")
17
+ end
18
+
19
+ def test_create_staff_data
20
+ # NOTE : So far Tsubaiso SDK does not support create new staff.
21
+ # NOTE : This test assume that staff who has id: 300 is exist.
22
+ staff_data = @api.create_staff_data(@staff_data_1)
23
+ assert_equal 200, staff_data[:status].to_i, staff_data.inspect
24
+ @staff_data_1.each_pair do |key, val|
25
+ assert staff_data[:json][key] != nil, "#{key} not found."
26
+ assert_equal val, staff_data[:json][key], "col :#{key}, #{val} was expected but #{staff_data[:json][key]} was found."
27
+ end
28
+ end
29
+
30
+ def test_show_staff_data
31
+ staff_data = @api.create_staff_data(@staff_data_1)
32
+
33
+ # get data using id (of data)
34
+ get_staff_data = @api.show_staff_data(staff_data[:json][:id].to_i)
35
+ assert_equal 200, get_staff_data[:status].to_i, get_staff_data.inspect
36
+ assert_equal staff_data[:json][:id], get_staff_data[:json][:id]
37
+
38
+ options = {
39
+ staff_id: staff_data[:json][:staff_id],
40
+ code: staff_data[:json][:code],
41
+ time: staff_data[:json][:start_timestamp]
42
+ }
43
+
44
+ # get data using staff id and code (packed in Hash)
45
+ get_staff_data_2 = @api.show_staff_data(options)
46
+ assert_equal 200, get_staff_data_2[:status].to_i, get_staff_data.inspect
47
+ assert_equal staff_data[:json][:id], get_staff_data_2[:json][:id]
48
+ end
49
+
50
+
51
+ def test_list_staff_data
52
+ staff_data = @api.list_staff_data(@staff_data_1[:staff_id])
53
+ assert_equal 200, staff_data[:status].to_i, staff_data.inspect
54
+ @staff_data_1.each_pair do |key, val|
55
+ assert staff_data[:json][0][key] != nil, "#{key} not found."
56
+ assert_equal val, staff_data[:json][0][key], "col :#{key}, #{val} was expected but #{staff_data[:json][0][key]} was found."
57
+ end
58
+ end
59
+
60
+ def test_update_staff_data
61
+ options = {
62
+ staff_id: 0,
63
+ value: 'Programmer'
64
+ }
65
+
66
+ updated_staff_data = @api.update_staff_data(options)
67
+ assert_equal 200, updated_staff_data[:status].to_i, updated_staff_data.inspect
68
+ assert_equal options[:staff_id], updated_staff_data[:json][:id].to_i
69
+ assert_equal 'Programmer', updated_staff_data[:json][:value]
70
+ end
71
+ end
@@ -0,0 +1,37 @@
1
+ require 'minitest/autorun'
2
+ require_relative './common_setup_and_teardown.rb'
3
+
4
+ class StaffDatumMasterTest < Minitest::Test
5
+ include CommonSetupAndTeardown
6
+
7
+ def setup
8
+ super("staff_datum_masters")
9
+ end
10
+
11
+ def test_show_staff_datum_master
12
+ staff_datum_masters_list = @api.list_staff_datum_masters
13
+ first_staff_datum_master_id = staff_datum_masters_list[:json].first[:id]
14
+
15
+ get_staff_datum_master = @api.show_staff_datum_master(first_staff_datum_master_id)
16
+ assert_equal 200, get_staff_datum_master[:status].to_i, get_staff_datum_master.inspect
17
+ assert_equal first_staff_datum_master_id, get_staff_datum_master[:json][:id]
18
+ end
19
+
20
+ def test_show_staff_datum_master_by_code
21
+ staff_datum_masters_list = @api.list_staff_datum_masters
22
+ first_staff_datum_master_code = staff_datum_masters_list[:json].first[:code]
23
+
24
+ options = { code: first_staff_datum_master_code }
25
+
26
+ # get data using code
27
+ get_staff_data_2 = @api.show_staff_datum_master(options)
28
+ assert_equal 200, get_staff_data_2[:status].to_i, get_staff_data_2.inspect
29
+ assert_equal first_staff_datum_master_code, get_staff_data_2[:json][:code]
30
+ end
31
+
32
+ def test_list_staff_datum_masters
33
+ staff_datum_masters_list = @api.list_staff_datum_masters
34
+ assert_equal 200, staff_datum_masters_list[:status].to_i, staff_datum_masters_list.inspect
35
+ assert !staff_datum_masters_list.empty?
36
+ end
37
+ end
@@ -0,0 +1,53 @@
1
+ require 'minitest/autorun'
2
+ require_relative './common_setup_and_teardown.rb'
3
+
4
+ class TagsTest < Minitest::Test
5
+ include CommonSetupAndTeardown
6
+
7
+ def setup
8
+ @tag_1 = {
9
+ code: 'test_code',
10
+ name: 'テストタグ',
11
+ sort_no: 10_000,
12
+ tag_group_code: 'DEFAULT',
13
+ start_ymd: '2016-01-01',
14
+ finish_ymd: '2016-12-31'
15
+ }
16
+ super("tags")
17
+ end
18
+
19
+ def test_create_tag
20
+ tag = @api.create_tag(@tag_1)
21
+ assert_equal 200, tag[:status].to_i, tag.inspect
22
+ assert_equal @tag_1[:code], tag[:json][:code]
23
+ end
24
+
25
+ def test_update_tag
26
+ tag = @api.create_tag(@tag_1)
27
+ assert tag[:json][:id], tag
28
+ options = {
29
+ name: '更新タグ'
30
+ }
31
+
32
+ updated_tag = @api.update_tag(tag[:json][:id], options)
33
+ assert_equal 200, updated_tag[:status].to_i, updated_tag.inspect
34
+ assert_equal options[:name], updated_tag[:json][:name]
35
+ end
36
+
37
+ def test_list_tags
38
+ tag = @api.create_tag(@tag_1)
39
+
40
+ tags = @api.list_tags
41
+ assert_equal 200, tags[:status].to_i, tags.inspect
42
+ assert(tags[:json][@tag_1[:tag_group_code].to_sym].any? { |x| x[:id] == tag[:json][:id] })
43
+ end
44
+
45
+ def test_show_tag
46
+ tag = @api.create_tag(@tag_1)
47
+ tag = @api.show_tag(tag[:json][:id])
48
+
49
+ assert_equal 200, tag[:status].to_i, tag.inspect
50
+ assert_equal @tag_1[:name], tag[:json][:name]
51
+ end
52
+
53
+ end