cheeba 1.0.4
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.
- data/.git/COMMIT_EDITMSG +1 -0
- data/.git/HEAD +1 -0
- data/.git/config +9 -0
- data/.git/description +1 -0
- data/.git/hooks/applypatch-msg.sample +15 -0
- data/.git/hooks/commit-msg.sample +24 -0
- data/.git/hooks/post-commit.sample +8 -0
- data/.git/hooks/post-receive.sample +15 -0
- data/.git/hooks/post-update.sample +8 -0
- data/.git/hooks/pre-applypatch.sample +14 -0
- data/.git/hooks/pre-commit.sample +18 -0
- data/.git/hooks/pre-rebase.sample +169 -0
- data/.git/hooks/prepare-commit-msg.sample +36 -0
- data/.git/hooks/update.sample +107 -0
- data/.git/index +0 -0
- data/.git/info/exclude +7 -0
- data/.git/logs/HEAD +7 -0
- data/.git/logs/refs/heads/master +6 -0
- data/.git/logs/refs/remotes/origin/master +6 -0
- data/.git/objects/02/38dae53aee5cb4ea157a3f036b93868ede9593 +0 -0
- data/.git/objects/02/9cafaafb83e528381f0f2f02c6f23799bd1942 +0 -0
- data/.git/objects/07/c654f9ff6c65626369b061c595be42ccdd6cd7 +0 -0
- data/.git/objects/07/dbbace3b24b2d635d2fb637581931d573fc75c +0 -0
- data/.git/objects/08/ce1195151ff5a51573a871947ecd913fb5aa0f +1 -0
- data/.git/objects/0c/ad63d44505490e1a30ad075099a25020d7a7c5 +0 -0
- data/.git/objects/12/215629eba6a8f0fcd849923e98a471984521e1 +2 -0
- data/.git/objects/18/60fee2fadb59a6cbcb7f7dd0a6f6dc3b56ac79 +0 -0
- data/.git/objects/1e/1800628b80bef5a8043e4adacd6ebc6bab9aa1 +0 -0
- data/.git/objects/27/97bc2b3d72dc6d77b7bd07f1cca96f7e06b4ed +0 -0
- data/.git/objects/28/41d3f97c8aa8c942a613e1c69ed4280d78cf0a +0 -0
- data/.git/objects/29/f0c4074f9ecc894edd7ed507a1a92499838a6d +0 -0
- data/.git/objects/2a/8948661c63f2bef24f330638d239c88d5d0c2e +0 -0
- data/.git/objects/3f/7142cf3878c65e71b54d3572d82837d20f2aa7 +4 -0
- data/.git/objects/40/8c36a3103bc77e90db86dc06b1598e3baa4c2d +0 -0
- data/.git/objects/42/eb5558727a2144e7c5e997d3e6aea5486eaf37 +0 -0
- data/.git/objects/4c/6098fe05db7126c8a3c97f463910e5cc398630 +0 -0
- data/.git/objects/51/6902dffff8d29fa2f89979b9cd81ab275e1c67 +0 -0
- data/.git/objects/5b/502f8e20a0556c22727b504108a2dc36d7cbed +2 -0
- data/.git/objects/67/c3fb20cfae5320d83c9ebf2b85c1a3ef9b706b +0 -0
- data/.git/objects/72/7df703ac52c4ff97aa452feee27b9990430a11 +5 -0
- data/.git/objects/74/bc14252b2148d11877025d7f445d2fa686e7e9 +0 -0
- data/.git/objects/78/9ac5e1ca6a70ec3b8a11344e6f4a03e440f309 +0 -0
- data/.git/objects/7a/46bd1887d1a793094da678ded3b53b0208b826 +0 -0
- data/.git/objects/8d/77306c0d13e98da74ddf48002674fced7e1618 +2 -0
- data/.git/objects/94/36859cb89dd0bbddab77ed0810860e979b1c05 +0 -0
- data/.git/objects/ab/454c9537f329aecaedae0586c6d61146a7f819 +0 -0
- data/.git/objects/b9/3b5dde3104bb495dc0d2970bbe617dafb2f084 +0 -0
- data/.git/objects/be/197d3b2c14a52300cc4553bf2004ef3c45a45b +0 -0
- data/.git/objects/be/8e3e0ab878ffcb0456ae4cf66861888d933bf5 +0 -0
- data/.git/objects/c5/4c515f4bff81e08b01176b1a5743fd773a9740 +0 -0
- data/.git/objects/d4/a471f188d32adfa9dc2ff22c53b95319a162ed +0 -0
- data/.git/objects/d7/83399b37ca769b5b5bc2b33727fc47acfa5e4c +0 -0
- data/.git/objects/d7/a544fc5715014ef027875545ef0145e9f694fe +0 -0
- data/.git/objects/de/eef72f84f60beab439c58d84acc42d3e5a1279 +0 -0
- data/.git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 +0 -0
- data/.git/objects/e9/9c40e89cb90f8067f99d7051c3bebf2b145ec7 +0 -0
- data/.git/objects/f3/89737a46e7cad94deb222e238e8f926767637e +0 -0
- data/.git/objects/fa/4f98b2fe387e262f9c28011e53f1b8fb920401 +0 -0
- data/.git/objects/fb/72047097c38625f3598fb348b3fbe75afd6d2d +1 -0
- data/.git/objects/ff/7aefe3472c61b77f58669ec4b8208412156930 +0 -0
- data/.git/refs/heads/master +1 -0
- data/.git/refs/remotes/origin/master +1 -0
- data/History.txt +6 -0
- data/Manifest.txt +94 -0
- data/README.txt +35 -0
- data/Rakefile +13 -0
- data/bin/cheeba +68 -0
- data/cheeba.gemspec +37 -0
- data/lib/cheeba/defaults.rb +78 -0
- data/lib/cheeba/errors.rb +10 -0
- data/lib/cheeba/indicators.rb +25 -0
- data/lib/cheeba/reader/builder.rb +265 -0
- data/lib/cheeba/reader/format.rb +130 -0
- data/lib/cheeba/reader/node.rb +61 -0
- data/lib/cheeba/reader/parser.rb +64 -0
- data/lib/cheeba/reader.rb +33 -0
- data/lib/cheeba/version.rb +3 -0
- data/lib/cheeba/writer/builder.rb +95 -0
- data/lib/cheeba/writer.rb +49 -0
- data/lib/cheeba.rb +50 -0
- data/test/files/arrays.cash +15 -0
- data/test/files/blank.cash +0 -0
- data/test/files/comments.cash +17 -0
- data/test/files/hashes.cash +26 -0
- data/test/files/malformed.cash +3 -0
- data/test/files/mixed.cash +12 -0
- data/test/files/split.cash +9 -0
- data/test/test_cheeba.rb +185 -0
- data/test/test_reader.rb +210 -0
- data/test/test_reader_builder.rb +345 -0
- data/test/test_reader_format.rb +406 -0
- data/test/test_reader_parser.rb +190 -0
- data/test/test_writer.rb +133 -0
- data/test/test_writer_builder.rb +150 -0
- metadata +167 -0
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
#!/usr/bin/env ruby -w
|
|
2
|
+
|
|
3
|
+
require 'rubygems'
|
|
4
|
+
require 'minitest/unit'
|
|
5
|
+
$: << 'lib' << 'test'
|
|
6
|
+
require 'cheeba/reader/builder'
|
|
7
|
+
MiniTest::Unit.autorun
|
|
8
|
+
|
|
9
|
+
class TestReaderBuilder < MiniTest::Unit::TestCase
|
|
10
|
+
def setup
|
|
11
|
+
@builder = Cheeba::Reader::Builder
|
|
12
|
+
@phash = { :msg => nil,
|
|
13
|
+
:spc => nil,
|
|
14
|
+
:key => nil,
|
|
15
|
+
:val => nil,
|
|
16
|
+
:ask => false,
|
|
17
|
+
:asv => false,
|
|
18
|
+
:opt => {:indent => 2}}
|
|
19
|
+
@dcs = @phash.merge({:msg => :dcs})
|
|
20
|
+
@dct = @phash.merge({:msg => :dct})
|
|
21
|
+
@hpr = @phash.merge({:msg => :hpr})
|
|
22
|
+
@hky = @phash.merge({:msg => :hky})
|
|
23
|
+
@arr = @phash.merge({:msg => :arr})
|
|
24
|
+
@mal = @phash.merge({:msg => :mal})
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
##
|
|
28
|
+
# build
|
|
29
|
+
#
|
|
30
|
+
def test_build_module
|
|
31
|
+
assert_kind_of Module, @builder
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def test_build_array_raise_rootnodeerror
|
|
35
|
+
hsh = {1 =>{"k1" => "awesome"}, :lst => {1 => "k1"}, :adr => [1,"k1"]}
|
|
36
|
+
val = "dude"
|
|
37
|
+
phs = @arr.merge({:val => val, :spc => 0})
|
|
38
|
+
assert_raises(Cheeba::Reader::Builder::RootNodeError) {@builder.build(hsh, phs)}
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def test_build_array_with_zero_indent
|
|
42
|
+
hsh = {}
|
|
43
|
+
val = "awesome"
|
|
44
|
+
phs = @arr.merge({:val => val, :spc => 0})
|
|
45
|
+
@builder.build(hsh, phs)
|
|
46
|
+
assert_equal(["awesome"], hsh[1])
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def test_build_array_into_hashkey
|
|
50
|
+
hsh = {:adr => [1, "k1"], 1 => {"k1" => {}}, :lst =>{}}
|
|
51
|
+
exp = {"k1" => ["awesome"]}
|
|
52
|
+
val = "awesome"
|
|
53
|
+
phs = @arr.merge({:val => val, :spc => 2})
|
|
54
|
+
@builder.build(hsh, phs)
|
|
55
|
+
assert_equal exp, hsh[1]
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def test_build_add_blank
|
|
59
|
+
hsh = {:adr => [1], 1 => {}, :lst => {}}
|
|
60
|
+
exp_lst1 = {1 => "#BLANK"}
|
|
61
|
+
exp_lst2 = {1 => "#BLANK", 2 => "#BLANK"}
|
|
62
|
+
@builder.build(hsh, {:msg => :bla})
|
|
63
|
+
assert_equal exp_lst1, hsh[:lst]
|
|
64
|
+
@builder.build(hsh, {:msg => :bla})
|
|
65
|
+
assert_equal exp_lst2, hsh[:lst]
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def test_build_malformed
|
|
69
|
+
hsh = {:adr => [1], 1 => {}, :lst => {}}
|
|
70
|
+
exp_lst1 = {1 => "#BLANK"}
|
|
71
|
+
exp_lst2 = {1 => "#BLANK", 2 => "#BLANK"}
|
|
72
|
+
@builder.build(hsh, {:msg => :bla})
|
|
73
|
+
assert_equal exp_lst1, hsh[:lst]
|
|
74
|
+
@builder.build(hsh, {:msg => :bla})
|
|
75
|
+
assert_equal exp_lst2, hsh[:lst]
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def test_build_array_into_array
|
|
79
|
+
hsh = {:adr => [1, "k1"], 1 => {"k1" => [1,2]}, :lst =>{}}
|
|
80
|
+
val = "awesome"
|
|
81
|
+
phs = @arr.merge({:val => val, :spc => 4})
|
|
82
|
+
@builder.build(hsh, phs)
|
|
83
|
+
exp_hsh = {"k1" => [1,2,["awesome"]]}
|
|
84
|
+
exp_adr = [1, "k1", 2]
|
|
85
|
+
assert_equal exp_hsh, hsh[1]
|
|
86
|
+
assert_equal exp_adr, hsh[:adr]
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
def test_build_hashpair_into_array
|
|
90
|
+
hsh = {:adr => [1, 0], 1 => [["awesome"]], :lst =>{}}
|
|
91
|
+
phs = @hpr.merge({:key => "dude", :val => "fekja", :spc => 2})
|
|
92
|
+
@builder.build(hsh, phs)
|
|
93
|
+
exp_hsh = [["awesome", {"dude" => "fekja"}]]
|
|
94
|
+
exp_adr = [1, 0]
|
|
95
|
+
assert_equal exp_hsh, hsh[1]
|
|
96
|
+
assert_equal exp_adr, hsh[:adr]
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
def test_build_hashkey_into_array
|
|
100
|
+
hsh = {:adr => [1, 0], 1 => [["awesome"]], :lst =>{}}
|
|
101
|
+
phs = @hky.merge({:key => "dude", :spc => 2})
|
|
102
|
+
@builder.build(hsh, phs)
|
|
103
|
+
exp_hsh = [["awesome", {"dude" => {}}]]
|
|
104
|
+
exp_adr = [1, 0, 1, "dude"]
|
|
105
|
+
assert_equal exp_hsh, hsh[1]
|
|
106
|
+
assert_equal exp_adr, hsh[:adr]
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
def test_cur
|
|
110
|
+
hsh1 = {:adr => [], :lst => {}, 1=>[7]}
|
|
111
|
+
hsh2 = {:adr => [], :lst => {}, 1=>[7], 2=>[8]}
|
|
112
|
+
exp_hsh1 = [7]
|
|
113
|
+
exp_hsh2 = [8]
|
|
114
|
+
act_hsh1 = @builder.cur(hsh1)
|
|
115
|
+
act_hsh2 = @builder.cur(hsh2)
|
|
116
|
+
assert_equal exp_hsh1, act_hsh1
|
|
117
|
+
assert_equal exp_hsh2, act_hsh2
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
def test_doc_new
|
|
121
|
+
exp1 = {:adr => [1], :lst => {}, 1=>{}}
|
|
122
|
+
exp2 = {:adr => [2], :lst => {}, 1=>{}, 2=>{}}
|
|
123
|
+
hsh = {}
|
|
124
|
+
@builder.doc_new(hsh)
|
|
125
|
+
assert_equal exp1, hsh
|
|
126
|
+
@builder.doc_new(hsh)
|
|
127
|
+
assert_equal exp2, hsh
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
def test_space
|
|
131
|
+
assert_equal 1, @builder.index(2,2)
|
|
132
|
+
assert_equal 1, @builder.index(8,8)
|
|
133
|
+
assert_equal 3, @builder.index(9,3)
|
|
134
|
+
assert_equal 0, @builder.index(4,3)
|
|
135
|
+
assert_equal 0, @builder.index(0,2)
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
def test_to_adr_all_numbers
|
|
139
|
+
adr = [1, 2, 3]
|
|
140
|
+
exp = "[1][2][3]"
|
|
141
|
+
assert exp, @builder.to_adr(adr)
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
##
|
|
145
|
+
# address object
|
|
146
|
+
#
|
|
147
|
+
def test_adr_obj
|
|
148
|
+
x = "awesome"
|
|
149
|
+
hsh = {1 => [{"k1" => x}]}
|
|
150
|
+
adr = [1, 0, "k1"]
|
|
151
|
+
act = @builder.adr_obj(hsh, adr)
|
|
152
|
+
assert_equal x, act
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
def test_to_adr_all_string
|
|
156
|
+
adr = ["k1", "k2"]
|
|
157
|
+
exp = "['k1']['k2']"
|
|
158
|
+
assert exp, @builder.to_adr(adr)
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
def test_to_adr_mixed
|
|
162
|
+
adr = ["k1", 1, 2, 3, "k2", 4]
|
|
163
|
+
exp = "['k1'][1][2][3]['k2'][4]"
|
|
164
|
+
assert exp, @builder.to_adr(adr)
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
def test_add_to_list
|
|
168
|
+
lst = {}
|
|
169
|
+
exp_lst1 = {1 => "k1"}
|
|
170
|
+
exp_lst2 = {1 => "k1", 2 => "k1,k2"}
|
|
171
|
+
exp_lst3 = {1 => "k1", 2 => "k1,k2", 3 => "string"}
|
|
172
|
+
@builder.add_to_list(lst, ["k1"])
|
|
173
|
+
assert_equal exp_lst1, lst
|
|
174
|
+
@builder.add_to_list(lst, ["k1","k2"])
|
|
175
|
+
assert_equal exp_lst2, lst
|
|
176
|
+
@builder.add_to_list(lst, "string")
|
|
177
|
+
assert_equal exp_lst3, lst
|
|
178
|
+
end
|
|
179
|
+
|
|
180
|
+
def test_update_index_greater_than_before
|
|
181
|
+
# index > length
|
|
182
|
+
idx = 5
|
|
183
|
+
adr = [1,2,3,4,5]
|
|
184
|
+
exp = "gt"
|
|
185
|
+
act = @builder.update(adr, idx)
|
|
186
|
+
assert_equal 5, adr.length
|
|
187
|
+
assert_equal exp, act
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
def test_update_index_same_as_before
|
|
191
|
+
# index == length; remain the same
|
|
192
|
+
idx = 4
|
|
193
|
+
adr = [1,2,3,4,5]
|
|
194
|
+
exp = "eq"
|
|
195
|
+
act = @builder.update(adr, idx)
|
|
196
|
+
assert_equal 5, adr.length
|
|
197
|
+
assert_equal exp, act
|
|
198
|
+
end
|
|
199
|
+
|
|
200
|
+
def test_update_index_less_than_before
|
|
201
|
+
# remain the same because 0 is the doc
|
|
202
|
+
idx = 3
|
|
203
|
+
adr = [1,2,3,4,5]
|
|
204
|
+
exp_msg = "lt"
|
|
205
|
+
exp_adr = [1,2,3,4]
|
|
206
|
+
act = @builder.update(adr, idx)
|
|
207
|
+
assert_equal 4, adr.length
|
|
208
|
+
assert_equal exp_msg, act
|
|
209
|
+
assert_equal exp_adr, adr
|
|
210
|
+
end
|
|
211
|
+
|
|
212
|
+
def test_update_zero_index
|
|
213
|
+
idx = 0
|
|
214
|
+
adr = [1,2,3,4,5]
|
|
215
|
+
exp_msg = "lt"
|
|
216
|
+
exp_adr = [1]
|
|
217
|
+
act = @builder.update(adr, idx)
|
|
218
|
+
assert_equal 1, adr.length
|
|
219
|
+
assert_equal exp_msg, act
|
|
220
|
+
assert_equal exp_adr, adr
|
|
221
|
+
end
|
|
222
|
+
|
|
223
|
+
def test_blank_line
|
|
224
|
+
hsh = {:lst => {}}
|
|
225
|
+
exp_lst1 = {1=>"#BLANK"}
|
|
226
|
+
exp_lst2 = {1=>"#BLANK",2=>"#BLANK"}
|
|
227
|
+
@builder.blank(hsh[:lst])
|
|
228
|
+
assert_equal exp_lst1, hsh[:lst]
|
|
229
|
+
@builder.blank(hsh[:lst])
|
|
230
|
+
assert_equal exp_lst2, hsh[:lst]
|
|
231
|
+
end
|
|
232
|
+
|
|
233
|
+
def test_doc_start
|
|
234
|
+
hsh = {}
|
|
235
|
+
exp_lst1 = {1=>"#DOC_START"}
|
|
236
|
+
exp_lst2 = {1=>"#DOC_START",2=>"#DOC_START"}
|
|
237
|
+
@builder.doc_start(hsh)
|
|
238
|
+
assert_equal exp_lst1, hsh[:lst]
|
|
239
|
+
@builder.doc_start(hsh)
|
|
240
|
+
assert_equal exp_lst2, hsh[:lst]
|
|
241
|
+
end
|
|
242
|
+
|
|
243
|
+
def test_doc_term
|
|
244
|
+
hsh = {:adr => [], :lst => {}}
|
|
245
|
+
exp_lst1 = {1 => "#DOC_TERM"}
|
|
246
|
+
exp_lst2 = {1 => "#DOC_TERM", 2 => "#DOC_TERM"}
|
|
247
|
+
@builder.doc_term(hsh)
|
|
248
|
+
assert_equal exp_lst1, hsh[:lst]
|
|
249
|
+
@builder.doc_term(hsh)
|
|
250
|
+
assert_equal exp_lst2, hsh[:lst]
|
|
251
|
+
end
|
|
252
|
+
|
|
253
|
+
def test_hashkey_into_hash
|
|
254
|
+
las = {}
|
|
255
|
+
adr = []
|
|
256
|
+
@builder.hsh_key(las, adr, "k1")
|
|
257
|
+
exp_las = {"k1" => {}}
|
|
258
|
+
exp_adr = ["k1"]
|
|
259
|
+
assert_equal exp_las, las
|
|
260
|
+
assert_equal exp_adr, adr
|
|
261
|
+
end
|
|
262
|
+
|
|
263
|
+
def test_hashkey_into_array
|
|
264
|
+
las = []
|
|
265
|
+
adr = []
|
|
266
|
+
@builder.hsh_key(las, adr, "k1")
|
|
267
|
+
exp_las = [{"k1" => {}}]
|
|
268
|
+
exp_adr = [0,"k1"]
|
|
269
|
+
assert_equal exp_las, las
|
|
270
|
+
assert_equal exp_adr, adr
|
|
271
|
+
end
|
|
272
|
+
|
|
273
|
+
def test_hashpair_into_hash
|
|
274
|
+
las = {}
|
|
275
|
+
exp1 = {"k1" => "awesome"}
|
|
276
|
+
exp2 = {"k1" => "awesome", "k2" => "dude"}
|
|
277
|
+
@builder.hsh_pair(las, "k1", "awesome")
|
|
278
|
+
assert_equal exp1, las
|
|
279
|
+
@builder.hsh_pair(las, "k2", "dude")
|
|
280
|
+
assert_equal exp2, las
|
|
281
|
+
end
|
|
282
|
+
|
|
283
|
+
def test_hashpair_into_array
|
|
284
|
+
las = []
|
|
285
|
+
exp1 = [{"k1" => "awesome"}]
|
|
286
|
+
exp2 = [{"k1" => "awesome"}, {"k2" => "dude"}]
|
|
287
|
+
@builder.hsh_pair(las, "k1", "awesome")
|
|
288
|
+
assert_equal exp1, las
|
|
289
|
+
@builder.hsh_pair(las, "k2", "dude")
|
|
290
|
+
assert_equal exp2, las
|
|
291
|
+
end
|
|
292
|
+
|
|
293
|
+
def test_comment
|
|
294
|
+
lst = {}
|
|
295
|
+
exp = {1 => "#COMMENT: awesome"}
|
|
296
|
+
@builder.comment(lst, "awesome")
|
|
297
|
+
assert_equal exp, lst
|
|
298
|
+
exp = {1 => "#COMMENT: awesome", 2 => "#COMMENT: dude"}
|
|
299
|
+
@builder.comment(lst, "dude")
|
|
300
|
+
assert_equal exp, lst
|
|
301
|
+
end
|
|
302
|
+
|
|
303
|
+
def test_array_into_hash
|
|
304
|
+
las = {}
|
|
305
|
+
adr = []
|
|
306
|
+
exp_las = {}
|
|
307
|
+
exp_adr = []
|
|
308
|
+
val = "awesome"
|
|
309
|
+
@builder.array_new(las, adr, val)
|
|
310
|
+
assert_equal exp_las, las
|
|
311
|
+
assert_equal exp_adr, adr
|
|
312
|
+
end
|
|
313
|
+
|
|
314
|
+
def test_array_into_array
|
|
315
|
+
las = [3]
|
|
316
|
+
adr = []
|
|
317
|
+
val = "awesome"
|
|
318
|
+
exp_las = [3,["awesome"]]
|
|
319
|
+
exp_adr = [1]
|
|
320
|
+
@builder.array_new(las, adr, val)
|
|
321
|
+
assert_equal exp_las, las
|
|
322
|
+
assert_equal exp_adr, adr
|
|
323
|
+
end
|
|
324
|
+
|
|
325
|
+
def test_add_value_to_array
|
|
326
|
+
las = []
|
|
327
|
+
adr = []
|
|
328
|
+
@builder.array_val(las, 1)
|
|
329
|
+
assert_equal [], adr
|
|
330
|
+
assert_equal [1], las
|
|
331
|
+
@builder.array_val(las, 2)
|
|
332
|
+
assert_equal [], adr
|
|
333
|
+
assert_equal [1,2], las
|
|
334
|
+
end
|
|
335
|
+
|
|
336
|
+
def test_malformed
|
|
337
|
+
lst = {}
|
|
338
|
+
exp = {1 => "#MALFORMED: string1"}
|
|
339
|
+
@builder.malformed(lst, "string1")
|
|
340
|
+
assert_equal exp, lst
|
|
341
|
+
exp = {1 => "#MALFORMED: string1", 2 => "#MALFORMED: string2"}
|
|
342
|
+
@builder.malformed(lst, "string2")
|
|
343
|
+
assert_equal exp, lst
|
|
344
|
+
end
|
|
345
|
+
end
|