da_funk 3.30.0 → 3.34.0

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