1
0
Fork 0

Unit-test simple database insertion cases

master
Philip O'Toole 9 years ago
parent a67d94f926
commit 5a40c0f3e9

@ -1,6 +1,7 @@
package db
import (
"encoding/json"
"io/ioutil"
"os"
"path"
@ -47,55 +48,59 @@ func Test_TableCreation(t *testing.T) {
}
}
// func Test_SimpleStatements(t *testing.T) {
// dir, err := ioutil.TempDir("", "rqlite-test-")
// defer os.RemoveAll(dir)
// db := New(path.Join(dir, "test_db"))
// defer db.Close()
// err = db.Execute("create table foo (id integer not null primary key, name text)")
// c.Assert(err, IsNil)
// err = db.Execute("INSERT INTO foo(name) VALUES(\"fiona\")")
// c.Assert(err, IsNil)
// r, err := db.Query("SELECT * FROM foo")
// c.Assert(len(r), Equals, 1)
// c.Assert(r[0]["id"], Equals, "1")
// c.Assert(r[0]["name"], Equals, "fiona")
func Test_SimpleStatements(t *testing.T) {
db, path := mustOpenDatabase()
defer db.Close()
defer os.Remove(path)
// err = db.Execute("INSERT INTO foo(name) VALUES(\"dana\")")
// c.Assert(err, IsNil)
// r, err = db.Query("SELECT * FROM foo")
// c.Assert(len(r), Equals, 2)
// c.Assert(r[1]["id"], Equals, "2")
// c.Assert(r[1]["name"], Equals, "dana")
if err := db.Execute("create table foo (id integer not null primary key, name text)"); err != nil {
t.Fatalf("failed to create table: %s", err.Error())
}
// err = db.Execute("UPDATE foo SET Name='Who knows?' WHERE Id=1")
// c.Assert(err, IsNil)
// r, err = db.Query("SELECT * FROM foo")
// c.Assert(len(r), Equals, 2)
// c.Assert(r[0]["id"], Equals, "1")
// c.Assert(r[0]["name"], Equals, "Who knows?")
if err := db.Execute(`INSERT INTO foo(name) VALUES("fiona")`); err != nil {
t.Fatalf("failed to insert record: %s", err.Error())
}
r, err := db.Query("SELECT * FROM foo")
if err != nil {
t.Fatalf("failed to query empty table: %s", err.Error())
}
if exp, got := `[{"id":"1","name":"fiona"}]`, asJson(r); exp != got {
t.Fatalf("unexpected results for query, expected %s, got %s", exp, got)
}
// err = db.Execute("DELETE FROM foo WHERE Id=2")
// c.Assert(err, IsNil)
// r, err = db.Query("SELECT * FROM foo")
// c.Assert(len(r), Equals, 1)
// c.Assert(r[0]["id"], Equals, "1")
// c.Assert(r[0]["name"], Equals, "Who knows?")
if err := db.Execute(`INSERT INTO foo(name) VALUES("aoife")`); err != nil {
t.Fatalf("failed to insert record: %s", err.Error())
}
r, err = db.Query("SELECT * FROM foo")
if err != nil {
t.Fatalf("failed to query table: %s", err.Error())
}
if exp, got := `[{"id":"1","name":"fiona"},{"id":"2","name":"aoife"}]`, asJson(r); exp != got {
t.Fatalf("unexpected results for query, expected %s, got %s", exp, got)
}
// err = db.Execute("DELETE FROM foo WHERE Id=1")
// c.Assert(err, IsNil)
if err := db.Execute("UPDATE foo SET Name='Who knows?' WHERE Id=1"); err != nil {
t.Fatalf("failed to update record: %s", err.Error())
}
r, err = db.Query("SELECT * FROM foo")
if err != nil {
t.Fatalf("failed to query table: %s", err.Error())
}
if exp, got := `[{"id":"1","name":"Who knows?"},{"id":"2","name":"aoife"}]`, asJson(r); exp != got {
t.Fatalf("unexpected results for query, expected %s, got %s", exp, got)
}
// for i := 0; i < 10; i++ {
// _ = db.Execute("INSERT INTO foo(name) VALUES(\"philip\")")
// }
// r, err = db.Query("SELECT name FROM foo")
// c.Assert(len(r), Equals, 10)
// for i := range r {
// c.Assert(r[i]["name"], Equals, "philip")
// }
// }
if err := db.Execute("DELETE FROM foo WHERE Id=2"); err != nil {
t.Fatalf("failed to delete record: %s", err.Error())
}
r, err = db.Query("SELECT * FROM foo")
if err != nil {
t.Fatalf("failed to query table: %s", err.Error())
}
if exp, got := `[{"id":"1","name":"Who knows?"}]`, asJson(r); exp != got {
t.Fatalf("unexpected results for query, expected %s, got %s", exp, got)
}
}
// func Test_FailingSimpleStatements(t *testing.T) {
// dir, err := ioutil.TempDir("", "rqlite-test-")
@ -227,3 +232,11 @@ func mustOpenDatabase() (*DB, string) {
return db, f.Name()
}
func asJson(v interface{}) string {
b, err := json.Marshal(v)
if err != nil {
panic("failed to JSON marshal value")
}
return string(b)
}

Loading…
Cancel
Save