Susumu Yata
null+****@clear*****
Thu Sep 14 14:45:52 JST 2017
Susumu Yata 2017-09-14 14:45:52 +0900 (Thu, 14 Sep 2017) New Revision: ea93020eca3f664784e19e4a155d8a378b60349d https://github.com/groonga/grnci/commit/ea93020eca3f664784e19e4a155d8a378b60349d Message: Add tests for DB.DeleteBy*. Ref: #39 Modified files: v2/libgrn/db_test.go Modified: v2/libgrn/db_test.go (+81 -0) =================================================================== --- v2/libgrn/db_test.go 2017-09-14 14:37:09 +0900 (a2e61cd) +++ v2/libgrn/db_test.go 2017-09-14 14:45:52 +0900 (d42869d) @@ -301,6 +301,87 @@ func TestDBDatabaseUnmap(t *testing.T) { } } +func TestDBDeleteByFilter(t *testing.T) { + db, dir := makeDB(t) + defer removeDB(db, dir) + + dump := `table_create Tbl TABLE_PAT_KEY ShortText + load --table Tbl --values '[["_key"],["foo"]]'` + if _, err := db.Restore(strings.NewReader(dump), nil, true); err != nil { + t.Fatalf("db.Restore failed: %v", err) + } + if err := db.DeleteByFilter("Tbl", "_key == \"foo\""); err != nil { + t.Fatalf("db.DeleteByFilter failed: %v", err) + } +} + +func TestDBDeleteByFilterInvalidFilter(t *testing.T) { + db, dir := makeDB(t) + defer removeDB(db, dir) + + dump := `table_create Tbl TABLE_NO_KEY` + if _, err := db.Restore(strings.NewReader(dump), nil, true); err != nil { + t.Fatalf("db.Restore failed: %v", err) + } + if err := db.DeleteByFilter("Tbl", "no_such_filter"); err == nil { + t.Fatalf("db.DeleteByFilter wrongly succeeded") + } +} + +func TestDBDeleteByID(t *testing.T) { + db, dir := makeDB(t) + defer removeDB(db, dir) + + dump := `table_create Tbl TABLE_NO_KEY +load --table Tbl --values '[[],[]]'` + if _, err := db.Restore(strings.NewReader(dump), nil, true); err != nil { + t.Fatalf("db.Restore failed: %v", err) + } + if err := db.DeleteByID("Tbl", 1); err != nil { + t.Fatalf("db.DeleteByID failed: %v", err) + } +} + +func TestDBDeleteByIDInvalidID(t *testing.T) { + db, dir := makeDB(t) + defer removeDB(db, dir) + + dump := `table_create Tbl TABLE_NO_KEY` + if _, err := db.Restore(strings.NewReader(dump), nil, true); err != nil { + t.Fatalf("db.Restore failed: %v", err) + } + if err := db.DeleteByID("Tbl", 1); err == nil { + t.Fatalf("db.DeleteByID wrongly succeeded") + } +} + +func TestDBDeleteByKey(t *testing.T) { + db, dir := makeDB(t) + defer removeDB(db, dir) + + dump := `table_create Tbl TABLE_PAT_KEY ShortText +load --table Tbl --values '[["_key"],["foo"]]'` + if _, err := db.Restore(strings.NewReader(dump), nil, true); err != nil { + t.Fatalf("db.Restore failed: %v", err) + } + if err := db.DeleteByKey("Tbl", "foo"); err != nil { + t.Fatalf("db.DeleteByKey failed: %v", err) + } +} + +func TestDBDeleteByKeyInvalidKey(t *testing.T) { + db, dir := makeDB(t) + defer removeDB(db, dir) + + dump := `table_create Tbl TABLE_NO_KEY` + if _, err := db.Restore(strings.NewReader(dump), nil, true); err != nil { + t.Fatalf("db.Restore failed: %v", err) + } + if err := db.DeleteByKey("Tbl", "no_such_key"); err == nil { + t.Fatalf("db.DeleteByKey wrongly succeeded") + } +} + func TestDBDump(t *testing.T) { db, dir := makeDB(t) defer removeDB(db, dir) -------------- next part -------------- HTML����������������������������... URL: https://lists.osdn.me/mailman/archives/groonga-commit/attachments/20170914/443d3f18/attachment-0001.htm