2019-03-03 17:54:43 +01:00
|
|
|
package tests
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"fmt"
|
2019-03-04 19:35:49 +01:00
|
|
|
. "github.com/sub0Zero/.test_files/dvd_rental/dvds/table"
|
2019-03-03 17:54:43 +01:00
|
|
|
"github.com/sub0Zero/go-sqlbuilder/generator"
|
|
|
|
|
. "github.com/sub0Zero/go-sqlbuilder/sqlbuilder"
|
|
|
|
|
"gotest.tools/assert"
|
|
|
|
|
"testing"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
var (
|
|
|
|
|
folderPath = ".test_files/"
|
|
|
|
|
host = "localhost"
|
|
|
|
|
port = 5432
|
|
|
|
|
user = "postgres"
|
|
|
|
|
password = "postgres"
|
|
|
|
|
dbname = "dvd_rental"
|
2019-03-04 19:35:49 +01:00
|
|
|
schemaName = "dvds"
|
2019-03-03 17:54:43 +01:00
|
|
|
)
|
|
|
|
|
|
2019-03-04 19:35:49 +01:00
|
|
|
//go:generate generator -db "host=localhost port=5432 user=postgres password=postgres dbname=dvd_rental sslmode=disable" -dbName dvd_rental -schema dvds -path .test_files
|
2019-03-03 17:54:43 +01:00
|
|
|
|
|
|
|
|
func TestGenerateModel(t *testing.T) {
|
|
|
|
|
connectString := fmt.Sprintf("host=%s port=%d user=%s "+"password=%s dbname=%s sslmode=disable",
|
|
|
|
|
host, port, user, password, dbname)
|
|
|
|
|
|
|
|
|
|
err := generator.Generate(folderPath, connectString, dbname, schemaName)
|
|
|
|
|
|
|
|
|
|
assert.NilError(t, err)
|
2019-03-04 19:35:49 +01:00
|
|
|
|
|
|
|
|
err = generator.Generate(folderPath, connectString, dbname, "sport")
|
|
|
|
|
|
|
|
|
|
assert.NilError(t, err)
|
2019-03-03 17:54:43 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestSelectQuery(t *testing.T) {
|
2019-03-04 19:35:49 +01:00
|
|
|
query, err := Actor.InnerJoinOn(Store, Eq(Actor.ActorID, Store.StoreID)).
|
|
|
|
|
Select(Store.StoreID, Store.AddressID, Actor.ActorID).String(schemaName)
|
2019-03-03 17:54:43 +01:00
|
|
|
|
|
|
|
|
assert.NilError(t, err)
|
|
|
|
|
|
2019-03-04 19:35:49 +01:00
|
|
|
assert.Equal(t, query, "SELECT store.store_id,store.address_id,actor.actor_id FROM dvds.actor JOIN dvds.store ON actor.actor_id=store.store_id")
|
2019-03-03 17:54:43 +01:00
|
|
|
}
|