(t *testing.T)
| 188 | } |
| 189 | |
| 190 | func TestJSONMarshallable(t *testing.T) { |
| 191 | var ok bool |
| 192 | var in interface{} |
| 193 | var casted interface{} |
| 194 | var expected interface{} |
| 195 | var err error |
| 196 | |
| 197 | in = map[string]interface{}{"test": map[interface{}]interface{}{"testing": []string{}}} |
| 198 | expected = map[string]interface{}{"test": map[string]interface{}{"testing": []interface{}{}}} |
| 199 | casted, ok = JSONMarshallable(in) |
| 200 | require.True(t, ok) |
| 201 | require.Equal(t, expected, casted) |
| 202 | _, err = json.Marshal(casted) |
| 203 | require.Equal(t, err, nil) |
| 204 | |
| 205 | in = map[string]interface{}{"test": map[interface{}]interface{}{1: []string{}}, "slice": []int{1}} |
| 206 | casted, ok = JSONMarshallable(in) |
| 207 | require.False(t, ok) |
| 208 | |
| 209 | in = map[string]interface{}{"test": map[interface{}]interface{}{"1": []string{}}, "slice": []int{1}} |
| 210 | expected = map[string]interface{}{"test": map[string]interface{}{"1": []interface{}{}}, "slice": []interface{}{1}} |
| 211 | casted, ok = JSONMarshallable(in) |
| 212 | require.True(t, ok) |
| 213 | require.Equal(t, expected, casted) |
| 214 | _, err = json.Marshal(casted) |
| 215 | require.Equal(t, err, nil) |
| 216 | |
| 217 | in = map[string]interface{}{"test": nil} |
| 218 | expected = map[string]interface{}{"test": nil} |
| 219 | casted, ok = JSONMarshallable(in) |
| 220 | require.True(t, ok) |
| 221 | require.Equal(t, expected, casted) |
| 222 | _, err = json.Marshal(casted) |
| 223 | require.Equal(t, err, nil) |
| 224 | |
| 225 | in = map[string]interface{}{"slice": []interface{}{1, "1", map[interface{}]interface{}{"key": false}}} |
| 226 | expected = map[string]interface{}{"slice": []interface{}{1, "1", map[string]interface{}{"key": false}}} |
| 227 | casted, ok = JSONMarshallable(in) |
| 228 | require.True(t, ok) |
| 229 | require.Equal(t, expected, casted) |
| 230 | _, err = json.Marshal(casted) |
| 231 | require.Equal(t, err, nil) |
| 232 | |
| 233 | in = map[string]interface{}{} |
| 234 | expected = map[string]interface{}{} |
| 235 | casted, ok = JSONMarshallable(in) |
| 236 | require.True(t, ok) |
| 237 | require.Equal(t, expected, casted) |
| 238 | _, err = json.Marshal(casted) |
| 239 | require.Equal(t, err, nil) |
| 240 | } |
| 241 | |
| 242 | func TestFlattenInterfaceSlices(t *testing.T) { |
| 243 | expected := []interface{}{"a", "b", "c"} |
nothing calls this directly
no test coverage detected