codec 0.0.12 → 1.0.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.
@@ -2,71 +2,43 @@ require_relative '../../test_helper'
2
2
 
3
3
  describe Codec::Prefixedlength do
4
4
  before do
5
- @length = Codec::Numasc.new('length',3)
6
- @content = Codec::String.new('content',0)
5
+ @length = Codec::Numasc.new(3)
6
+ @content = Codec::String.new(0)
7
7
  @field = Codec::Field.new
8
8
  @field.set_value("0012AB")
9
+ @f = Codec::Field.new
9
10
  @buffer = "0060012AB"
10
11
  end
11
12
 
12
- subject { Codec::Prefixedlength.new('Test_lvar',@length,@content) }
13
-
14
- it "must be a Prefixedlength codec" do
15
- subject.must_be_instance_of(Codec::Prefixedlength)
16
- end
13
+ subject { Codec::Prefixedlength.new(@length,@content) }
17
14
 
18
15
  it "must generate a field with computed value" do
19
- subject.decode(@buffer).first.get_value.must_equal("0012AB")
16
+ subject.decode(@buffer,@f)
17
+ @f.get_value.must_equal("0012AB")
20
18
  end
21
19
 
22
- it "must also return remaining data" do
23
- subject.decode(@buffer).last.must_equal("")
20
+ it "remaining buffer must be empty" do
21
+ subject.decode(@buffer,@f)
22
+ @buffer.must_be_empty
24
23
  end
25
24
 
26
25
  it "must encode value prefixed with length" do
27
- subject.encode(@field).must_equal("0060012AB")
26
+ buffer = ""
27
+ subject.encode(buffer, @field)
28
+ buffer.must_equal("0060012AB")
28
29
  end
29
30
  end
30
31
 
31
- describe Codec::Prefixedlength do
32
- before do
33
- @length = Codec::Numasc.new('length',3)
34
- @content = Codec::Strpck.new('content',0)
35
- @field = Codec::Field.new
36
- @field.set_value("0012AB")
37
- @buffer = "006" +["0012AB"].pack("H*")
38
- end
39
-
40
- subject { Codec::Prefixedlength.new('Test_lvar',@length,@content) }
41
-
42
- it "must be a Prefixedlength codec" do
43
- subject.must_be_instance_of(Codec::Prefixedlength)
44
- end
45
-
46
- it "must generate a field with computed value" do
47
- subject.decode(@buffer).first.get_value.upcase.must_equal("0012AB")
48
- end
49
-
50
- it "must also return remaining data" do
51
- subject.decode(@buffer).last.must_equal("")
52
- end
53
-
54
- it "must encode value prefixed with length" do
55
- subject.encode(@field).must_equal(@buffer)
56
- end
57
- end
58
-
59
-
60
32
  describe Codec::Headerlength do
61
33
  before do
62
- tag = Codec::Binary.new('T',1)
63
- length = Codec::Numbin.new('L',1)
64
- value = Codec::Numbin.new('V',0)
65
- tlv = Codec::Tlv.new('TAG',length,tag,value)
66
- @header = Codec::BaseComposed.new('HEADER')
34
+ tag = Codec::Binary.new(1)
35
+ length = Codec::Numbin.new(1)
36
+ value = Codec::Numbin.new(0)
37
+ tlv = Codec::Tlv.new(length,tag,value)
38
+ @header = Codec::BaseComposed.new
67
39
  @header.add_sub_codec('H_TAG',tag)
68
- @header.add_sub_codec('H_TLV',Codec::Prefixedlength.new('*',length,tlv))
69
- @content = Codec::String.new('CONTENT',0)
40
+ @header.add_sub_codec('H_TLV',Codec::Prefixedlength.new(length,tlv))
41
+ @content = Codec::String.new(0)
70
42
  len = 6
71
43
  field_head = ['HEADER', [['H_TAG','AA'],['H_TLV',[['01',25],['02',len]]]]]
72
44
  field_content = ['CONTENT','STRING']
@@ -79,28 +51,31 @@ describe Codec::Headerlength do
79
51
  field_array = [field_content]
80
52
  @field_without_head = Codec::Field.from_array('Test_Headerlength',field_array)
81
53
  @buffer = ["AA06010119020106","STRING"].pack("H*A*")
54
+ @working_field = Codec::Field.new('Test_Headerlength')
82
55
  end
83
56
 
84
- subject { Codec::Headerlength.new('Test_Headerlength',@header,@content,'.H_TLV.02') }
85
-
86
- it "must be a Headerlength codec" do
87
- subject.must_be_instance_of(Codec::Headerlength)
88
- end
57
+ subject { Codec::Headerlength.new(@header, 'HEADER',@content,'CONTENT','.H_TLV.02') }
89
58
 
90
59
  it "must decode a field with computed value" do
91
- subject.decode(@buffer).first.must_equal(@field_with_length)
60
+ subject.decode(@buffer,@working_field)
61
+ @working_field.must_equal(@field_with_length)
92
62
  end
93
63
 
94
64
  it "must also return remaining data" do
95
- subject.decode(@buffer + "REMAIN").last.must_equal("REMAIN")
65
+ buffer = @buffer + "REMAIN"
66
+ subject.decode(buffer, @working_field)
67
+ buffer.must_equal("REMAIN")
96
68
  end
97
69
 
98
70
  it "must encode buffer with composed field [header,content]" do
99
- subject.encode(@field_without_length).must_equal(@buffer)
71
+ buffer = ""
72
+ subject.encode(buffer, @field_without_length)
73
+ buffer.must_equal(@buffer)
100
74
  end
101
75
 
102
76
  it "must raise EncodingException if missing header field" do
103
- proc { subject.encode(@field_without_head)}.must_raise(Codec::EncodingException)
77
+ buf =""
78
+ proc { subject.encode(buf, @field_without_head)}.must_raise(Codec::EncodingException)
104
79
  end
105
80
 
106
81
  end
@@ -111,31 +86,34 @@ describe Codec::Tagged do
111
86
  @field2 = Codec::Field.new('02','ABC')
112
87
  @buffer1 = "01012"
113
88
  @buffer2 = "02ABC"
89
+ @working_field = Codec::Field.new
114
90
  end
115
91
 
116
- subject { c = Codec::Tagged.new('Test_tagged',Codec::String.new('*',2))
117
- c.add_sub_codec('01',Codec::Numasc.new('*',3))
118
- c.add_sub_codec('02',Codec::String.new('*',3))
92
+ subject { c = Codec::Tagged.new(Codec::String.new(2))
93
+ c.add_sub_codec('01',Codec::Numasc.new(3))
94
+ c.add_sub_codec('02',Codec::String.new(3))
119
95
  c
120
96
  }
121
97
 
122
- it "must be a Tagged codec" do
123
- subject.must_be_instance_of(Codec::Tagged)
124
- end
125
-
126
98
  it "must generate a field with computed value" do
127
- subject.decode(@buffer1).first.must_equal(@field1)
99
+ subject.decode(@buffer1,@working_field)
100
+ @working_field.must_equal(@field1)
128
101
  end
129
102
 
130
103
  it "must generate a field with computed value" do
131
- subject.decode(@buffer2).first.must_equal(@field2)
104
+ subject.decode(@buffer2,@working_field)
105
+ @working_field.must_equal(@field2)
132
106
  end
133
107
 
134
108
  it "must encode value prefixed with length" do
135
- subject.encode(@field1).must_equal(@buffer1)
109
+ buffer = ""
110
+ subject.encode(buffer, @field1)
111
+ buffer.must_equal(@buffer1)
136
112
  end
137
113
 
138
114
  it "must encode value prefixed with length" do
139
- subject.encode(@field2).must_equal(@buffer2)
115
+ buffer =""
116
+ subject.encode(buffer, @field2)
117
+ buffer.must_equal(@buffer2)
140
118
  end
141
119
  end
@@ -1,37 +1,38 @@
1
1
  require_relative '../../test_helper'
2
-
2
+
3
3
  describe Codec::Tlv do
4
- subject { Codec::Tlv.new('Tlv', Codec::Numbin.new('*',1),
5
- Codec::Binary.new('*',1), Codec::Binary.new('*',0))
4
+ subject { Codec::Tlv.new(Codec::Numbin.new(1),
5
+ Codec::Binary.new(1),
6
+ Codec::Binary.new(0))
6
7
  }
7
8
 
8
9
  before do
9
10
  @buffer = ["950580000000009C0100"].pack("H*")
10
11
  @field = Codec::Field.from_array('Tlv',[['95','8000000000'],['9C','00']])
11
- end
12
-
13
- it "must be a Tlv codec" do
14
- subject.must_be_instance_of(Codec::Tlv)
12
+ @wf = Codec::Field.new('Tlv')
15
13
  end
16
14
 
17
15
  it "must generate composed field from buffer" do
18
- subject.decode(@buffer).first.
19
- must_equal(@field)
16
+ subject.decode(@buffer,@wf)
17
+ @wf.must_equal(@field)
20
18
  end
21
19
 
22
20
  it "must generate buffer from composed field" do
23
- subject.encode(@field).must_equal(@buffer)
21
+ buff = ""
22
+ subject.encode(buff, @field)
23
+ buff.must_equal(@buffer)
24
24
  end
25
25
  end
26
26
 
27
27
  describe Codec::Tlv do
28
- subject { Codec::Tlv.new('Tlv', Codec::Numbin.new('*',1),
29
- Codec::Binary.new('*',1), Codec::Binary.new('*',0))
28
+ subject { Codec::Tlv.new( Codec::Numbin.new(1),
29
+ Codec::Binary.new(1),
30
+ Codec::Binary.new(0))
30
31
  }
31
32
 
32
33
  before do
33
- tvr_codec = Codec::BaseComposed.new("Tvr")
34
- one_byte_codec = Codec::Binary.new("*",1)
34
+ tvr_codec = Codec::BaseComposed.new()
35
+ one_byte_codec = Codec::Binary.new(1)
35
36
  (1..5).each do |i|
36
37
  tvr_codec.add_sub_codec("BIT#{i}",one_byte_codec)
37
38
  end
@@ -41,63 +42,67 @@ describe Codec::Tlv do
41
42
  @field = Codec::Field.from_array('Tlv',
42
43
  [['95',[['BIT1','80'],['BIT2','00'],['BIT3','00'],
43
44
  ['BIT4','00'],['BIT5','00']]],['9C','00']])
45
+ @wf = Codec::Field.new('Tlv')
44
46
  end
45
47
 
46
- it "must be a Tlv codec" do
47
- subject.must_be_instance_of(Codec::Tlv)
48
- end
49
-
50
48
  it "must generate composed field from buffer" do
51
- subject.decode(@buffer).first.
52
- must_equal(@field)
49
+ Codec::Logger.debug {"====== start failing test =========\n"}
50
+ subject.decode(@buffer,@wf)
51
+ @wf.must_equal(@field)
52
+ Codec::Logger.debug {"====== end failing test =========\n"}
53
53
  end
54
54
 
55
55
  it "must generate buffer from composed field" do
56
- subject.encode(@field).must_equal(@buffer)
56
+ buff = ""
57
+ subject.encode(buff, @field)
58
+ buff.must_equal(@buffer)
57
59
  end
58
60
  end
59
61
 
60
62
 
61
63
  describe Codec::Tlv do
62
64
  subject {
63
- tag = Codec::Binary.new('T',1)
64
- length = Codec::Numbin.new('L',1)
65
- value = Codec::Numbin.new('V',0)
66
- Codec::Tlv.new('TAG',length,tag,value) }
65
+ tag = Codec::Binary.new(1)
66
+ length = Codec::Numbin.new(1)
67
+ value = Codec::Numbin.new(0)
68
+ Codec::Tlv.new(length,tag,value) }
67
69
  before do
68
70
  @buffer = ["9501009C010181020200"].pack("H*")
69
71
  @field = Codec::Field.from_array('TAG',
70
- [['95',0],['9C',1],['81',512]])
72
+ [['95',0],['9C',1],['81',512]])
73
+ @wf = Codec::Field.new('TAG')
71
74
  end
72
75
 
73
76
  it "must decode TLV buffer to field" do
74
- subject.decode(@buffer).first.must_equal(@field)
77
+ subject.decode(@buffer,@wf)
78
+ @wf.must_equal(@field)
75
79
  end
76
80
 
77
81
  it "must encode TLV field to buffer" do
78
- subject.encode(@field).must_equal(@buffer)
82
+ buff = ""
83
+ subject.encode(buff, @field)
84
+ buff.must_equal(@buffer)
79
85
  end
80
86
  end
81
87
 
82
88
  describe Codec::Bertlv do
83
- subject { Codec::Bertlv.new('Bertlv') }
89
+ subject { Codec::Bertlv.new }
84
90
 
85
91
  before do
92
+ @wf = Codec::Field.new('Bertlv')
86
93
  @tlv_buf = ["9F100A0102030405060708091095058000000000"].pack("H*")
87
94
  @field = Codec::Field.from_array('Bertlv',
88
95
  [['9F10','01020304050607080910'],['95','8000000000']])
89
96
  end
90
97
 
91
- it "must be a Tlv codec" do
92
- subject.must_be_instance_of(Codec::Bertlv)
93
- end
94
-
95
98
  it "must generate composed field from buffer" do
96
- subject.decode(@tlv_buf).first.
97
- must_equal(@field)
99
+ subject.decode(@tlv_buf,@wf)
100
+ @wf.must_equal(@field)
98
101
  end
99
102
 
100
103
  it "must generate buffer from composed field" do
101
- subject.encode(@field).must_equal(@tlv_buf)
104
+ buff = ""
105
+ subject.encode(buff, @field)
106
+ buff.must_equal(@tlv_buf)
102
107
  end
103
108
  end
@@ -1,4 +1,7 @@
1
1
  require 'minitest/spec'
2
2
  require 'minitest/autorun'
3
3
  require 'minitest/pride'
4
+
4
5
  require File.expand_path('../../lib/codec.rb', __FILE__)
6
+
7
+ Codec::Logger.outputters=Log4r::FileOutputter.new("Codec", {:filename => "rake_test.log"})
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: codec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 1.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,42 +9,42 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-10-15 00:00:00.000000000 Z
12
+ date: 2014-01-31 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: bundler
15
+ name: log4r
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
- - - ~>
19
+ - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
- version: '1.3'
22
- type: :development
21
+ version: '0'
22
+ type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  none: false
26
26
  requirements:
27
- - - ~>
27
+ - - ! '>='
28
28
  - !ruby/object:Gem::Version
29
- version: '1.3'
29
+ version: '0'
30
30
  - !ruby/object:Gem::Dependency
31
- name: rake
31
+ name: bundler
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  none: false
34
34
  requirements:
35
- - - ! '>='
35
+ - - ~>
36
36
  - !ruby/object:Gem::Version
37
- version: '0'
37
+ version: '1.3'
38
38
  type: :development
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
41
41
  none: false
42
42
  requirements:
43
- - - ! '>='
43
+ - - ~>
44
44
  - !ruby/object:Gem::Version
45
- version: '0'
45
+ version: '1.3'
46
46
  - !ruby/object:Gem::Dependency
47
- name: log4r
47
+ name: rake
48
48
  requirement: !ruby/object:Gem::Requirement
49
49
  none: false
50
50
  requirements: