(t *testing.T)
| 103 | } |
| 104 | |
| 105 | func Test_SingleNode(t *testing.T) { |
| 106 | node := mustNewLeaderNode("node1") |
| 107 | defer node.Deprovision() |
| 108 | |
| 109 | tests := []struct { |
| 110 | stmt string |
| 111 | expected string |
| 112 | execute bool |
| 113 | }{ |
| 114 | { |
| 115 | stmt: `CREATE TABLE foo (id integer not null primary key, name text)`, |
| 116 | expected: `{"results":[{}]}`, |
| 117 | execute: true, |
| 118 | }, |
| 119 | { |
| 120 | stmt: `INSERT INTO foo(name) VALUES("fiona")`, |
| 121 | expected: `{"results":[{"last_insert_id":1,"rows_affected":1}]}`, |
| 122 | execute: true, |
| 123 | }, |
| 124 | { |
| 125 | stmt: `INSERT INTO bar(name) VALUES("fiona")`, |
| 126 | expected: `{"results":[{"error":"no such table: bar"}]}`, |
| 127 | execute: true, |
| 128 | }, |
| 129 | { |
| 130 | stmt: `INSERT blah blah`, |
| 131 | expected: `{"results":[{"error":"near \"blah\": syntax error"}]}`, |
| 132 | execute: true, |
| 133 | }, |
| 134 | { |
| 135 | stmt: `SELECT * FROM foo`, |
| 136 | expected: `{"results":[{"columns":["id","name"],"types":["integer","text"],"values":[[1,"fiona"]]}]}`, |
| 137 | execute: false, |
| 138 | }, |
| 139 | { |
| 140 | stmt: `DROP TABLE bar`, |
| 141 | expected: `{"results":[{"error":"no such table: bar"}]}`, |
| 142 | execute: true, |
| 143 | }, |
| 144 | { |
| 145 | stmt: `DROP TABLE foo`, |
| 146 | expected: `{"results":[{"last_insert_id":1,"rows_affected":1}]}`, |
| 147 | execute: true, |
| 148 | }, |
| 149 | } |
| 150 | |
| 151 | for i, tt := range tests { |
| 152 | var r string |
| 153 | var err error |
| 154 | if tt.execute { |
| 155 | r, err = node.Execute(tt.stmt) |
| 156 | } else { |
| 157 | r, err = node.Query(tt.stmt) |
| 158 | } |
| 159 | if err != nil { |
| 160 | t.Fatalf(`test %d failed "%s": %s`, i, tt.stmt, err.Error()) |
| 161 | } |
| 162 | if r != tt.expected { |
nothing calls this directly
no test coverage detected