(t *testing.T)
| 977 | } |
| 978 | |
| 979 | func (engineTestSuite *engineTableContentTestSuite) runTestSuite(t *testing.T) { |
| 980 | expectedSequencesNumber := 0 |
| 981 | |
| 982 | input := inputsToString(engineTestSuite.createInputs) + inputsToString(engineTestSuite.insertAndDeleteInputs) |
| 983 | |
| 984 | sequencesWithoutSelect := getSequences(input) |
| 985 | selectCommand := getSequences(engineTestSuite.selectInput) |
| 986 | |
| 987 | expectedSequencesNumber += len(engineTestSuite.createInputs) + len(engineTestSuite.insertAndDeleteInputs) + 1 |
| 988 | |
| 989 | if len(sequencesWithoutSelect.Commands)+len(selectCommand.Commands) != expectedSequencesNumber { |
| 990 | t.Fatalf("sequences does not contain %d statements. got=%d", expectedSequencesNumber, len(sequencesWithoutSelect.Commands)) |
| 991 | } |
| 992 | |
| 993 | engine := New() |
| 994 | _, err := engine.Evaluate(sequencesWithoutSelect) |
| 995 | if err != nil { |
| 996 | log.Fatal(err) |
| 997 | } |
| 998 | actualTable, err := engine.getSelectResponse(selectCommand.Commands[0].(*ast.SelectCommand)) |
| 999 | if err != nil { |
| 1000 | log.Fatal(err) |
| 1001 | } |
| 1002 | |
| 1003 | if len(engineTestSuite.expectedOutput) == 0 { |
| 1004 | if len(actualTable.Columns[0].Values) != 0 { |
| 1005 | t.Fatalf("Number of rows is incorrect, should be 0, got %d", len(actualTable.Columns)) |
| 1006 | } |
| 1007 | } else { |
| 1008 | if len(actualTable.Columns) != len(engineTestSuite.expectedOutput[0]) { |
| 1009 | t.Fatalf("Number of columns is incorrect, expecting %d, got %d", len(engineTestSuite.expectedOutput[0]), len(actualTable.Columns)) |
| 1010 | } |
| 1011 | |
| 1012 | if len(actualTable.Columns[0].Values) != len(engineTestSuite.expectedOutput)-1 { |
| 1013 | t.Fatalf("Number of rows is incorrect, expecting %d, got %d", len(engineTestSuite.expectedOutput)-1, len(actualTable.Columns[0].Values)) |
| 1014 | } |
| 1015 | |
| 1016 | for iColumn := 0; iColumn < len(actualTable.Columns); iColumn++ { |
| 1017 | for iRow := 0; iRow < len(actualTable.Columns[0].Values); iRow++ { |
| 1018 | if engineTestSuite.expectedOutput[iRow+1][iColumn] != actualTable.Columns[iColumn].Values[iRow].ToString() { |
| 1019 | t.Fatalf("Value doesn't match, expected: %s, got: %s", engineTestSuite.expectedOutput[iRow+1][iColumn], actualTable.Columns[iColumn].Values[iRow].ToString()) |
| 1020 | } |
| 1021 | } |
| 1022 | } |
| 1023 | } |
| 1024 | |
| 1025 | } |
| 1026 | |
| 1027 | func inputsToString(inputs []string) string { |
| 1028 | input := "" |
no test coverage detected