github.com/hy3/cuto@v0.9.8-0.20160830082821-aa6652f877b7/db/connection_test.go (about) 1 // Copyright 2015 unirita Inc. 2 // Created 2015/04/10 shanxia 3 4 package db 5 6 import ( 7 "path/filepath" 8 9 "testing" 10 11 "github.com/unirita/cuto/testutil" 12 ) 13 14 var ( 15 dbfile = getDBFile() 16 ) 17 18 func getDBFile() string { 19 return filepath.Join(testutil.GetBaseDir(), "db", "_testdata", "test.sqlite") 20 } 21 22 func TestOpen_DBコネクションがOpenできる(t *testing.T) { 23 con, err := Open(dbfile) 24 if err != nil { 25 t.Errorf("DBとの接続に失敗しました。 - %v", err) 26 } else if con == nil { 27 t.Error("Connectionオブジェクトがnilを返しました。") 28 } 29 defer con.Close() 30 } 31 32 func TestOpen_存在しないファイルを指定する(t *testing.T) { 33 testfile := "xxx.testDB" 34 con, err := Open(testfile) 35 if err == nil { 36 t.Errorf("DBとの接続に失敗しなければならないところ、成功が返りました。") 37 } else if con != nil { 38 defer con.Close() 39 } 40 } 41 42 func TestOpen_存在しないドライバを指定する(t *testing.T) { 43 bk := sqlite3_driver 44 sqlite3_driver = "sqlite2" // 存在しないドライバ名 45 defer func(driver string) { 46 sqlite3_driver = driver 47 }(bk) 48 49 con, err := Open(dbfile) // 存在しないDBファイルを指定しても成功してしまう。 50 if err == nil { 51 t.Errorf("エラーを返すべきところ、エラー情報がnilを返しました。") 52 } 53 if con != nil { 54 t.Error("エラーが返ってきたのに、connectionオブジェクトがnilではなかった。") 55 } 56 } 57 58 func TestGetDbMap_DBMapを取得する(t *testing.T) { 59 con, err := Open(dbfile) 60 if err != nil { 61 t.Fatalf("DBとの接続に失敗しました。 - %v", err) 62 } else if con == nil { 63 t.Fatal("Connectionオブジェクトがnilを返しました。") 64 } 65 defer con.Close() 66 67 if dbMap := con.GetDbMap(); dbMap == nil { 68 t.Error("DBMapが取得できません。") 69 } 70 } 71 72 func TestGetDb_DBオブジェクトを取得する(t *testing.T) { 73 con, err := Open(dbfile) 74 if err != nil { 75 t.Fatalf("DBとの接続に失敗しました。 - %v", err) 76 } else if con == nil { 77 t.Fatal("Connectionオブジェクトがnilを返しました。") 78 } 79 defer con.Close() 80 81 if db := con.GetDb(); db == nil { 82 t.Error("DBオブジェクトが取得できません。") 83 } 84 }