github.com/christoph-karpowicz/db_mediator@v0.0.0-20210207102849-61a28a1071d8/internal/server/db/db_test.go (about) 1 package db 2 3 import ( 4 "log" 5 "os" 6 "testing" 7 ) 8 9 var dbs Databases 10 11 func TestDbs(t *testing.T) { 12 os.Chdir("../../..") 13 dbs = make(Databases) 14 dbs.Init() 15 } 16 17 func TestMongoCRUD(t *testing.T) { 18 var database Database 19 for _, db := range dbs { 20 if dbType := (*db).GetConfig().Type; dbType == "mongo" { 21 database = &mongoDatabase{cfg: (*db).GetConfig()} 22 break 23 } 24 // fmt.Printf("val: %s\n", (*db).GetConfig().Name) 25 } 26 27 if database != nil { 28 database.Init() 29 30 // Select 31 rows := database.Select("Sakila_films", "{\"_id\":{\"$lt\": 3}}") 32 log.Println(len(rows)) 33 34 // Insert 35 row := map[string]interface{}{ 36 "Title": "test1", 37 "Description": "testdesc", 38 "ReleaseYear": 2010, 39 "Length": 90, 40 "ext_id": 1001, 41 } 42 inDto := InsertDto{ 43 "Sakila_films", 44 "_id", 45 1, 46 row, 47 } 48 insertErr := database.Insert(inDto) 49 if insertErr != nil { 50 log.Fatalln(insertErr) 51 } 52 53 // Update 54 upDto := UpdateDto{ 55 "Sakila_films", 56 "_id", 57 6, 58 "Rating", 59 "test", 60 } 61 updateErr := database.Update(upDto) 62 if updateErr != nil { 63 log.Fatalln(updateErr) 64 } 65 } 66 } 67 68 func TestPostgresCRUD(t *testing.T) { 69 var database Database 70 for _, db := range dbs { 71 // fmt.Printf("val: %s\n", (*db).GetConfig().Name) 72 if dbType := (*db).GetConfig().Type; dbType == "postgres" { 73 database = &postgresDatabase{cfg: (*db).GetConfig()} 74 break 75 } 76 } 77 78 if database != nil { 79 database.Init() 80 81 // Select 82 rows := database.Select("film", "film_id > 10 AND film_id < 22") 83 log.Println(len(rows)) 84 85 // Insert 86 row := map[string]interface{}{ 87 "title": "test1", 88 "description": "testdesc", 89 "release_year": 2010, 90 "length": 90, 91 "language_id": 2, 92 } 93 inDto := InsertDto{ 94 "Sakila_films", 95 "_id", 96 1, 97 row, 98 } 99 insertErr := database.Insert(inDto) 100 if insertErr != nil { 101 log.Fatalln(insertErr) 102 } 103 104 // Update 105 upDto := UpdateDto{ 106 "Sakila_films", 107 "_id", 108 6, 109 "Rating", 110 "test", 111 } 112 updateErr := database.Update(upDto) 113 if updateErr != nil { 114 log.Fatalln(updateErr) 115 } 116 } 117 }