Skip to content

Commit

Permalink
Add test for TOML parser
Browse files Browse the repository at this point in the history
Removed comments and print statement from test.
  • Loading branch information
amarlearning committed May 23, 2022
1 parent ab0a5ac commit 69fa98f
Show file tree
Hide file tree
Showing 3 changed files with 140 additions and 3 deletions.
1 change: 0 additions & 1 deletion parsers/hcl/hcl_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
140 changes: 140 additions & 0 deletions parsers/toml/toml_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
package toml

import (
"testing"

"github.com/stretchr/testify/assert"
)

func TestTOML_Unmarshal(t *testing.T) {

testCases := []struct {
name string
input []byte
keys []string
values []interface{}
isErr bool
}{
{
name: "Empty TOML",
input: []byte(``),
},
{
name: "Valid TOML",
input: []byte(`key = "val"
name = "test"
number = 2
`),
keys: []string{"key", "name", "number"},
values: []interface{}{"val", "test", 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"`),
keys: []string{"array", "boolean", "color", "null", "number", "object", "string"},
values: []interface{}{[]interface{}{int64(1), int64(2), int64(3)},
true,
"gold",
nil,
int64(123),
map[string]interface{}{"a": "b", "c": "d"},
"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)
for i, k := range tc.keys {
v := out[k]
assert.Equal(t, tc.values[i], v)
}
}
})
}
}

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(``),
},
{
name: "Valid TOML",
input: map[string]interface{}{
"key": "val",
"name": "test",
"number": 2.0,
},
output: []byte(`key = "val"
name = "test"
number = 2`),
},
{
name: "Complex TOML - All types",
input: map[string]interface{}{
"array": []interface{}{1, 2, 3, 4, 5},
"boolean": true,
"color": "gold",
"null": nil,
"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)
}
})
}
}
2 changes: 0 additions & 2 deletions parsers/yaml/yaml_test.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package yaml

import (
"fmt"
"testing"

"github.com/stretchr/testify/assert"
Expand Down Expand Up @@ -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)
}
}
Expand Down

0 comments on commit 69fa98f

Please sign in to comment.