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  }