@@ -135,3 +135,70 @@ func TestMaporsliceYaml(t *testing.T) {
135
135
assert .True (t , contains (s2 .Foo , "far=1" ))
136
136
assert .True (t , contains (s2 .Foo , "qux" ))
137
137
}
138
+
139
+ func TestMapWithEmptyValue (t * testing.T ) {
140
+ str := `foo:
141
+ bar: baz
142
+ far: 1
143
+ qux: null
144
+ empty: ""
145
+ lookup:`
146
+
147
+ s := StructMaporslice {}
148
+ yaml .Unmarshal ([]byte (str ), & s )
149
+
150
+ assert .Equal (t , 5 , len (s .Foo ))
151
+ assert .True (t , contains (s .Foo , "bar=baz" ))
152
+ assert .True (t , contains (s .Foo , "far=1" ))
153
+ assert .True (t , contains (s .Foo , "qux" ))
154
+ assert .True (t , contains (s .Foo , "empty=" ))
155
+ assert .True (t , contains (s .Foo , "lookup" ))
156
+
157
+ d , err := yaml .Marshal (& s )
158
+ assert .Nil (t , err )
159
+
160
+ s2 := StructMaporslice {}
161
+ yaml .Unmarshal (d , & s2 )
162
+
163
+ assert .Equal (t , 5 , len (s2 .Foo ))
164
+ assert .True (t , contains (s2 .Foo , "bar=baz" ))
165
+ assert .True (t , contains (s2 .Foo , "far=1" ))
166
+ assert .True (t , contains (s2 .Foo , "qux" ))
167
+ assert .True (t , contains (s2 .Foo , "empty=" ))
168
+ assert .True (t , contains (s2 .Foo , "lookup" ))
169
+ }
170
+
171
+ func TestSliceWithEmptyValue (t * testing.T ) {
172
+ str := `foo:
173
+ - bar=baz
174
+ - far=1
175
+ - qux=null
176
+ - quotes=""
177
+ - empty=
178
+ - lookup`
179
+
180
+ s := StructMaporslice {}
181
+ yaml .Unmarshal ([]byte (str ), & s )
182
+
183
+ assert .Equal (t , 6 , len (s .Foo ))
184
+ assert .True (t , contains (s .Foo , "bar=baz" ))
185
+ assert .True (t , contains (s .Foo , "far=1" ))
186
+ assert .True (t , contains (s .Foo , "qux=null" ))
187
+ assert .True (t , contains (s .Foo , "quotes=\" \" " ))
188
+ assert .True (t , contains (s .Foo , "empty=" ))
189
+ assert .True (t , contains (s .Foo , "lookup" ))
190
+
191
+ d , err := yaml .Marshal (& s )
192
+ assert .Nil (t , err )
193
+
194
+ s2 := StructMaporslice {}
195
+ yaml .Unmarshal (d , & s2 )
196
+
197
+ assert .Equal (t , 6 , len (s2 .Foo ))
198
+ assert .True (t , contains (s2 .Foo , "bar=baz" ))
199
+ assert .True (t , contains (s2 .Foo , "far=1" ))
200
+ assert .True (t , contains (s2 .Foo , "qux=null" ))
201
+ assert .True (t , contains (s2 .Foo , "quotes=\" \" " ))
202
+ assert .True (t , contains (s2 .Foo , "empty=" ))
203
+ assert .True (t , contains (s2 .Foo , "lookup" ))
204
+ }
0 commit comments