From 238ac5e76559354f9b4e18098c853507316f2880 Mon Sep 17 00:00:00 2001 From: Patrick Devine Date: Fri, 5 Jan 2024 14:04:31 -0800 Subject: [PATCH] Add unit tests for Parser (#1815) --- parser/parser_test.go | 63 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 parser/parser_test.go diff --git a/parser/parser_test.go b/parser/parser_test.go new file mode 100644 index 00000000..53555ad1 --- /dev/null +++ b/parser/parser_test.go @@ -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]") + +}