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, }, } 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) } }) } }