tsubaiso-sdk 1.2.1 → 1.2.8

Sign up to get free protection for your applications and to get access to all the features.
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