1
0
Fork 0

Merge pull request #321 from rqlite/join_db_test

Unit test JOIN at the database level
master
Philip O'Toole 7 years ago committed by GitHub
commit 350e62a61f

@ -177,6 +177,44 @@ func Test_SimpleSingleStatements(t *testing.T) {
}
}
func Test_SimpleJoinStatements(t *testing.T) {
db, path := mustCreateDatabase()
defer db.Close()
defer os.Remove(path)
_, err := db.Execute([]string{"CREATE TABLE names (id INTEGER NOT NULL PRIMARY KEY, name TEXT, ssn TEXT)"}, false, false)
if err != nil {
t.Fatalf("failed to create table: %s", err.Error())
}
_, err = db.Execute([]string{
`INSERT INTO "names" VALUES(1,'bob','123-45-678')`,
`INSERT INTO "names" VALUES(2,'tom','111-22-333')`,
`INSERT INTO "names" VALUES(3,'matt','222-22-333')`,
}, false, false)
if err != nil {
t.Fatalf("failed to insert record: %s", err.Error())
}
_, err = db.Execute([]string{"CREATE TABLE staff (id INTEGER NOT NULL PRIMARY KEY, employer TEXT, ssn TEXT)"}, false, false)
if err != nil {
t.Fatalf("failed to create table: %s", err.Error())
}
_, err = db.Execute([]string{`INSERT INTO "staff" VALUES(1,'acme','222-22-333')`}, false, false)
if err != nil {
t.Fatalf("failed to insert record: %s", err.Error())
}
r, err := db.Query([]string{`SELECT names.id,name,names.ssn,employer FROM names INNER JOIN staff ON staff.ssn = names.ssn`}, false, false)
if err != nil {
t.Fatalf("failed to query table using JOIN: %s", err.Error())
}
if exp, got := `[{"columns":["id","name","ssn","employer"],"types":["integer","text","text","text"],"values":[[3,"matt","222-22-333","acme"]]}]`, asJSON(r); exp != got {
t.Fatalf("unexpected results for query\nexp: %s\ngot: %s", exp, got)
}
}
func Test_SimpleSingleConcatStatements(t *testing.T) {
db, path := mustCreateDatabase()
defer db.Close()

Loading…
Cancel
Save