codec 0.0.12 → 1.0.0

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