Add unit tests for Parser (#1815)
This commit is contained in:
parent
4f4980b66b
commit
238ac5e765
1 changed files with 63 additions and 0 deletions
63
parser/parser_test.go
Normal file
63
parser/parser_test.go
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
package parser
|
||||||
|
|
||||||
|
import (
|
||||||
|
"strings"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
func Test_Parser(t *testing.T) {
|
||||||
|
|
||||||
|
input := `
|
||||||
|
FROM model1
|
||||||
|
ADAPTER adapter1
|
||||||
|
LICENSE MIT
|
||||||
|
PARAMETER param1 value1
|
||||||
|
PARAMETER param2 value2
|
||||||
|
TEMPLATE template1
|
||||||
|
`
|
||||||
|
|
||||||
|
reader := strings.NewReader(input)
|
||||||
|
|
||||||
|
commands, err := Parse(reader)
|
||||||
|
assert.Nil(t, err)
|
||||||
|
|
||||||
|
expectedCommands := []Command{
|
||||||
|
{Name: "model", Args: "model1"},
|
||||||
|
{Name: "adapter", Args: "adapter1"},
|
||||||
|
{Name: "license", Args: "MIT"},
|
||||||
|
{Name: "param1", Args: "value1"},
|
||||||
|
{Name: "param2", Args: "value2"},
|
||||||
|
{Name: "template", Args: "template1"},
|
||||||
|
}
|
||||||
|
|
||||||
|
assert.Equal(t, expectedCommands, commands)
|
||||||
|
}
|
||||||
|
|
||||||
|
func Test_Parser_NoFromLine(t *testing.T) {
|
||||||
|
|
||||||
|
input := `
|
||||||
|
PARAMETER param1 value1
|
||||||
|
PARAMETER param2 value2
|
||||||
|
`
|
||||||
|
|
||||||
|
reader := strings.NewReader(input)
|
||||||
|
|
||||||
|
_, err := Parse(reader)
|
||||||
|
assert.ErrorContains(t, err, "no FROM line")
|
||||||
|
}
|
||||||
|
|
||||||
|
func Test_Parser_MissingValue(t *testing.T) {
|
||||||
|
|
||||||
|
input := `
|
||||||
|
FROM foo
|
||||||
|
PARAMETER param1
|
||||||
|
`
|
||||||
|
|
||||||
|
reader := strings.NewReader(input)
|
||||||
|
|
||||||
|
_, err := Parse(reader)
|
||||||
|
assert.ErrorContains(t, err, "missing value for [param1]")
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in a new issue