Initial source commit
This commit is contained in:
+117
@@ -0,0 +1,117 @@
|
||||
package simpleorm_test
|
||||
|
||||
import (
|
||||
"simpleorm"
|
||||
"strconv"
|
||||
"testing"
|
||||
|
||||
log "gitlab.com/gdulai/simpleloglvl"
|
||||
)
|
||||
|
||||
type Test struct {
|
||||
ID int `sql:"pk"`
|
||||
Int64Field int64 `sql:"nn"`
|
||||
IntField int `sql:"nn"`
|
||||
StringField string `sql:"nn"`
|
||||
}
|
||||
|
||||
func TestParseSimple(t *testing.T) {
|
||||
log.LogInfo("Test start...")
|
||||
// GIVEN
|
||||
orm := simpleorm.NewORM(Test{})
|
||||
// WHEN
|
||||
ddl := orm.CreateDDL()
|
||||
// THEN
|
||||
expectedDdl := "CREATE TABLE IF NOT EXISTS TEST (ID INTEGER, INT64_FIELD BIGINT NOT NULL, INT_FIELD INTEGER NOT NULL, STRING_FIELD TEXT NOT NULL, CONSTRAINT pk_test PRIMARY KEY(ID));"
|
||||
if ddl != expectedDdl {
|
||||
log.LogError("Incorrect DDL.\nExpected\n%s\nActual\n%s", expectedDdl, ddl)
|
||||
log.LogError("\nExpected size: %s\nActual size: %s", strconv.Itoa(len(expectedDdl)), strconv.Itoa(len(ddl)))
|
||||
t.Fail()
|
||||
}
|
||||
log.LogInfo("Test finished!")
|
||||
}
|
||||
|
||||
type TestWithFk struct {
|
||||
ID int `sql:"pk"`
|
||||
TestID int `sql:"nn;fk=Test.ID"`
|
||||
}
|
||||
|
||||
func TestParseFk(t *testing.T) {
|
||||
log.LogInfo("Test start...")
|
||||
// GIVEN
|
||||
orm := simpleorm.NewORM(Test{}, TestWithFk{})
|
||||
// WHEN
|
||||
ddl := orm.CreateDDL()
|
||||
// THEN
|
||||
expectedDdl :=
|
||||
"CREATE TABLE IF NOT EXISTS TEST (ID INTEGER, INT64_FIELD BIGINT NOT NULL, INT_FIELD INTEGER NOT NULL, STRING_FIELD TEXT NOT NULL, CONSTRAINT pk_test PRIMARY KEY(ID));\n" +
|
||||
"CREATE TABLE IF NOT EXISTS TEST_WITH_FK (ID INTEGER, TEST_ID INTEGER NOT NULL, CONSTRAINT pk_test_with_fk PRIMARY KEY(ID), CONSTRAINT fk_test FOREIGN KEY(TEST_ID) REFERENCES TEST(ID));"
|
||||
if ddl != expectedDdl {
|
||||
log.LogError("Incorrect DDL.\nExpected\n%s\nActual\n%s", expectedDdl, ddl)
|
||||
log.LogError("\nExpected size: %s\nActual size: %s", strconv.Itoa(len(expectedDdl)), strconv.Itoa(len(ddl)))
|
||||
t.Fail()
|
||||
}
|
||||
log.LogInfo("Test finished!")
|
||||
}
|
||||
|
||||
type TestWithFkAndFkId struct {
|
||||
ID int `sql:"pk"`
|
||||
TestID int `sql:"nn;fk=Test.ID;fk_id=custom_fk"`
|
||||
}
|
||||
|
||||
func TestParseFkAndFkId(t *testing.T) {
|
||||
// GIVEN
|
||||
orm := simpleorm.NewORM(Test{}, TestWithFkAndFkId{})
|
||||
// WHEN
|
||||
ddl := orm.CreateDDL()
|
||||
// THEN
|
||||
expectedDdl :=
|
||||
"CREATE TABLE IF NOT EXISTS TEST (ID INTEGER, INT64_FIELD BIGINT NOT NULL, INT_FIELD INTEGER NOT NULL, STRING_FIELD TEXT NOT NULL, CONSTRAINT pk_test PRIMARY KEY(ID));\n" +
|
||||
"CREATE TABLE IF NOT EXISTS TEST_WITH_FK_AND_FK_ID (ID INTEGER, TEST_ID INTEGER NOT NULL, CONSTRAINT pk_test_with_fk_and_fk_id PRIMARY KEY(ID), CONSTRAINT custom_fk FOREIGN KEY(TEST_ID) REFERENCES TEST(ID));"
|
||||
if ddl != expectedDdl {
|
||||
log.LogError("Incorrect DDL.\nExpected\n%s\nActual\n%s", expectedDdl, ddl)
|
||||
log.LogError("\nExpected size: %s\nActual size: %s", strconv.Itoa(len(expectedDdl)), strconv.Itoa(len(ddl)))
|
||||
t.Fail()
|
||||
}
|
||||
}
|
||||
|
||||
type TestWithCompositePk struct {
|
||||
ID int `sql:"nn;pk"`
|
||||
Name string `sql:"nn;pk"`
|
||||
}
|
||||
|
||||
func TestParseCompositePk(t *testing.T) {
|
||||
// GIVEN
|
||||
orm := simpleorm.NewORM(TestWithCompositePk{})
|
||||
// WHEN
|
||||
ddl := orm.CreateDDL()
|
||||
// THEN
|
||||
expectedDdl := "CREATE TABLE IF NOT EXISTS TEST_WITH_COMPOSITE_PK (ID INTEGER NOT NULL, NAME TEXT NOT NULL, CONSTRAINT pk_test_with_composite_pk PRIMARY KEY(ID, NAME));"
|
||||
if ddl != expectedDdl {
|
||||
log.LogError("Incorrect DDL.\nExpected\n%s\nActual\n%s", expectedDdl, ddl)
|
||||
log.LogError("\nExpected size: %s\nActual size: %s", strconv.Itoa(len(expectedDdl)), strconv.Itoa(len(ddl)))
|
||||
t.Fail()
|
||||
}
|
||||
}
|
||||
|
||||
type TestWithCompositeFk struct {
|
||||
ID int `sql:"nn;pk"`
|
||||
CompositeFkId int `sql:"nn;fk=TestWithCompositePk.ID;"`
|
||||
CompositeFkName string `sql:"nn;fk=TestWithCompositePk.Name;"`
|
||||
}
|
||||
|
||||
func TestParseCompositeFk(t *testing.T) {
|
||||
// GIVEN
|
||||
orm := simpleorm.NewORM(TestWithCompositePk{}, TestWithCompositeFk{})
|
||||
// WHEN
|
||||
ddl := orm.CreateDDL()
|
||||
// THEN
|
||||
expectedDdl :=
|
||||
"CREATE TABLE IF NOT EXISTS TEST_WITH_COMPOSITE_PK (ID INTEGER NOT NULL, NAME TEXT NOT NULL, CONSTRAINT pk_test_with_composite_pk PRIMARY KEY(ID, NAME));\n" +
|
||||
"CREATE TABLE IF NOT EXISTS TEST_WITH_COMPOSITE_FK (ID INTEGER NOT NULL, COMPOSITE_FK_ID INTEGER NOT NULL, COMPOSITE_FK_NAME TEXT NOT NULL, CONSTRAINT pk_test_with_composite_fk PRIMARY KEY(ID), CONSTRAINT fk_test_with_composite_pk FOREIGN KEY(COMPOSITE_FK_ID, COMPOSITE_FK_NAME) REFERENCES TEST_WITH_COMPOSITE_PK(ID, NAME));"
|
||||
if ddl != expectedDdl {
|
||||
log.LogError("Incorrect DDL.\nExpected\n%s\nActual\n%s", expectedDdl, ddl)
|
||||
log.LogError("\nExpected size: %s\nActual size: %s", strconv.Itoa(len(expectedDdl)), strconv.Itoa(len(ddl)))
|
||||
t.Fail()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user