From 113f271a255dca61c65ba9ecca6a5a81462153c0 Mon Sep 17 00:00:00 2001 From: Susumu Yata Date: Fri, 7 Jul 2017 13:08:52 +0900 Subject: [PATCH] Add tests for table_remove. GitHub: #39 --- v2/libgrn/db_test.go | 48 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/v2/libgrn/db_test.go b/v2/libgrn/db_test.go index c82a149..4b8659c 100644 --- a/v2/libgrn/db_test.go +++ b/v2/libgrn/db_test.go @@ -705,6 +705,54 @@ func TestDBTokenizeWithOptions(t *testing.T) { // } // } +func TestDBTableRemove(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) + } + _, resp, err := db.TableRemove("Tbl", false) + if err == nil { + err = resp.Err() + } + if err != nil { + t.Fatalf("db.TableRemove failed: %v", err) + } +} + +func TestDBTableRemoveInvalidName(t *testing.T) { + db, dir := makeDB(t) + defer removeDB(db, dir) + + _, resp, err := db.TableRemove("no_such_table", false) + if err != nil { + t.Fatalf("db.TableRemove failed: %v", err) + } + if resp.Err() == nil { + t.Fatalf("db.TableRemove wrongly succeeded") + } +} + +func TestDBTableRemoveDependent(t *testing.T) { + db, dir := makeDB(t) + defer removeDB(db, dir) + + dump := `table_create Referred TABLE_HASH_KEY ShortText +table_create Referrer TABLE_HASH_KEY Referred` + if _, err := db.Restore(strings.NewReader(dump), nil, true); err != nil { + t.Fatalf("db.Restore failed: %v", err) + } + _, resp, err := db.TableRemove("Referred", true) + if err == nil { + err = resp.Err() + } + if err != nil { + t.Fatalf("db.TableRemove failed: %v", err) + } +} + func TestDBTokenizerList(t *testing.T) { db, dir := makeDB(t) defer removeDB(db, dir)