github.com/abolfazlbeh/zhycan@v0.0.0-20230819144214-24cf38237387/internal/db/manager_test.go (about) 1 package db 2 3 import ( 4 "github.com/abolfazlbeh/zhycan/internal/config" 5 "gorm.io/gorm" 6 "reflect" 7 "testing" 8 ) 9 10 func TestManager_Init(t *testing.T) { 11 makeReadyConfigManager() 12 13 m := manager{} 14 m.init() 15 16 if m.name != "db" { 17 t.Errorf("Expected manager name to be 'db', got '%s'", m.name) 18 } 19 } 20 21 func TestManager_CheckInitialization(t *testing.T) { 22 makeReadyConfigManager() 23 24 m := manager{} 25 m.init() 26 27 if len(m.sqliteDbInstances) != 1 { 28 t.Errorf("Expected manager have %v instance of sqlite, but got %v", 1, len(m.sqliteDbInstances)) 29 return 30 } 31 32 if v, ok := m.sqliteDbInstances["server1"]; ok { 33 expected := reflect.TypeOf(&SqlWrapper[Sqlite]{}) 34 got := reflect.ValueOf(v).Type() 35 if got != expected { 36 t.Errorf("Expected manager one sqlite instance: %v, but got: %v ", expected, got) 37 return 38 } 39 } else { 40 t.Errorf("Expected manager have %v instance of sqlite for %v, but got nothing", 1, "server1") 41 return 42 } 43 } 44 45 func TestManager_CheckInitializationMongo(t *testing.T) { 46 makeReadyConfigManager() 47 48 m := manager{} 49 m.init() 50 51 if len(m.mongoDbInstances) != 1 { 52 t.Errorf("Expected manager have %v instance of mongodb, but got %v", 1, len(m.mongoDbInstances)) 53 return 54 } 55 56 if v, ok := m.mongoDbInstances["server4"]; ok { 57 expected := reflect.TypeOf(&MongoWrapper{}) 58 got := reflect.ValueOf(v).Type() 59 if got != expected { 60 t.Errorf("Expected manager one mongodb instance: %v, but got: %v ", expected, got) 61 return 62 } 63 } else { 64 t.Errorf("Expected manager have %v instance of mongodb for %v, but got nothing", 1, "server1") 65 return 66 } 67 } 68 69 func TestManager_TestGetDbFunc(t *testing.T) { 70 makeReadyConfigManager() 71 72 m := manager{} 73 m.init() 74 75 if len(m.sqliteDbInstances) != 1 { 76 t.Errorf("Expected manager have %v instance of sqlite, but got %v", 1, len(m.sqliteDbInstances)) 77 return 78 } 79 80 db, err := m.GetDb("server1") 81 if err != nil { 82 t.Errorf("Get Db Instance --> Expected error: %v, but got %v", nil, err) 83 return 84 } 85 86 expected := reflect.TypeOf(&gorm.DB{}) 87 got := reflect.ValueOf(db).Type() 88 89 if got != expected { 90 t.Errorf("Expected manager GetDb function return: %v, but got: %v ", expected, got) 91 return 92 } 93 } 94 95 func makeReadyConfigManager() { 96 path := "../.." 97 initialMode := "test" 98 prefix := "ZHYCAN" 99 100 _ = config.CreateManager(path, initialMode, prefix) 101 }