Files
godb/internals/vm/vm_test.go
T

55 lines
1.6 KiB
Go
Raw Normal View History

2026-07-26 23:07:28 +05:30
package vm
import (
"godb/internals/buffer"
"testing"
)
var inputBuffer = buffer.NewInputBuffer()
var statement = NewStatement()
func TestVM(t *testing.T) {
tests := []struct {
name string
input string
prepareStatusExpected PrepareResults
statementResultExpected statementType
}{
{
name: "Testing Select Statement",
input: "select",
prepareStatusExpected: PrepareSuccess,
statementResultExpected: StatementSelect,
},
{
name: "Testing Insert Statement",
input: "insert 0 hello hello.com",
prepareStatusExpected: PrepareSuccess,
statementResultExpected: StatementInsert,
},
{
name: "Testing Unrecognized Statement",
input: "something",
prepareStatusExpected: PrepareUnrecognised,
statementResultExpected: StatementUnrecognized,
},
{
name: "Testing Syntax Errors",
input: "insert 0 hello",
prepareStatusExpected: PrepareSyntaxError,
statementResultExpected: StatementUnrecognized,
},
}
2026-07-26 23:07:28 +05:30
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
inputBuffer.Buffer = test.input
result := statement.PrepareStatements(inputBuffer)
if result != test.prepareStatusExpected && statement.stype == test.statementResultExpected {
t.Errorf("Expected prepareResult and stype to be: (%v, %v), got: (%v,%v)\n", test.prepareStatusExpected, test.statementResultExpected, result, statement.stype)
}
})
2026-07-26 23:07:28 +05:30
}
}