sqldb/pg_test.go

185 lines
4.4 KiB
Go
Raw Permalink Normal View History

2021-07-30 15:52:01 +02:00
package sqldb
import (
"encoding/json"
"fmt"
"io/ioutil"
"os"
"testing"
)
func TestCreateTable(t *testing.T) {
2021-10-28 10:34:10 +02:00
db := Open("postgres", "host=127.0.0.1 port=5432 user=test password=test dbname=test sslmode=disable")
defer db.Close()
2021-07-30 15:52:01 +02:00
jsonFile, err := os.Open("test_table.json")
if err != nil {
fmt.Println(err)
}
defer jsonFile.Close()
byteValue, _ := ioutil.ReadAll(jsonFile)
2021-10-28 10:34:10 +02:00
var jsonSource TableInfo
json.Unmarshal([]byte(byteValue), &jsonSource)
2021-07-30 15:52:01 +02:00
2021-10-28 10:34:10 +02:00
err = db.CreateTable(jsonSource)
if err != nil {
fmt.Println(err.Error())
}
2021-07-30 15:52:01 +02:00
2021-10-28 10:34:10 +02:00
sch, err := db.Table("test").GetSchema()
if err != nil {
fmt.Println(err.Error())
}
if len(sch.Columns) == 0 {
2021-07-30 15:52:01 +02:00
t.Errorf("Create table failed")
}
}
func TestAddColumn(t *testing.T) {
2021-10-28 10:34:10 +02:00
db := Open("postgres", "host=127.0.0.1 port=5432 user=test password=test dbname=test sslmode=disable")
defer db.Close()
2021-07-30 15:52:01 +02:00
2021-10-28 10:34:10 +02:00
old, err := db.Table("test").GetSchema()
if err != nil {
fmt.Println(err.Error())
}
db.Table("test").AddColumn("addcolumn", "integer")
new, err := db.Table("test").GetSchema()
if err != nil {
fmt.Println(err.Error())
}
2021-07-30 15:52:01 +02:00
if len(old.Columns) == len(new.Columns) {
t.Errorf("Column already exist")
}
}
func TestInsert(t *testing.T) {
2021-10-28 10:34:10 +02:00
db := Open("postgres", "host=127.0.0.1 port=5432 user=test password=test dbname=test sslmode=disable")
defer db.Close()
2021-07-30 15:52:01 +02:00
vl := make(AssRow)
vl["name"] = "toto"
vl["description"] = "tata"
2021-10-28 10:34:10 +02:00
old, err := db.Table("test").GetAssociativeArray([]string{"*"}, "", []string{}, "")
if err != nil {
fmt.Println(err.Error())
}
2021-07-30 15:52:01 +02:00
jsonStringOld, _ := json.Marshal(old)
fmt.Println(string(jsonStringOld))
2021-10-28 10:34:10 +02:00
db.Table("test").UpdateOrInsert(vl)
2021-07-30 15:52:01 +02:00
2021-10-28 10:34:10 +02:00
new, err := db.Table("test").GetAssociativeArray([]string{"*"}, "", []string{}, "")
if err != nil {
fmt.Println(err.Error())
}
2021-07-30 15:52:01 +02:00
jsonStringNew, _ := json.Marshal(new)
fmt.Println(string(jsonStringNew))
if len(jsonStringOld) == len(jsonStringNew) {
t.Errorf("Error row not created")
}
}
func TestUpdate(t *testing.T) {
2021-10-28 10:34:10 +02:00
db := Open("postgres", "host=127.0.0.1 port=5432 user=test password=test dbname=test sslmode=disable")
defer db.Close()
2021-07-30 15:52:01 +02:00
vl := make(AssRow)
vl["id"] = 1
vl["name"] = "titi"
vl["description"] = "toto"
2021-10-28 10:34:10 +02:00
old, err := db.Table("test").GetAssociativeArray([]string{"*"}, "", []string{}, "")
if err != nil {
fmt.Println(err.Error())
}
2021-07-30 15:52:01 +02:00
jsonStringOld, _ := json.Marshal(old)
fmt.Println(string(jsonStringOld))
2021-10-28 10:34:10 +02:00
db.Table("test").UpdateOrInsert(vl)
2021-07-30 15:52:01 +02:00
2021-10-28 10:34:10 +02:00
new, err := db.Table("test").GetAssociativeArray([]string{"*"}, "", []string{}, "")
if err != nil {
fmt.Println(err.Error())
}
2021-07-30 15:52:01 +02:00
jsonStringNew, _ := json.Marshal(new)
fmt.Println(string(jsonStringNew))
if string(jsonStringOld) == string(jsonStringNew) {
t.Errorf("Error row not updated")
}
}
func TestDelete(t *testing.T) {
2021-10-28 10:34:10 +02:00
db := Open("postgres", "host=127.0.0.1 port=5432 user=test password=test dbname=test sslmode=disable")
defer db.Close()
2021-07-30 15:52:01 +02:00
vl := make(AssRow)
vl["id"] = 1
2021-10-28 10:34:10 +02:00
old, err := db.Table("test").GetAssociativeArray([]string{"*"}, "", []string{}, "")
if err != nil {
fmt.Println(err.Error())
}
2021-07-30 15:52:01 +02:00
jsonStringOld, _ := json.Marshal(old)
fmt.Println(string(jsonStringOld))
2021-10-28 10:34:10 +02:00
db.Table("test").Delete(vl)
2021-07-30 15:52:01 +02:00
2021-10-28 10:34:10 +02:00
new, err := db.Table("test").GetAssociativeArray([]string{"*"}, "", []string{}, "")
if err != nil {
fmt.Println(err.Error())
}
2021-07-30 15:52:01 +02:00
jsonStringNew, _ := json.Marshal(new)
fmt.Println(string(jsonStringNew))
if len(jsonStringOld) == len(jsonStringNew) {
t.Errorf("Error row not deleted")
}
}
func TestDeleteColumn(t *testing.T) {
2021-10-28 10:34:10 +02:00
db := Open("postgres", "host=127.0.0.1 port=5432 user=test password=test dbname=test sslmode=disable")
defer db.Close()
2021-07-30 15:52:01 +02:00
2021-10-28 10:34:10 +02:00
old, err := db.Table("test").GetSchema()
if err != nil {
fmt.Println(err.Error())
}
db.Table("test").DeleteColumn("addcolumn")
new, err := db.Table("test").GetSchema()
if err != nil {
fmt.Println(err.Error())
}
2021-07-30 15:52:01 +02:00
if len(old.Columns) == len(new.Columns) {
t.Errorf("Error column not deleted")
}
}
func TestDeleteTable(t *testing.T) {
2021-10-28 10:34:10 +02:00
db := Open("postgres", "host=127.0.0.1 port=5432 user=test password=test dbname=test sslmode=disable")
defer db.Close()
2021-07-30 15:52:01 +02:00
2021-10-28 10:34:10 +02:00
db.Table("test").DeleteTable()
2021-07-30 15:52:01 +02:00
2021-10-28 10:34:10 +02:00
tbl, err := db.Table("test").GetSchema()
if err != nil {
fmt.Println(err.Error())
}
2021-07-30 15:52:01 +02:00
if len(tbl.Columns) != 0 {
t.Errorf("Delete table failed")
}
}