tsubaiso-sdk 1.2.1 → 1.2.8

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 (39) hide show
  1. checksums.yaml +5 -5
  2. data/Rakefile +4 -3
  3. data/lib/tsubaiso_api.rb +67 -0
  4. data/lib/tsubaiso_sdk.rb +1511 -384
  5. data/sample.rb +120 -33
  6. data/test/stubbings/stub_register.rb +196 -0
  7. data/test/test_tsubaiso_api.rb +149 -0
  8. data/test/tsubaiso_sdk/common_setup_and_teardown.rb +23 -0
  9. data/test/tsubaiso_sdk/test_ap_reason_masters.rb +26 -0
  10. data/test/tsubaiso_sdk/test_api_history.rb +27 -0
  11. data/test/tsubaiso_sdk/test_ar_reason_masters.rb +26 -0
  12. data/test/tsubaiso_sdk/test_bank_account.rb +34 -0
  13. data/test/tsubaiso_sdk/test_bank_account_master.rb +119 -0
  14. data/test/tsubaiso_sdk/test_bank_account_transaction.rb +61 -0
  15. data/test/tsubaiso_sdk/test_bank_reason_master.rb +90 -0
  16. data/test/tsubaiso_sdk/test_bonus.rb +26 -0
  17. data/test/tsubaiso_sdk/test_corporate_master.rb +27 -0
  18. data/test/tsubaiso_sdk/test_customer.rb +71 -0
  19. data/test/tsubaiso_sdk/test_dept.rb +66 -0
  20. data/test/tsubaiso_sdk/test_fixed_assets.rb +18 -0
  21. data/test/tsubaiso_sdk/test_journal.rb +53 -0
  22. data/test/tsubaiso_sdk/test_journal_distribution.rb +29 -0
  23. data/test/tsubaiso_sdk/test_manual_journal.rb +84 -0
  24. data/test/tsubaiso_sdk/test_payrolles.rb +26 -0
  25. data/test/tsubaiso_sdk/test_petty_cash_reason_master.rb +72 -0
  26. data/test/tsubaiso_sdk/test_physical_inventory_master.rb +84 -0
  27. data/test/tsubaiso_sdk/test_purchase.rb +120 -0
  28. data/test/tsubaiso_sdk/test_reimbursement_reason_master.rb +27 -0
  29. data/test/tsubaiso_sdk/test_reimbursements.rb +90 -0
  30. data/test/tsubaiso_sdk/test_reimbursements_transactions.rb +75 -0
  31. data/test/tsubaiso_sdk/test_sale.rb +125 -0
  32. data/test/tsubaiso_sdk/test_scheduled_dates.rb +16 -0
  33. data/test/tsubaiso_sdk/test_staff.rb +26 -0
  34. data/test/tsubaiso_sdk/test_staff_data.rb +71 -0
  35. data/test/tsubaiso_sdk/test_staff_datum_master.rb +37 -0
  36. data/test/tsubaiso_sdk/test_tag.rb +53 -0
  37. data/test/tsubaiso_sdk/test_tax_master.rb +25 -0
  38. metadata +37 -6
  39. data/test/test_tsubaiso_sdk.rb +0 -807
@@ -0,0 +1,23 @@
1
+ module CommonSetupAndTeardown
2
+ require 'time'
3
+ require_relative '../../lib/tsubaiso_sdk'
4
+ require_relative '../stubbings/stub_register.rb'
5
+
6
+ include WebMock::API
7
+
8
+ def setup(resouce)
9
+ WebMock.enable!
10
+ WebMock.disable_net_connect!
11
+ @api = TsubaisoSDK.new({ base_url: ENV['SDK_BASE_URL'], access_token: ENV['SDK_ACCESS_TOKEN'] })
12
+ StubRegister.new(
13
+ resouce,
14
+ @api.instance_variable_get(:@base_url),
15
+ @api.instance_variable_get(:@access_token)
16
+ )
17
+ end
18
+
19
+ def teardown
20
+ WebMock.disable!
21
+ end
22
+
23
+ end
@@ -0,0 +1,26 @@
1
+ require 'minitest/autorun'
2
+ require_relative './common_setup_and_teardown.rb'
3
+
4
+ class ApReasonMasterTest < Minitest::Test
5
+ include CommonSetupAndTeardown
6
+
7
+ def setup
8
+ super("ap_reason_masters")
9
+ end
10
+
11
+ def test_show_ap_reason_master
12
+ ap_reason_masters = @api.list_ap_reason_masters
13
+ first_ap_reason_master = ap_reason_masters[:json].first
14
+ ap_reason_master = @api.show_ap_reason_master(first_ap_reason_master[:id])
15
+
16
+ assert_equal 200, ap_reason_master[:status].to_i, ap_reason_master.inspect
17
+ assert_equal first_ap_reason_master[:reason_code], ap_reason_master[:json][:reason_code]
18
+ end
19
+
20
+ def test_list_ap_reason_masters
21
+ ap_reason_masters_list = @api.list_ap_reason_masters
22
+ assert_equal 200, ap_reason_masters_list[:status].to_i, ap_reason_masters_list.inspect
23
+ assert ap_reason_masters_list[:json]
24
+ assert !ap_reason_masters_list[:json].empty?
25
+ end
26
+ end
@@ -0,0 +1,27 @@
1
+ require 'minitest/autorun'
2
+ require_relative './common_setup_and_teardown.rb'
3
+
4
+ class ApiHistoryTest < Minitest::Test
5
+ include CommonSetupAndTeardown
6
+
7
+ def setup
8
+ super("api_histories")
9
+ end
10
+
11
+ def test_index_api_history
12
+ index = @api.index_api_history
13
+ assert_equal 200, index[:status].to_i, index.inspect
14
+ assert !index[:json].empty?
15
+ end
16
+
17
+ def test_list_api_history
18
+ options = {
19
+ month: 12,
20
+ year: 2019
21
+ }
22
+ list = @api.list_api_history(options)
23
+ assert_equal 200, list[:status].to_i, list.inspect
24
+ assert_equal list[:json].first[:controller], 'reimbursements'
25
+ assert_equal list[:json].first[:method], 'create'
26
+ end
27
+ end
@@ -0,0 +1,26 @@
1
+ require 'minitest/autorun'
2
+ require_relative './common_setup_and_teardown.rb'
3
+
4
+ class ArReasonMasterTest < Minitest::Test
5
+ include CommonSetupAndTeardown
6
+
7
+ def setup
8
+ super("ar_reason_masters")
9
+ end
10
+
11
+ def test_list_ar_reason_masters
12
+ ar_reason_masters_list = @api.list_ar_reason_masters
13
+ assert_equal 200, ar_reason_masters_list[:status].to_i, ar_reason_masters_list.inspect
14
+ assert ar_reason_masters_list[:json]
15
+ assert !ar_reason_masters_list[:json].empty?
16
+ end
17
+
18
+ def test_show_ar_reason_master
19
+ ar_reason_masters = @api.list_ar_reason_masters
20
+ ar_reason_master_id = ar_reason_masters[:json].first[:id]
21
+ ar_reason_master = @api.show_ar_reason_master(ar_reason_master_id)
22
+
23
+ assert_equal 200, ar_reason_master[:status].to_i, ar_reason_master.inspect
24
+ assert_equal ar_reason_master[:json][:id], ar_reason_master_id
25
+ end
26
+ end
@@ -0,0 +1,34 @@
1
+ require 'minitest/autorun'
2
+ require_relative './common_setup_and_teardown.rb'
3
+
4
+ class BankAccountTest < Minitest::Test
5
+ include CommonSetupAndTeardown
6
+
7
+ def setup
8
+ super("bank_accounts")
9
+ end
10
+
11
+ def test_create_bank_account
12
+ options = {
13
+ bank_account_master_id: "1",
14
+ start_timestamp: "2016-07-30",
15
+ finish_timestamp: "2016-08-30",
16
+ }
17
+ new_bank_account = @api.create_bank_account(options)
18
+
19
+ assert_equal 200, new_bank_account[:status].to_i, new_bank_account.inspect
20
+ serch_options = {
21
+ year: 2016,
22
+ month: 8
23
+ }
24
+ listed_bank_accounts = @api.list_bank_account(serch_options)
25
+ assert_equal 200, listed_bank_accounts[:status].to_i, listed_bank_accounts.inspect
26
+ target_bank_account = listed_bank_accounts[:json].find{ |bank_account| bank_account[:id] == new_bank_account[:json][:id]}
27
+
28
+ assert_equal Time.parse(options[:start_timestamp]), Time.parse(target_bank_account[:start_timestamp])
29
+ assert_equal Time.parse(options[:finish_timestamp]), Time.parse(target_bank_account[:finish_timestamp])
30
+ assert_equal options[:bank_account_master_id], target_bank_account[:bank_account_master_id]
31
+ end
32
+
33
+ end
34
+
@@ -0,0 +1,119 @@
1
+ require 'minitest/autorun'
2
+ require_relative './common_setup_and_teardown.rb'
3
+
4
+ class BankAccountMasterTest < Minitest::Test
5
+ include CommonSetupAndTeardown
6
+
7
+ def setup
8
+ @bank_account_master_1 = {
9
+ name: "ANZ Bank",
10
+ account_type: "1",
11
+ account_number: "66667777",
12
+ nominee: "tsubaiso taro",
13
+ memo: "",
14
+ start_ymd: "2019-06-01",
15
+ finish_ymd: nil,
16
+ zengin_bank_code: "7777",
17
+ zengin_branch_code: "777",
18
+ zengin_client_code_sogo: "9999999999",
19
+ currency_code: "",
20
+ currency_rate_master_code: nil
21
+ }
22
+
23
+ @bank_account_master_2 = {
24
+ name: "NSW Bank",
25
+ account_type: "1",
26
+ account_number: "66665555",
27
+ nominee: "tsubaiso jiro",
28
+ memo: "",
29
+ start_ymd: "2019-06-02",
30
+ finish_ymd: nil,
31
+ zengin_bank_code: "8888",
32
+ zengin_branch_code: "777",
33
+ zengin_client_code_sogo: "8888888888",
34
+ currency_code: "",
35
+ currency_rate_master_code: nil
36
+ }
37
+
38
+ @bank_account_master_3 = {
39
+ name: "Bank of Melbourne",
40
+ account_type: "1",
41
+ account_number: "66664444",
42
+ nominee: "tsubaiso saburo",
43
+ memo: "",
44
+ start_ymd: "2019-06-03",
45
+ finish_ymd: nil,
46
+ zengin_bank_code: "9999",
47
+ zengin_branch_code: "999",
48
+ zengin_client_code_sogo: "7777777777",
49
+ currency_code: "",
50
+ currency_rate_master_code: nil
51
+ }
52
+ super("bank_account_masters")
53
+ end
54
+
55
+ def test_create_bank_account_master
56
+ created_bank_account_master = @api.create_bank_account_master(@bank_account_master_1)
57
+
58
+ assert_equal 200, created_bank_account_master[:status].to_i, created_bank_account_master.inspect
59
+ assert_equal @bank_account_master_1[:name], created_bank_account_master[:json][:name]
60
+ assert_equal @bank_account_master_1[:account_number], created_bank_account_master[:json][:account_number]
61
+ assert_equal @bank_account_master_1[:zengin_bank_code], created_bank_account_master[:json][:zengin_bank_code]
62
+ assert_equal @bank_account_master_1[:zengin_branch_code], created_bank_account_master[:json][:zengin_branch_code]
63
+ end
64
+
65
+ def test_show_bank_account_master
66
+ created_bank_account_master = @api.create_bank_account_master(@bank_account_master_1)
67
+ shown_bank_account_master = @api.show_bank_account_master(created_bank_account_master[:json][:id])
68
+
69
+ assert_equal @bank_account_master_1[:nominee], shown_bank_account_master[:json][:nominee]
70
+ assert_equal @bank_account_master_1[:name], shown_bank_account_master[:json][:name]
71
+ assert_equal @bank_account_master_1[:account_number], shown_bank_account_master[:json][:account_number]
72
+ end
73
+
74
+ def test_list_bank_account_masters
75
+ created_bank_account_master_1 = @api.create_bank_account_master(@bank_account_master_1)
76
+ created_bank_account_master_2 = @api.create_bank_account_master(@bank_account_master_2)
77
+ created_bank_account_master_3 = @api.create_bank_account_master(@bank_account_master_3)
78
+
79
+ assert_equal 200, created_bank_account_master_1[:status].to_i
80
+ assert_equal 200, created_bank_account_master_2[:status].to_i
81
+ assert_equal 200, created_bank_account_master_3[:status].to_i
82
+
83
+ created_master_id_1 = created_bank_account_master_1[:json][:id]
84
+ created_master_id_2 = created_bank_account_master_2[:json][:id]
85
+ created_master_id_3 = created_bank_account_master_3[:json][:id]
86
+
87
+ bank_account_master_list = @api.list_bank_account_masters
88
+ assert_equal 200, bank_account_master_list[:status].to_i, bank_account_master_list.inspect
89
+ assert(bank_account_master_list[:json].any? { |x| x[:id] == created_master_id_1 })
90
+ assert(bank_account_master_list[:json].any? { |x| x[:id] == created_master_id_2 })
91
+ assert(bank_account_master_list[:json].any? { |x| x[:id] == created_master_id_3 })
92
+ end
93
+
94
+ def test_update_bank_account_master
95
+ created_bank_account_master = @api.create_bank_account_master(@bank_account_master_1)
96
+ assert_equal 200, created_bank_account_master[:status].to_i
97
+
98
+ updating_options = {
99
+ id: created_bank_account_master[:json][:id],
100
+ name: "Westpac",
101
+ account_type: "3",
102
+ nominee: "Hatagaya Taro",
103
+ memo: "This is updatting test"
104
+ }
105
+
106
+ updated_bank_account_master = @api.update_bank_account_master(updating_options)
107
+ assert_equal 200, updated_bank_account_master[:status].to_i
108
+ assert_equal updating_options[:name], updated_bank_account_master[:json][:name]
109
+ assert_equal updating_options[:memo], updated_bank_account_master[:json][:memo]
110
+ assert_equal updating_options[:nominee], updated_bank_account_master[:json][:nominee]
111
+ assert_equal updating_options[:account_type], updated_bank_account_master[:json][:account_type]
112
+
113
+ assert_equal @bank_account_master_1[:account_number], updated_bank_account_master[:json][:account_number]
114
+ assert_equal @bank_account_master_1[:zengin_bank_code], updated_bank_account_master[:json][:zengin_bank_code]
115
+ assert_equal @bank_account_master_1[:zengin_branch_code], updated_bank_account_master[:json][:zengin_branch_code]
116
+ end
117
+
118
+ end
119
+
@@ -0,0 +1,61 @@
1
+ require 'minitest/autorun'
2
+ require_relative './common_setup_and_teardown.rb'
3
+
4
+ class BankAccountTransactionTest < Minitest::Test
5
+ include CommonSetupAndTeardown
6
+
7
+ def setup
8
+ @bank_account_transaction_1 = {
9
+ bank_account_id: 0,
10
+ journal_timestamp: "2019-07-25",
11
+ price_value: 1000,
12
+ reason_code: "xxxx_123",
13
+ dc: "d",
14
+ brief: "this is sample transactions",
15
+ memo: "this is created from API.",
16
+ dept_code: "HEAD"
17
+ }
18
+ super("bank_account_transactions")
19
+ end
20
+
21
+ def test_create_bank_account_transaction
22
+ created_bat = @api.create_bank_account_transaction(@bank_account_transaction_1)
23
+ assert_equal 200, created_bat[:status].to_i, created_bat.inspect
24
+
25
+ shown_bat = @api.show_bank_account_transaction(created_bat[:json][:id])
26
+ assert_equal 200, shown_bat[:status].to_i, shown_bat.inspect
27
+ assert_equal created_bat[:json][:id], shown_bat[:json][:id]
28
+
29
+ listed_bats = @api.list_bank_account_transactions(@bank_account_transaction_1[:bank_account_id])
30
+ target_bat = listed_bats[:json].find{ |bat| bat[:id] == created_bat[:json][:id]}
31
+
32
+ assert target_bat != nil
33
+ assert_equal Time.parse(@bank_account_transaction_1[:journal_timestamp]), Time.parse(target_bat[:journal_timestamp])
34
+ assert_equal @bank_account_transaction_1[:price_value], target_bat[:price_value]
35
+ assert_equal @bank_account_transaction_1[:memo], target_bat[:memo]
36
+ end
37
+
38
+ def test_update_bank_account_transaction
39
+ created_bank_account_transaction = @api.create_bank_account_transaction(@bank_account_transaction_1)
40
+ assert_equal 200, created_bank_account_transaction[:status].to_i, created_bank_account_transaction.inspect
41
+
42
+ update_options = {
43
+ price_value: 500,
44
+ reason_code: "TEST_CASH_HATAGAYA",
45
+ brief: "this is sample updated transactions",
46
+ dc: 'd'
47
+ }
48
+
49
+ update_options[:id] = created_bank_account_transaction[:json][:id]
50
+ updated_bat = @api.update_bank_account_transaction(update_options)[:json]
51
+ assert_equal 200, @api.update_bank_account_transaction(update_options)[:status].to_i
52
+
53
+ assert_equal update_options[:price_value], updated_bat[:price_value]
54
+ assert_equal update_options[:reason_code], updated_bat[:reason_code]
55
+ assert_equal update_options[:brief], updated_bat[:brief]
56
+ assert_equal update_options[:dc], updated_bat[:dc]
57
+
58
+ assert_equal Time.parse(@bank_account_transaction_1[:journal_timestamp]), Time.parse(updated_bat[:journal_timestamp])
59
+ assert_equal @bank_account_transaction_1[:memo], updated_bat[:memo]
60
+ end
61
+ end
@@ -0,0 +1,90 @@
1
+ require 'minitest/autorun'
2
+ require_relative './common_setup_and_teardown.rb'
3
+
4
+ class BankReasonMasterTest < Minitest::Test
5
+ include CommonSetupAndTeardown
6
+
7
+ def setup
8
+ @bank_reason_master_1 = {
9
+ sort_number: 1,
10
+ reason_code: "create_from_API",
11
+ reason_name: "New Bank Reason Created From API",
12
+ dc: "d",
13
+ is_valid: 0,
14
+ memo: "This reason has been created form API",
15
+ account_code: 1
16
+ }
17
+
18
+ @bank_reason_master_2 = {
19
+ sort_number: 1,
20
+ reason_code: "create_from_API2",
21
+ reason_name: "New Bank Reason Created From API2",
22
+ dc: "c",
23
+ is_valid: 0,
24
+ memo: "This reason has been created form API2",
25
+ account_code: 1
26
+ }
27
+
28
+ @bank_reason_master_3 = {
29
+ sort_number: 1,
30
+ reason_code: "create_from_API3",
31
+ reason_name: "New Bank Reason Created From API3",
32
+ dc: "d",
33
+ is_valid: 0,
34
+ memo: "This reason has been created form API3",
35
+ account_code: 1
36
+ }
37
+
38
+ super("bank_reason_masters")
39
+ end
40
+
41
+ def test_list_bank_reason_masters
42
+ created_bank_reason_master_1 = @api.create_bank_reason_masters(@bank_reason_master_1)
43
+ created_bank_reason_master_2 = @api.create_bank_reason_masters(@bank_reason_master_2)
44
+ created_bank_reason_master_3 = @api.create_bank_reason_masters(@bank_reason_master_3)
45
+
46
+ assert_equal 200, created_bank_reason_master_1[:status].to_i
47
+ assert_equal 200, created_bank_reason_master_2[:status].to_i
48
+ assert_equal 200, created_bank_reason_master_3[:status].to_i
49
+
50
+ created_master_id_1 = created_bank_reason_master_1[:json][:id]
51
+ created_master_id_2 = created_bank_reason_master_2[:json][:id]
52
+ created_master_id_3 = created_bank_reason_master_3[:json][:id]
53
+
54
+ bank_reason_master_list = @api.list_bank_reason_masters
55
+ assert_equal 200, bank_reason_master_list[:status].to_i, bank_reason_master_list.inspect
56
+ assert(bank_reason_master_list[:json].any? { |x| x[:id] == created_master_id_1 })
57
+ assert(bank_reason_master_list[:json].any? { |x| x[:id] == created_master_id_2 })
58
+ assert(bank_reason_master_list[:json].any? { |x| x[:id] == created_master_id_3 })
59
+ end
60
+
61
+ def test_show_bank_reason_master
62
+ created_bank_reason_master = @api.create_bank_reason_masters(@bank_reason_master_1)
63
+ shown_bank_reason_master = @api.show_bank_reason_master(created_bank_reason_master[:json][:id])
64
+ assert_equal @bank_reason_master_1[:sort_number], shown_bank_reason_master[:json][:sort_number]
65
+ assert_equal @bank_reason_master_1[:reason_code], shown_bank_reason_master[:json][:reason_code]
66
+ assert_equal @bank_reason_master_1[:reason_name], shown_bank_reason_master[:json][:reason_name]
67
+ end
68
+
69
+ def test_update_bank_reason_masters
70
+ created_bank_reason_master = @api.create_bank_reason_masters(@bank_reason_master_1)
71
+ assert_equal 200, created_bank_reason_master[:status].to_i
72
+
73
+ updating_options = {
74
+ id: created_bank_reason_master[:json][:id].to_i,
75
+ sort_number: 2,
76
+ reason_name: "updated reason name",
77
+ memo: "This reason has been updated from API."
78
+ }
79
+
80
+ updated_bank_reason_master = @api.update_bank_reason_masters(updating_options)
81
+ assert_equal 200, updated_bank_reason_master[:status].to_i
82
+ assert_equal updating_options[:sort_number], updated_bank_reason_master[:json][:sort_number]
83
+ assert_equal updating_options[:reason_name], updated_bank_reason_master[:json][:reason_name]
84
+ assert_equal updating_options[:memo], updated_bank_reason_master[:json][:memo]
85
+
86
+ assert_equal @bank_reason_master_1[:reason_code], updated_bank_reason_master[:json][:reason_code]
87
+ assert_equal @bank_reason_master_1[:dc], updated_bank_reason_master[:json][:dc]
88
+ end
89
+ end
90
+
@@ -0,0 +1,26 @@
1
+ require 'minitest/autorun'
2
+ require_relative './common_setup_and_teardown.rb'
3
+
4
+ class BonusTest < Minitest::Test
5
+ include CommonSetupAndTeardown
6
+
7
+ def setup
8
+ super("bonuses")
9
+ end
10
+
11
+ def test_list_bonuses
12
+ bonuses_list = @api.list_bonuses(1, 2016)
13
+ assert_equal 200, bonuses_list[:status].to_i, bonuses_list.inspect
14
+ assert bonuses_list[:json]
15
+ assert !bonuses_list[:json].empty?
16
+ end
17
+
18
+ def test_show_bonus
19
+ bonuses = @api.list_bonuses(1, 2016)
20
+ bonus_id = bonuses[:json].first[:id]
21
+ bonus = @api.show_bonus(bonus_id)
22
+
23
+ assert_equal 200, bonus[:status].to_i, bonus.inspect
24
+ assert_equal bonus[:json][:id], bonus_id
25
+ end
26
+ end
@@ -0,0 +1,27 @@
1
+ require 'minitest/autorun'
2
+ require_relative './common_setup_and_teardown.rb'
3
+
4
+ class CorporateMasterTest < Minitest::Test
5
+ include CommonSetupAndTeardown
6
+
7
+ def setup
8
+ super('corporate_masters')
9
+ end
10
+
11
+ def test_show_corporate_master
12
+ # With HatagayaTest CorporateMaster ID Only
13
+ shown_corporate_master = @api.show_corporate_master(0)
14
+ assert_equal 3, shown_corporate_master[:json][:corporate_code]
15
+ assert_equal '幡ヶ谷建設株式会社', shown_corporate_master[:json][:name]
16
+
17
+ # With HatagayaTest Corporate Code Only
18
+ shown_corporate_master = @api.show_corporate_master(nil, { ccode: 3 })
19
+ assert_equal 3, shown_corporate_master[:json][:corporate_code]
20
+ assert_equal '幡ヶ谷建設株式会社', shown_corporate_master[:json][:name]
21
+
22
+ # With HatagayaTest Both CorporateMaster ID and Corporate Code
23
+ shown_corporate_master = @api.show_corporate_master(0, { ccode: 3 })
24
+ assert_equal 3, shown_corporate_master[:json][:corporate_code]
25
+ assert_equal '幡ヶ谷建設株式会社', shown_corporate_master[:json][:name]
26
+ end
27
+ end