diff --git a/parsers/hcl/hcl_test.go b/parsers/hcl/hcl_test.go index f9028b3..8d76307 100644 --- a/parsers/hcl/hcl_test.go +++ b/parsers/hcl/hcl_test.go @@ -108,7 +108,6 @@ func TestHCL_Unmarshal(t *testing.T) { func TestHCL_Marshal(t *testing.T) { hclParserWithFlatten := Parser(true) - // hclParserWithoutFlatten := Parser(false) testCases := []struct { name string diff --git a/parsers/toml/toml_test.go b/parsers/toml/toml_test.go new file mode 100644 index 0000000..719b01d --- /dev/null +++ b/parsers/toml/toml_test.go @@ -0,0 +1,139 @@ +package toml + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestTOML_Unmarshal(t *testing.T) { + testCases := []struct { + name string + input []byte + output map[string]interface{} + isErr bool + }{ + { + name: "Empty TOML", + input: []byte(``), + output: map[string]interface{}{}, + }, + { + name: "Valid TOML", + input: []byte(`key = "val" + name = "test" + number = 2 + `), + output: map[string]interface{}{ + "key": "val", + "name": "test", + "number": int64(2), + }, + }, + { + name: "Invalid TOML - missing end quotes", + input: []byte(`key = "val`), + isErr: true, + }, + { + name: "Complex TOML - All types", + input: []byte(`array = [ 1, 2, 3 ] + boolean = true + color = "gold" + number = 123 + string = "Hello World" + [object] + a = "b" + c = "d"`), + output: map[string]interface{}{ + "array": []interface{}{int64(1), int64(2), int64(3)}, + "boolean": true, + "color": "gold", + "number": int64(123), + "object": map[string]interface{}{"a": "b", "c": "d"}, + "string": "Hello World", + }, + }, + { + name: "Invalid TOML - missing equal", + input: []byte(`key "val"`), + isErr: true, + }, + } + + tp := Parser() + + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + out, err := tp.Unmarshal(tc.input) + if tc.isErr { + assert.NotNil(t, err) + } else { + assert.Nil(t, err) + assert.Equal(t, tc.output, out) + } + }) + } +} + +func TestTOML_Marshal(t *testing.T) { + testCases := []struct { + name string + input map[string]interface{} + output []byte + isErr bool + }{ + { + name: "Empty TOML", + input: map[string]interface{}{}, + output: []byte(nil), + }, + { + name: "Valid TOML", + input: map[string]interface{}{ + "key": "val", + "name": "test", + "number": 2.0, + }, + output: []byte(`key = "val" +name = "test" +number = 2.0 +`), + }, + { + name: "Complex TOML - All types", + input: map[string]interface{}{ + "array": []interface{}{1, 2, 3, 4, 5}, + "boolean": true, + "color": "gold", + "number": 123, + "object": map[string]interface{}{"a": "b", "c": "d"}, + "string": "Hello World", + }, + output: []byte(`array = [1,2,3,4,5] +boolean = true +color = "gold" +number = 123 +string = "Hello World" + +[object] + a = "b" + c = "d" +`), + }, + } + + tp := Parser() + + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + out, err := tp.Marshal(tc.input) + if tc.isErr { + assert.NotNil(t, err) + } else { + assert.Nil(t, err) + assert.Equal(t, tc.output, out) + } + }) + } +} diff --git a/parsers/yaml/yaml_test.go b/parsers/yaml/yaml_test.go index 5049dd1..6d6e0bd 100644 --- a/parsers/yaml/yaml_test.go +++ b/parsers/yaml/yaml_test.go @@ -1,7 +1,6 @@ package yaml import ( - "fmt" "testing" "github.com/stretchr/testify/assert" @@ -83,7 +82,6 @@ key: #Here is a single-line comment assert.Nil(t, err) for i, k := range tc.keys { v := out[k] - fmt.Println(out[k]) assert.Equal(t, tc.values[i], v) } }