da_funk 3.30.0 → 3.34.0

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 (46) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +10 -1
  3. data/Gemfile.lock +12 -2
  4. data/README.md +0 -0
  5. data/README_GUIDE.md +0 -0
  6. data/RELEASE_NOTES.md +27 -0
  7. data/Rakefile +14 -0
  8. data/guides/sample_input_output.rb +0 -0
  9. data/guides/sample_message_iso8583.rb +0 -0
  10. data/guides/sample_network_gprs.rb +0 -0
  11. data/guides/sample_read_magnect_card.rb +0 -0
  12. data/guides/sample_socket.rb +0 -0
  13. data/guides/sample_transaction.rb +0 -0
  14. data/guides/sample_transaction_download_application.rb +0 -0
  15. data/guides/sample_transaction_download_file.rb +0 -0
  16. data/guides/sample_transaction_download_parameter_file.rb +0 -0
  17. data/lib/da_funk/connection_management.rb +25 -10
  18. data/lib/da_funk/event_handler.rb +1 -1
  19. data/lib/da_funk/helper.rb +55 -16
  20. data/lib/da_funk/helper/status_bar.rb +158 -105
  21. data/lib/da_funk/params_dat.rb +65 -25
  22. data/lib/da_funk/rake_task.rb +13 -6
  23. data/lib/da_funk/transaction/download.rb +0 -0
  24. data/lib/da_funk/transaction/iso.rb +0 -0
  25. data/lib/da_funk/version.rb +1 -1
  26. data/lib/device.rb +0 -0
  27. data/lib/device/crypto.rb +0 -0
  28. data/lib/device/display.rb +2 -1
  29. data/lib/device/io.rb +53 -0
  30. data/lib/device/network.rb +19 -33
  31. data/lib/device/printer.rb +0 -0
  32. data/lib/device/setting.rb +0 -0
  33. data/lib/device/system.rb +9 -0
  34. data/lib/device/version.rb +0 -0
  35. data/lib/device/virtual_keyboard.rb +81 -34
  36. data/lib/file_db.rb +0 -0
  37. data/lib/iso8583/bitmap.rb +94 -54
  38. data/lib/iso8583/codec.rb +3 -3
  39. data/lib/iso8583/field.rb +38 -3
  40. data/lib/iso8583/fields.rb +3 -1
  41. data/lib/iso8583/message.rb +25 -12
  42. data/lib/iso8583/util.rb +1 -1
  43. data/test/iso8583/bitmap_test.rb +277 -0
  44. data/test/iso8583/message_test.rb +111 -0
  45. data/test/iso8583/minitest_helper.rb +11 -0
  46. metadata +12 -6
@@ -0,0 +1,111 @@
1
+ require_relative 'minitest_helper'
2
+
3
+ module ISO8583
4
+ class TestMTIMessage < Message
5
+ mti_format N, length: 4
6
+ mti 100, "Test Authorization"
7
+
8
+ bmp 2, "foo", ANS, length: 3
9
+ end
10
+
11
+ class TestMTIMessageBCDPacked < Message
12
+ mti_format N_BCD, length: 4
13
+ mti 100, "Test Authorization"
14
+
15
+ bmp 2, "foo", ANS, length: 3
16
+ end
17
+
18
+ class TestNoMTIMessage < Message
19
+ bmp 2, "foo", ANS, length: 3
20
+ end
21
+
22
+ class TestMessageInitialization < Minitest::Test
23
+ def test_ignore_mti_field_set
24
+ msg = TestNoMTIMessage.new(nil, true, true)
25
+ assert_equal true, msg.ignore_mti
26
+ end
27
+
28
+ def test_cant_set_mit_if_ignore_mti
29
+ msg = TestNoMTIMessage.new(nil, true, true)
30
+ assert_raises { msg.mti = 100 }
31
+ end
32
+
33
+ def test_can_set_mti_unless_ignore_mti
34
+ msg = TestMTIMessage.new(100, true)
35
+
36
+ assert_equal 100, msg.mti
37
+ end
38
+
39
+ def test_set_mti_bcd_packed_bin_bitmap
40
+ msg = TestMTIMessageBCDPacked.new(100, false)
41
+
42
+ expected = String.new("\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", encoding: 'ASCII-8BIT')
43
+ assert_equal expected, msg.to_b
44
+ end
45
+ end
46
+
47
+ class Test_to_b_Method < Minitest::Test
48
+ def test_raises_when_no_mti_and_no_ignore_mti
49
+ msg = TestMTIMessage.new(nil, true)
50
+ assert_raises {msg.to_b}
51
+ end
52
+
53
+ def test_return_bitmap_without_mti_set_and_hex_bitmap
54
+ msg = TestNoMTIMessage.new(nil, true, true, 24)
55
+ msg[2] = "bar"
56
+ assert_equal("400000bar", msg.to_b)
57
+ end
58
+
59
+ def test_return_bitmap_without_mti_set_and_bin_bitmap
60
+ msg = TestNoMTIMessage.new(nil, false, true, 24)
61
+ msg[2] = "bar"
62
+
63
+ expected = String.new("\x40\x00\x00bar", encoding: 'ASCII-8BIT')
64
+ assert_equal(expected, msg.to_b)
65
+ end
66
+ end
67
+
68
+ class Test_parse_Method < Minitest::Test
69
+
70
+ def test_parse_with_hex_bitmap
71
+ msg = "010040bar"
72
+
73
+ isomsg = TestMTIMessage.parse(msg, true, 8)
74
+
75
+ expected = 100
76
+ assert_equal(expected, isomsg.mti)
77
+ expected = "bar"
78
+ assert_equal(expected, isomsg[2])
79
+ end
80
+
81
+ def test_parse_with_bin_bitmap
82
+ msg = "0100\x40bar"
83
+
84
+ isomsg = TestMTIMessage.parse(msg, false, 8)
85
+
86
+ expected = 100
87
+ assert_equal(expected, isomsg.mti)
88
+ expected = "bar"
89
+ assert_equal(expected, isomsg[2])
90
+ end
91
+
92
+ def test_parse_raises_when_undefined_field
93
+ msg = "0100\x20bar"
94
+
95
+ e = assert_raises { TestMTIMessage.parse(msg, false, 8) }
96
+ assert_equal(ISO8583ParseException, e.class)
97
+ assert_equal("The message contains fields not defined", e.message)
98
+ end
99
+
100
+ def test_parse_raises_when_undefined_field
101
+ msg = "0100\x40\x00\x00\x00\x00\x00\x00\x00bar"
102
+
103
+ isomsg = TestMTIMessage.parse(msg, false)
104
+
105
+ expected = 100
106
+ assert_equal(expected, isomsg.mti)
107
+ expected = "bar"
108
+ assert_equal(expected, isomsg[2])
109
+ end
110
+ end
111
+ end
@@ -0,0 +1,11 @@
1
+ if ENV['COV']
2
+ require 'simplecov'
3
+ SimpleCov.start
4
+ end
5
+
6
+ require 'byebug'
7
+ require 'minitest/autorun'
8
+ PROJECT_ROOT = File.join(File.dirname(File.expand_path(__FILE__)), '..', '..')
9
+ Dir.glob(File.join(PROJECT_ROOT, 'lib', 'iso8583', '**', '*.rb')).each do |file|
10
+ require file
11
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: da_funk
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.30.0
4
+ version: 3.34.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thiago Scalone
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-11-16 00:00:00.000000000 Z
11
+ date: 2021-05-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -218,6 +218,9 @@ files:
218
218
  - test/integration/mrb_eval_test.rb
219
219
  - test/integration/notification_test.rb
220
220
  - test/integration/params_dat_test.rb
221
+ - test/iso8583/bitmap_test.rb
222
+ - test/iso8583/message_test.rb
223
+ - test/iso8583/minitest_helper.rb
221
224
  - test/resources/shared/bitmap.dat
222
225
  - test/resources/shared/bitmap_gp.dat
223
226
  - test/test_helper.rb
@@ -244,7 +247,7 @@ homepage: http://github.com/cloudwalkio/da_funk
244
247
  licenses:
245
248
  - MIT
246
249
  metadata: {}
247
- post_install_message:
250
+ post_install_message:
248
251
  rdoc_options: []
249
252
  require_paths:
250
253
  - lib
@@ -259,8 +262,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
259
262
  - !ruby/object:Gem::Version
260
263
  version: '0'
261
264
  requirements: []
262
- rubygems_version: 3.0.6
263
- signing_key:
265
+ rubygems_version: 3.0.0
266
+ signing_key:
264
267
  specification_version: 4
265
268
  summary: MRuby Embedded System Framework
266
269
  test_files:
@@ -268,6 +271,9 @@ test_files:
268
271
  - test/integration/mrb_eval_test.rb
269
272
  - test/integration/notification_test.rb
270
273
  - test/integration/params_dat_test.rb
274
+ - test/iso8583/bitmap_test.rb
275
+ - test/iso8583/message_test.rb
276
+ - test/iso8583/minitest_helper.rb
271
277
  - test/resources/shared/bitmap.dat
272
278
  - test/resources/shared/bitmap_gp.dat
273
279
  - test/test_helper.rb