Use testify/require instead of testify/assert for tests.

This commit is contained in:
go-jet 2020-05-09 11:00:22 +02:00
parent ebcbadef24
commit 5d742837f1
32 changed files with 581 additions and 589 deletions

View file

@ -1,16 +1,16 @@
package snaker package snaker
import ( import (
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/require"
"testing" "testing"
) )
func TestSnakeToCamel(t *testing.T) { func TestSnakeToCamel(t *testing.T) {
assert.Equal(t, SnakeToCamel(""), "") require.Equal(t, SnakeToCamel(""), "")
assert.Equal(t, SnakeToCamel("potato_"), "Potato") require.Equal(t, SnakeToCamel("potato_"), "Potato")
assert.Equal(t, SnakeToCamel("this_has_to_be_uppercased"), "ThisHasToBeUppercased") require.Equal(t, SnakeToCamel("this_has_to_be_uppercased"), "ThisHasToBeUppercased")
assert.Equal(t, SnakeToCamel("this_is_an_id"), "ThisIsAnID") require.Equal(t, SnakeToCamel("this_is_an_id"), "ThisIsAnID")
assert.Equal(t, SnakeToCamel("this_is_an_identifier"), "ThisIsAnIdentifier") require.Equal(t, SnakeToCamel("this_is_an_identifier"), "ThisIsAnIdentifier")
assert.Equal(t, SnakeToCamel("id"), "ID") require.Equal(t, SnakeToCamel("id"), "ID")
assert.Equal(t, SnakeToCamel("oauth_client"), "OAuthClient") require.Equal(t, SnakeToCamel("oauth_client"), "OAuthClient")
} }

View file

@ -1,14 +1,14 @@
package jet package jet
import ( import (
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/require"
"testing" "testing"
) )
func TestClauseSelect_Serialize(t *testing.T) { func TestClauseSelect_Serialize(t *testing.T) {
defer func() { defer func() {
r := recover() r := recover()
assert.Equal(t, r, "jet: SELECT clause has to have at least one projection") require.Equal(t, r, "jet: SELECT clause has to have at least one projection")
}() }()
selectClause := &ClauseSelect{} selectClause := &ClauseSelect{}

View file

@ -2,40 +2,40 @@ package jet
import ( import (
"github.com/google/uuid" "github.com/google/uuid"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/require"
"testing" "testing"
"time" "time"
) )
func TestArgToString(t *testing.T) { func TestArgToString(t *testing.T) {
assert.Equal(t, argToString(true), "TRUE") require.Equal(t, argToString(true), "TRUE")
assert.Equal(t, argToString(false), "FALSE") require.Equal(t, argToString(false), "FALSE")
assert.Equal(t, argToString(int(-32)), "-32") require.Equal(t, argToString(int(-32)), "-32")
assert.Equal(t, argToString(uint(32)), "32") require.Equal(t, argToString(uint(32)), "32")
assert.Equal(t, argToString(int8(-43)), "-43") require.Equal(t, argToString(int8(-43)), "-43")
assert.Equal(t, argToString(uint8(43)), "43") require.Equal(t, argToString(uint8(43)), "43")
assert.Equal(t, argToString(int16(-54)), "-54") require.Equal(t, argToString(int16(-54)), "-54")
assert.Equal(t, argToString(uint16(54)), "54") require.Equal(t, argToString(uint16(54)), "54")
assert.Equal(t, argToString(int32(-65)), "-65") require.Equal(t, argToString(int32(-65)), "-65")
assert.Equal(t, argToString(uint32(65)), "65") require.Equal(t, argToString(uint32(65)), "65")
assert.Equal(t, argToString(int64(-64)), "-64") require.Equal(t, argToString(int64(-64)), "-64")
assert.Equal(t, argToString(uint64(64)), "64") require.Equal(t, argToString(uint64(64)), "64")
assert.Equal(t, argToString(float32(2.0)), "2") require.Equal(t, argToString(float32(2.0)), "2")
assert.Equal(t, argToString(float64(1.11)), "1.11") require.Equal(t, argToString(float64(1.11)), "1.11")
assert.Equal(t, argToString("john"), "'john'") require.Equal(t, argToString("john"), "'john'")
assert.Equal(t, argToString("It's text"), "'It''s text'") require.Equal(t, argToString("It's text"), "'It''s text'")
assert.Equal(t, argToString([]byte("john")), "'john'") require.Equal(t, argToString([]byte("john")), "'john'")
assert.Equal(t, argToString(uuid.MustParse("b68dbff4-a87d-11e9-a7f2-98ded00c39c6")), "'b68dbff4-a87d-11e9-a7f2-98ded00c39c6'") require.Equal(t, argToString(uuid.MustParse("b68dbff4-a87d-11e9-a7f2-98ded00c39c6")), "'b68dbff4-a87d-11e9-a7f2-98ded00c39c6'")
time, err := time.Parse("Mon Jan 2 15:04:05 -0700 MST 2006", "Mon Jan 2 15:04:05 -0700 MST 2006") time, err := time.Parse("Mon Jan 2 15:04:05 -0700 MST 2006", "Mon Jan 2 15:04:05 -0700 MST 2006")
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, argToString(time), "'2006-01-02 15:04:05-07:00'") require.Equal(t, argToString(time), "'2006-01-02 15:04:05-07:00'")
func() { func() {
defer func() { defer func() {
assert.Equal(t, recover().(string), "jet: map[string]bool type can not be used as SQL query parameter") require.Equal(t, recover().(string), "jet: map[string]bool type can not be used as SQL query parameter")
}() }()
argToString(map[string]bool{}) argToString(map[string]bool{})
@ -43,7 +43,7 @@ func TestArgToString(t *testing.T) {
} }
func TestFallTrough(t *testing.T) { func TestFallTrough(t *testing.T) {
assert.Equal(t, FallTrough([]SerializeOption{ShortName}), []SerializeOption{ShortName}) require.Equal(t, FallTrough([]SerializeOption{ShortName}), []SerializeOption{ShortName})
assert.Equal(t, FallTrough([]SerializeOption{SkipNewLine}), []SerializeOption(nil)) require.Equal(t, FallTrough([]SerializeOption{SkipNewLine}), []SerializeOption(nil))
assert.Equal(t, FallTrough([]SerializeOption{ShortName, SkipNewLine}), []SerializeOption{ShortName}) require.Equal(t, FallTrough([]SerializeOption{ShortName, SkipNewLine}), []SerializeOption{ShortName})
} }

View file

@ -1,18 +1,18 @@
package jet package jet
import ( import (
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/require"
"testing" "testing"
) )
func TestNewTable(t *testing.T) { func TestNewTable(t *testing.T) {
newTable := NewTable("schema", "table", IntegerColumn("intCol")) newTable := NewTable("schema", "table", IntegerColumn("intCol"))
assert.Equal(t, newTable.SchemaName(), "schema") require.Equal(t, newTable.SchemaName(), "schema")
assert.Equal(t, newTable.TableName(), "table") require.Equal(t, newTable.TableName(), "table")
assert.Equal(t, len(newTable.columns()), 1) require.Equal(t, len(newTable.columns()), 1)
assert.Equal(t, newTable.columns()[0].Name(), "intCol") require.Equal(t, newTable.columns()[0].Name(), "intCol")
} }
func TestNewJoinTable(t *testing.T) { func TestNewJoinTable(t *testing.T) {
@ -24,10 +24,10 @@ func TestNewJoinTable(t *testing.T) {
assertClauseSerialize(t, joinTable, `schema.table assertClauseSerialize(t, joinTable, `schema.table
INNER JOIN schema.table2 ON ("intCol1" = "intCol2")`) INNER JOIN schema.table2 ON ("intCol1" = "intCol2")`)
assert.Equal(t, joinTable.SchemaName(), "schema") require.Equal(t, joinTable.SchemaName(), "schema")
assert.Equal(t, joinTable.TableName(), "") require.Equal(t, joinTable.TableName(), "")
assert.Equal(t, len(joinTable.columns()), 2) require.Equal(t, len(joinTable.columns()), 2)
assert.Equal(t, joinTable.columns()[0].Name(), "intCol1") require.Equal(t, joinTable.columns()[0].Name(), "intCol1")
assert.Equal(t, joinTable.columns()[1].Name(), "intCol2") require.Equal(t, joinTable.columns()[1].Name(), "intCol2")
} }

View file

@ -1,7 +1,7 @@
package jet package jet
import ( import (
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/require"
"strconv" "strconv"
"testing" "testing"
) )
@ -56,14 +56,14 @@ func assertClauseSerialize(t *testing.T, clause Serializer, query string, args .
//fmt.Println(out.Buff.String()) //fmt.Println(out.Buff.String())
assert.Equal(t, out.Buff.String(), query) require.Equal(t, out.Buff.String(), query)
assert.Equal(t, out.Args, args) require.Equal(t, out.Args, args)
} }
func assertClauseSerializeErr(t *testing.T, clause Serializer, errString string) { func assertClauseSerializeErr(t *testing.T, clause Serializer, errString string) {
defer func() { defer func() {
r := recover() r := recover()
assert.Equal(t, r, errString) require.Equal(t, r, errString)
}() }()
out := SQLBuilder{Dialect: defaultDialect} out := SQLBuilder{Dialect: defaultDialect}
@ -76,14 +76,14 @@ func assertClauseDebugSerialize(t *testing.T, clause Serializer, query string, a
//fmt.Println(out.Buff.String()) //fmt.Println(out.Buff.String())
assert.Equal(t, out.Buff.String(), query) require.Equal(t, out.Buff.String(), query)
assert.Equal(t, out.Args, args) require.Equal(t, out.Args, args)
} }
func assertProjectionSerialize(t *testing.T, projection Projection, query string, args ...interface{}) { func assertProjectionSerialize(t *testing.T, projection Projection, query string, args ...interface{}) {
out := SQLBuilder{Dialect: defaultDialect} out := SQLBuilder{Dialect: defaultDialect}
projection.serializeForProjection(SelectStatementType, &out) projection.serializeForProjection(SelectStatementType, &out)
assert.Equal(t, out.Buff.String(), query) require.Equal(t, out.Buff.String(), query)
assert.Equal(t, out.Args, args) require.Equal(t, out.Args, args)
} }

View file

@ -1,19 +1,19 @@
package jet package jet
import ( import (
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/require"
"testing" "testing"
) )
func TestOptionalOrDefaultString(t *testing.T) { func TestOptionalOrDefaultString(t *testing.T) {
assert.Equal(t, OptionalOrDefaultString("default"), "default") require.Equal(t, OptionalOrDefaultString("default"), "default")
assert.Equal(t, OptionalOrDefaultString("default", "optional"), "optional") require.Equal(t, OptionalOrDefaultString("default", "optional"), "optional")
} }
func TestOptionalOrDefaultExpression(t *testing.T) { func TestOptionalOrDefaultExpression(t *testing.T) {
defaultExpression := table2ColFloat defaultExpression := table2ColFloat
optionalExpression := table1Col1 optionalExpression := table1Col1
assert.Equal(t, OptionalOrDefaultExpression(defaultExpression), defaultExpression) require.Equal(t, OptionalOrDefaultExpression(defaultExpression), defaultExpression)
assert.Equal(t, OptionalOrDefaultExpression(defaultExpression, optionalExpression), optionalExpression) require.Equal(t, OptionalOrDefaultExpression(defaultExpression, optionalExpression), optionalExpression)
} }

View file

@ -8,7 +8,6 @@ import (
"github.com/go-jet/jet/internal/utils" "github.com/go-jet/jet/internal/utils"
"github.com/go-jet/jet/qrm" "github.com/go-jet/jet/qrm"
"github.com/google/uuid" "github.com/google/uuid"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"io/ioutil" "io/ioutil"
"os" "os"
@ -37,7 +36,7 @@ func AssertExec(t *testing.T, stmt jet.Statement, db qrm.DB, rowsAffected ...int
func AssertExecErr(t *testing.T, stmt jet.Statement, db qrm.DB, errorStr string) { func AssertExecErr(t *testing.T, stmt jet.Statement, db qrm.DB, errorStr string) {
_, err := stmt.Exec(db) _, err := stmt.Exec(db)
assert.Error(t, err, errorStr) require.Error(t, err, errorStr)
} }
func getFullPath(relativePath string) string { func getFullPath(relativePath string) string {
@ -54,9 +53,9 @@ func PrintJson(v interface{}) {
// AssertJSON check if data json output is the same as expectedJSON // AssertJSON check if data json output is the same as expectedJSON
func AssertJSON(t *testing.T, data interface{}, expectedJSON string) { func AssertJSON(t *testing.T, data interface{}, expectedJSON string) {
jsonData, err := json.MarshalIndent(data, "", "\t") jsonData, err := json.MarshalIndent(data, "", "\t")
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, "\n"+string(jsonData)+"\n", expectedJSON) require.Equal(t, "\n"+string(jsonData)+"\n", expectedJSON)
} }
// SaveJSONFile saves v as json at testRelativePath // SaveJSONFile saves v as json at testRelativePath
@ -74,23 +73,23 @@ func AssertJSONFile(t *testing.T, data interface{}, testRelativePath string) {
filePath := getFullPath(testRelativePath) filePath := getFullPath(testRelativePath)
fileJSONData, err := ioutil.ReadFile(filePath) fileJSONData, err := ioutil.ReadFile(filePath)
assert.NoError(t, err) require.NoError(t, err)
if runtime.GOOS == "windows" { if runtime.GOOS == "windows" {
fileJSONData = bytes.Replace(fileJSONData, []byte("\r\n"), []byte("\n"), -1) fileJSONData = bytes.Replace(fileJSONData, []byte("\r\n"), []byte("\n"), -1)
} }
jsonData, err := json.MarshalIndent(data, "", "\t") jsonData, err := json.MarshalIndent(data, "", "\t")
assert.NoError(t, err) require.NoError(t, err)
assert.True(t, string(fileJSONData) == string(jsonData)) require.True(t, string(fileJSONData) == string(jsonData))
//AssertDeepEqual(t, string(fileJSONData), string(jsonData)) //AssertDeepEqual(t, string(fileJSONData), string(jsonData))
} }
// AssertStatementSql check if statement Sql() is the same as expectedQuery and expectedArgs // AssertStatementSql check if statement Sql() is the same as expectedQuery and expectedArgs
func AssertStatementSql(t *testing.T, query jet.Statement, expectedQuery string, expectedArgs ...interface{}) { func AssertStatementSql(t *testing.T, query jet.Statement, expectedQuery string, expectedArgs ...interface{}) {
queryStr, args := query.Sql() queryStr, args := query.Sql()
assert.Equal(t, queryStr, expectedQuery) require.Equal(t, queryStr, expectedQuery)
if len(expectedArgs) == 0 { if len(expectedArgs) == 0 {
return return
@ -102,7 +101,7 @@ func AssertStatementSql(t *testing.T, query jet.Statement, expectedQuery string,
func AssertStatementSqlErr(t *testing.T, stmt jet.Statement, errorStr string) { func AssertStatementSqlErr(t *testing.T, stmt jet.Statement, errorStr string) {
defer func() { defer func() {
r := recover() r := recover()
assert.Equal(t, r, errorStr) require.Equal(t, r, errorStr)
}() }()
stmt.Sql() stmt.Sql()
@ -162,7 +161,7 @@ func AssertDebugSerialize(t *testing.T, dialect jet.Dialect, clause jet.Serializ
func AssertPanicErr(t *testing.T, fun func(), errorStr string) { func AssertPanicErr(t *testing.T, fun func(), errorStr string) {
defer func() { defer func() {
r := recover() r := recover()
assert.Equal(t, r, errorStr) require.Equal(t, r, errorStr)
}() }()
fun() fun()
@ -172,7 +171,7 @@ func AssertPanicErr(t *testing.T, fun func(), errorStr string) {
func AssertSerializeErr(t *testing.T, dialect jet.Dialect, clause jet.Serializer, errString string) { func AssertSerializeErr(t *testing.T, dialect jet.Dialect, clause jet.Serializer, errString string) {
defer func() { defer func() {
r := recover() r := recover()
assert.Equal(t, r, errString) require.Equal(t, r, errString)
}() }()
out := jet.SQLBuilder{Dialect: dialect} out := jet.SQLBuilder{Dialect: dialect}
@ -192,7 +191,7 @@ func AssertProjectionSerialize(t *testing.T, dialect jet.Dialect, projection jet
func AssertQueryPanicErr(t *testing.T, stmt jet.Statement, db qrm.DB, dest interface{}, errString string) { func AssertQueryPanicErr(t *testing.T, stmt jet.Statement, db qrm.DB, dest interface{}, errString string) {
defer func() { defer func() {
r := recover() r := recover()
assert.Equal(t, r, errString) require.Equal(t, r, errString)
}() }()
stmt.Query(db, dest) stmt.Query(db, dest)
@ -209,7 +208,7 @@ func AssertFileContent(t *testing.T, filePath string, expectedContent string) {
// AssertFileNamesEqual check if all filesInfos are contained in fileNames // AssertFileNamesEqual check if all filesInfos are contained in fileNames
func AssertFileNamesEqual(t *testing.T, fileInfos []os.FileInfo, fileNames ...string) { func AssertFileNamesEqual(t *testing.T, fileInfos []os.FileInfo, fileNames ...string) {
assert.Equal(t, len(fileInfos), len(fileNames)) require.Equal(t, len(fileInfos), len(fileNames))
fileNamesMap := map[string]bool{} fileNamesMap := map[string]bool{}
@ -218,7 +217,7 @@ func AssertFileNamesEqual(t *testing.T, fileInfos []os.FileInfo, fileNames ...st
} }
for _, fileName := range fileNames { for _, fileName := range fileNames {
assert.True(t, fileNamesMap[fileName], fileName+" does not exist.") require.True(t, fileNamesMap[fileName], fileName+" does not exist.")
} }
} }

View file

@ -2,32 +2,32 @@ package utils
import ( import (
"fmt" "fmt"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/require"
"testing" "testing"
) )
func TestToGoIdentifier(t *testing.T) { func TestToGoIdentifier(t *testing.T) {
assert.Equal(t, ToGoIdentifier(""), "") require.Equal(t, ToGoIdentifier(""), "")
assert.Equal(t, ToGoIdentifier("uuid"), "UUID") require.Equal(t, ToGoIdentifier("uuid"), "UUID")
assert.Equal(t, ToGoIdentifier("col1"), "Col1") require.Equal(t, ToGoIdentifier("col1"), "Col1")
assert.Equal(t, ToGoIdentifier("PG-13"), "Pg13") require.Equal(t, ToGoIdentifier("PG-13"), "Pg13")
assert.Equal(t, ToGoIdentifier("13_pg"), "13Pg") require.Equal(t, ToGoIdentifier("13_pg"), "13Pg")
assert.Equal(t, ToGoIdentifier("mytable"), "Mytable") require.Equal(t, ToGoIdentifier("mytable"), "Mytable")
assert.Equal(t, ToGoIdentifier("MYTABLE"), "Mytable") require.Equal(t, ToGoIdentifier("MYTABLE"), "Mytable")
assert.Equal(t, ToGoIdentifier("MyTaBlE"), "MyTaBlE") require.Equal(t, ToGoIdentifier("MyTaBlE"), "MyTaBlE")
assert.Equal(t, ToGoIdentifier("myTaBlE"), "MyTaBlE") require.Equal(t, ToGoIdentifier("myTaBlE"), "MyTaBlE")
assert.Equal(t, ToGoIdentifier("my_table"), "MyTable") require.Equal(t, ToGoIdentifier("my_table"), "MyTable")
assert.Equal(t, ToGoIdentifier("MY_TABLE"), "MyTable") require.Equal(t, ToGoIdentifier("MY_TABLE"), "MyTable")
assert.Equal(t, ToGoIdentifier("My_Table"), "MyTable") require.Equal(t, ToGoIdentifier("My_Table"), "MyTable")
assert.Equal(t, ToGoIdentifier("My Table"), "MyTable") require.Equal(t, ToGoIdentifier("My Table"), "MyTable")
assert.Equal(t, ToGoIdentifier("My-Table"), "MyTable") require.Equal(t, ToGoIdentifier("My-Table"), "MyTable")
} }
func TestToGoEnumValueIdentifier(t *testing.T) { func TestToGoEnumValueIdentifier(t *testing.T) {
assert.Equal(t, ToGoEnumValueIdentifier("enum_name", "enum_value"), "EnumValue") require.Equal(t, ToGoEnumValueIdentifier("enum_name", "enum_value"), "EnumValue")
assert.Equal(t, ToGoEnumValueIdentifier("NumEnum", "100"), "NumEnum100") require.Equal(t, ToGoEnumValueIdentifier("NumEnum", "100"), "NumEnum100")
} }
func TestErrorCatchErr(t *testing.T) { func TestErrorCatchErr(t *testing.T) {
@ -39,7 +39,7 @@ func TestErrorCatchErr(t *testing.T) {
panic(fmt.Errorf("newError")) panic(fmt.Errorf("newError"))
}() }()
assert.Error(t, err, "newError") require.Error(t, err, "newError")
} }
func TestErrorCatchNonErr(t *testing.T) { func TestErrorCatchNonErr(t *testing.T) {
@ -51,5 +51,5 @@ func TestErrorCatchNonErr(t *testing.T) {
panic(11) panic(11)
}() }()
assert.Error(t, err, "11") require.Error(t, err, "11")
} }

View file

@ -1,7 +1,7 @@
package mysql package mysql
import ( import (
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/require"
"testing" "testing"
"time" "time"
) )
@ -95,7 +95,7 @@ VALUES (?, ?),
func TestInsertValuesFromModelColumnMismatch(t *testing.T) { func TestInsertValuesFromModelColumnMismatch(t *testing.T) {
defer func() { defer func() {
r := recover() r := recover()
assert.Equal(t, r, "missing struct field for column : col1") require.Equal(t, r, "missing struct field for column : col1")
}() }()
type Table1Model struct { type Table1Model struct {
Col1Prim int Col1Prim int
@ -116,7 +116,7 @@ func TestInsertFromNonStructModel(t *testing.T) {
defer func() { defer func() {
r := recover() r := recover()
assert.Equal(t, r, "jet: data has to be a struct") require.Equal(t, r, "jet: data has to be a struct")
}() }()
table2.INSERT(table2ColInt).MODEL([]int{}) table2.INSERT(table2ColInt).MODEL([]int{})

View file

@ -2,7 +2,7 @@ package postgres
import ( import (
"github.com/go-jet/jet/internal/jet" "github.com/go-jet/jet/internal/jet"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/require"
"testing" "testing"
"time" "time"
) )
@ -94,7 +94,7 @@ VALUES ($1, $2),
func TestInsertValuesFromModelColumnMismatch(t *testing.T) { func TestInsertValuesFromModelColumnMismatch(t *testing.T) {
defer func() { defer func() {
r := recover() r := recover()
assert.Equal(t, r, "missing struct field for column : col1") require.Equal(t, r, "missing struct field for column : col1")
}() }()
type Table1Model struct { type Table1Model struct {
Col1Prim int Col1Prim int
@ -115,7 +115,7 @@ func TestInsertFromNonStructModel(t *testing.T) {
defer func() { defer func() {
r := recover() r := recover()
assert.Equal(t, r, "jet: data has to be a struct") require.Equal(t, r, "jet: data has to be a struct")
}() }()
table2.INSERT(table2ColInt).MODEL([]int{}) table2.INSERT(table2ColInt).MODEL([]int{})

View file

@ -2,7 +2,7 @@ package internal
import ( import (
"fmt" "fmt"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/require"
"testing" "testing"
"time" "time"
) )
@ -10,138 +10,138 @@ import (
func TestNullByteArray(t *testing.T) { func TestNullByteArray(t *testing.T) {
var array NullByteArray var array NullByteArray
assert.NoError(t, array.Scan(nil)) require.NoError(t, array.Scan(nil))
assert.Equal(t, array.Valid, false) require.Equal(t, array.Valid, false)
assert.NoError(t, array.Scan([]byte("bytea"))) require.NoError(t, array.Scan([]byte("bytea")))
assert.Equal(t, array.Valid, true) require.Equal(t, array.Valid, true)
assert.Equal(t, string(array.ByteArray), string([]byte("bytea"))) require.Equal(t, string(array.ByteArray), string([]byte("bytea")))
assert.Error(t, array.Scan(12), "can't scan []byte from 12") require.Error(t, array.Scan(12), "can't scan []byte from 12")
} }
func TestNullTime(t *testing.T) { func TestNullTime(t *testing.T) {
var array NullTime var array NullTime
assert.NoError(t, array.Scan(nil)) require.NoError(t, array.Scan(nil))
assert.Equal(t, array.Valid, false) require.Equal(t, array.Valid, false)
time := time.Now() time := time.Now()
assert.NoError(t, array.Scan(time)) require.NoError(t, array.Scan(time))
assert.Equal(t, array.Valid, true) require.Equal(t, array.Valid, true)
value, _ := array.Value() value, _ := array.Value()
assert.Equal(t, value, time) require.Equal(t, value, time)
assert.NoError(t, array.Scan([]byte("13:10:11"))) require.NoError(t, array.Scan([]byte("13:10:11")))
assert.Equal(t, array.Valid, true) require.Equal(t, array.Valid, true)
value, _ = array.Value() value, _ = array.Value()
assert.Equal(t, fmt.Sprintf("%v", value), "0000-01-01 13:10:11 +0000 UTC") require.Equal(t, fmt.Sprintf("%v", value), "0000-01-01 13:10:11 +0000 UTC")
assert.NoError(t, array.Scan("13:10:11")) require.NoError(t, array.Scan("13:10:11"))
assert.Equal(t, array.Valid, true) require.Equal(t, array.Valid, true)
value, _ = array.Value() value, _ = array.Value()
assert.Equal(t, fmt.Sprintf("%v", value), "0000-01-01 13:10:11 +0000 UTC") require.Equal(t, fmt.Sprintf("%v", value), "0000-01-01 13:10:11 +0000 UTC")
assert.Error(t, array.Scan(12), "can't scan time.Time from 12") require.Error(t, array.Scan(12), "can't scan time.Time from 12")
} }
func TestNullInt8(t *testing.T) { func TestNullInt8(t *testing.T) {
var array NullInt8 var array NullInt8
assert.NoError(t, array.Scan(nil)) require.NoError(t, array.Scan(nil))
assert.Equal(t, array.Valid, false) require.Equal(t, array.Valid, false)
assert.NoError(t, array.Scan(int64(11))) require.NoError(t, array.Scan(int64(11)))
assert.Equal(t, array.Valid, true) require.Equal(t, array.Valid, true)
value, _ := array.Value() value, _ := array.Value()
assert.Equal(t, value, int8(11)) require.Equal(t, value, int8(11))
assert.Error(t, array.Scan("text"), "can't scan int8 from text") require.Error(t, array.Scan("text"), "can't scan int8 from text")
} }
func TestNullInt16(t *testing.T) { func TestNullInt16(t *testing.T) {
var array NullInt16 var array NullInt16
assert.NoError(t, array.Scan(nil)) require.NoError(t, array.Scan(nil))
assert.Equal(t, array.Valid, false) require.Equal(t, array.Valid, false)
assert.NoError(t, array.Scan(int64(11))) require.NoError(t, array.Scan(int64(11)))
assert.Equal(t, array.Valid, true) require.Equal(t, array.Valid, true)
value, _ := array.Value() value, _ := array.Value()
assert.Equal(t, value, int16(11)) require.Equal(t, value, int16(11))
assert.NoError(t, array.Scan(int16(20))) require.NoError(t, array.Scan(int16(20)))
assert.Equal(t, array.Valid, true) require.Equal(t, array.Valid, true)
value, _ = array.Value() value, _ = array.Value()
assert.Equal(t, value, int16(20)) require.Equal(t, value, int16(20))
assert.NoError(t, array.Scan(int8(30))) require.NoError(t, array.Scan(int8(30)))
assert.Equal(t, array.Valid, true) require.Equal(t, array.Valid, true)
value, _ = array.Value() value, _ = array.Value()
assert.Equal(t, value, int16(30)) require.Equal(t, value, int16(30))
assert.NoError(t, array.Scan(uint8(30))) require.NoError(t, array.Scan(uint8(30)))
assert.Equal(t, array.Valid, true) require.Equal(t, array.Valid, true)
value, _ = array.Value() value, _ = array.Value()
assert.Equal(t, value, int16(30)) require.Equal(t, value, int16(30))
assert.Error(t, array.Scan("text"), "can't scan int16 from text") require.Error(t, array.Scan("text"), "can't scan int16 from text")
} }
func TestNullInt32(t *testing.T) { func TestNullInt32(t *testing.T) {
var array NullInt32 var array NullInt32
assert.NoError(t, array.Scan(nil)) require.NoError(t, array.Scan(nil))
assert.Equal(t, array.Valid, false) require.Equal(t, array.Valid, false)
assert.NoError(t, array.Scan(int64(11))) require.NoError(t, array.Scan(int64(11)))
assert.Equal(t, array.Valid, true) require.Equal(t, array.Valid, true)
value, _ := array.Value() value, _ := array.Value()
assert.Equal(t, value, int32(11)) require.Equal(t, value, int32(11))
assert.NoError(t, array.Scan(int32(32))) require.NoError(t, array.Scan(int32(32)))
assert.Equal(t, array.Valid, true) require.Equal(t, array.Valid, true)
value, _ = array.Value() value, _ = array.Value()
assert.Equal(t, value, int32(32)) require.Equal(t, value, int32(32))
assert.NoError(t, array.Scan(int16(20))) require.NoError(t, array.Scan(int16(20)))
assert.Equal(t, array.Valid, true) require.Equal(t, array.Valid, true)
value, _ = array.Value() value, _ = array.Value()
assert.Equal(t, value, int32(20)) require.Equal(t, value, int32(20))
assert.NoError(t, array.Scan(uint16(16))) require.NoError(t, array.Scan(uint16(16)))
assert.Equal(t, array.Valid, true) require.Equal(t, array.Valid, true)
value, _ = array.Value() value, _ = array.Value()
assert.Equal(t, value, int32(16)) require.Equal(t, value, int32(16))
assert.NoError(t, array.Scan(int8(30))) require.NoError(t, array.Scan(int8(30)))
assert.Equal(t, array.Valid, true) require.Equal(t, array.Valid, true)
value, _ = array.Value() value, _ = array.Value()
assert.Equal(t, value, int32(30)) require.Equal(t, value, int32(30))
assert.NoError(t, array.Scan(uint8(30))) require.NoError(t, array.Scan(uint8(30)))
assert.Equal(t, array.Valid, true) require.Equal(t, array.Valid, true)
value, _ = array.Value() value, _ = array.Value()
assert.Equal(t, value, int32(30)) require.Equal(t, value, int32(30))
assert.Error(t, array.Scan("text"), "can't scan int32 from text") require.Error(t, array.Scan("text"), "can't scan int32 from text")
} }
func TestNullFloat32(t *testing.T) { func TestNullFloat32(t *testing.T) {
var array NullFloat32 var array NullFloat32
assert.NoError(t, array.Scan(nil)) require.NoError(t, array.Scan(nil))
assert.Equal(t, array.Valid, false) require.Equal(t, array.Valid, false)
assert.NoError(t, array.Scan(float64(64))) require.NoError(t, array.Scan(float64(64)))
assert.Equal(t, array.Valid, true) require.Equal(t, array.Valid, true)
value, _ := array.Value() value, _ := array.Value()
assert.Equal(t, value, float32(64)) require.Equal(t, value, float32(64))
assert.NoError(t, array.Scan(float32(32))) require.NoError(t, array.Scan(float32(32)))
assert.Equal(t, array.Valid, true) require.Equal(t, array.Valid, true)
value, _ = array.Value() value, _ = array.Value()
assert.Equal(t, value, float32(32)) require.Equal(t, value, float32(32))
assert.Error(t, array.Scan(12), "can't scan float32 from 12") require.Error(t, array.Scan(12), "can't scan float32 from 12")
} }

View file

@ -2,36 +2,36 @@ package qrm
import ( import (
"github.com/google/uuid" "github.com/google/uuid"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/require"
"reflect" "reflect"
"testing" "testing"
"time" "time"
) )
func TestIsSimpleModelType(t *testing.T) { func TestIsSimpleModelType(t *testing.T) {
assert.True(t, isSimpleModelType(reflect.TypeOf(int8(11)))) require.True(t, isSimpleModelType(reflect.TypeOf(int8(11))))
assert.True(t, isSimpleModelType(reflect.TypeOf(int16(11)))) require.True(t, isSimpleModelType(reflect.TypeOf(int16(11))))
assert.True(t, isSimpleModelType(reflect.TypeOf(int32(11)))) require.True(t, isSimpleModelType(reflect.TypeOf(int32(11))))
assert.True(t, isSimpleModelType(reflect.TypeOf(int64(11)))) require.True(t, isSimpleModelType(reflect.TypeOf(int64(11))))
assert.True(t, isSimpleModelType(reflect.TypeOf(uint8(11)))) require.True(t, isSimpleModelType(reflect.TypeOf(uint8(11))))
assert.True(t, isSimpleModelType(reflect.TypeOf(uint16(11)))) require.True(t, isSimpleModelType(reflect.TypeOf(uint16(11))))
assert.True(t, isSimpleModelType(reflect.TypeOf(uint32(11)))) require.True(t, isSimpleModelType(reflect.TypeOf(uint32(11))))
assert.True(t, isSimpleModelType(reflect.TypeOf(uint64(11)))) require.True(t, isSimpleModelType(reflect.TypeOf(uint64(11))))
assert.True(t, isSimpleModelType(reflect.TypeOf(float32(123.46)))) require.True(t, isSimpleModelType(reflect.TypeOf(float32(123.46))))
assert.True(t, isSimpleModelType(reflect.TypeOf(float64(123.46)))) require.True(t, isSimpleModelType(reflect.TypeOf(float64(123.46))))
assert.True(t, isSimpleModelType(reflect.TypeOf([]byte("Text")))) require.True(t, isSimpleModelType(reflect.TypeOf([]byte("Text"))))
assert.True(t, isSimpleModelType(reflect.TypeOf(time.Now()))) require.True(t, isSimpleModelType(reflect.TypeOf(time.Now())))
assert.True(t, isSimpleModelType(reflect.TypeOf(uuid.New()))) require.True(t, isSimpleModelType(reflect.TypeOf(uuid.New())))
complexModelType := struct { complexModelType := struct {
Field1 string Field1 string
Field2 string Field2 string
}{} }{}
assert.Equal(t, isSimpleModelType(reflect.TypeOf(complexModelType)), false) require.Equal(t, isSimpleModelType(reflect.TypeOf(complexModelType)), false)
assert.Equal(t, isSimpleModelType(reflect.TypeOf(&complexModelType)), false) require.Equal(t, isSimpleModelType(reflect.TypeOf(&complexModelType)), false)
assert.Equal(t, isSimpleModelType(reflect.TypeOf([]string{"str"})), false) require.Equal(t, isSimpleModelType(reflect.TypeOf([]string{"str"})), false)
assert.Equal(t, isSimpleModelType(reflect.TypeOf([]int{1, 2})), false) require.Equal(t, isSimpleModelType(reflect.TypeOf([]int{1, 2})), false)
} }

View file

@ -16,8 +16,6 @@ import (
"github.com/go-jet/jet/tests/testdata/results/common" "github.com/go-jet/jet/tests/testdata/results/common"
. "github.com/go-jet/jet/mysql" . "github.com/go-jet/jet/mysql"
"github.com/stretchr/testify/assert"
) )
func TestAllTypes(t *testing.T) { func TestAllTypes(t *testing.T) {
@ -29,9 +27,9 @@ func TestAllTypes(t *testing.T) {
LIMIT(2). LIMIT(2).
Query(db, &dest) Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 2) require.Equal(t, len(dest), 2)
if sourceIsMariaDB() { // MariaDB saves current timestamp in a case of NULL value insert if sourceIsMariaDB() { // MariaDB saves current timestamp in a case of NULL value insert
return return
@ -48,8 +46,8 @@ func TestAllTypesViewSelect(t *testing.T) {
dest := []AllTypesView{} dest := []AllTypesView{}
err := view.AllTypesView.SELECT(view.AllTypesView.AllColumns).Query(db, &dest) err := view.AllTypesView.SELECT(view.AllTypesView.AllColumns).Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 2) require.Equal(t, len(dest), 2)
if sourceIsMariaDB() { // MariaDB saves current timestamp in a case of NULL value insert if sourceIsMariaDB() { // MariaDB saves current timestamp in a case of NULL value insert
return return
@ -77,11 +75,11 @@ func TestUUID(t *testing.T) {
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.True(t, dest.StrUUID != nil) require.True(t, dest.StrUUID != nil)
assert.True(t, dest.UUID.String() != uuid.UUID{}.String()) require.True(t, dest.UUID.String() != uuid.UUID{}.String())
assert.True(t, dest.StrUUID.String() != uuid.UUID{}.String()) require.True(t, dest.StrUUID.String() != uuid.UUID{}.String())
assert.Equal(t, dest.StrUUID.String(), dest.BinUUID.String()) require.Equal(t, dest.StrUUID.String(), dest.BinUUID.String())
} }
func TestExpressionOperators(t *testing.T) { func TestExpressionOperators(t *testing.T) {
@ -122,7 +120,7 @@ LIMIT ?;
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
//testutils.PrintJson(dest) //testutils.PrintJson(dest)
@ -213,7 +211,7 @@ FROM test_sample.all_types;
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertJSONFile(t, dest, "./testdata/results/common/bool_operators.json") testutils.AssertJSONFile(t, dest, "./testdata/results/common/bool_operators.json")
} }
@ -266,7 +264,7 @@ func TestFloatOperators(t *testing.T) {
//fmt.Println(queryStr) //fmt.Println(queryStr)
assert.Equal(t, queryStr, strings.Replace(` require.Equal(t, queryStr, strings.Replace(`
SELECT (all_types.'numeric' = all_types.'numeric') AS "eq1", SELECT (all_types.'numeric' = all_types.'numeric') AS "eq1",
(all_types.'decimal' = ?) AS "eq2", (all_types.'decimal' = ?) AS "eq2",
(all_types.'real' = ?) AS "eq3", (all_types.'real' = ?) AS "eq3",
@ -312,7 +310,7 @@ LIMIT ?;
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertJSONFile(t, dest, "./testdata/results/common/float_operators.json") testutils.AssertJSONFile(t, dest, "./testdata/results/common/float_operators.json")
} }
@ -449,7 +447,7 @@ LIMIT ?;
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
//testutils.PrintJson(dest) //testutils.PrintJson(dest)
@ -521,7 +519,7 @@ func TestStringOperators(t *testing.T) {
dest := []struct{}{} dest := []struct{}{}
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
} }
var timeT = time.Date(2009, 11, 17, 20, 34, 58, 651387237, time.UTC) var timeT = time.Date(2009, 11, 17, 20, 34, 58, 651387237, time.UTC)
@ -609,7 +607,7 @@ FROM test_sample.all_types;
dest := []struct{}{} dest := []struct{}{}
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
} }
func TestDateExpressions(t *testing.T) { func TestDateExpressions(t *testing.T) {
@ -684,7 +682,7 @@ FROM test_sample.all_types;
dest := []struct{}{} dest := []struct{}{}
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
} }
func TestDateTimeExpressions(t *testing.T) { func TestDateTimeExpressions(t *testing.T) {
@ -761,7 +759,7 @@ FROM test_sample.all_types;
dest := []struct{}{} dest := []struct{}{}
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
} }
func TestTimestampExpressions(t *testing.T) { func TestTimestampExpressions(t *testing.T) {
@ -837,13 +835,13 @@ FROM test_sample.all_types;
dest := []struct{}{} dest := []struct{}{}
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
} }
func TestTimeLiterals(t *testing.T) { func TestTimeLiterals(t *testing.T) {
loc, err := time.LoadLocation("Europe/Berlin") loc, err := time.LoadLocation("Europe/Berlin")
assert.NoError(t, err) require.NoError(t, err)
var timeT = time.Date(2009, 11, 17, 20, 34, 58, 351387237, loc) var timeT = time.Date(2009, 11, 17, 20, 34, 58, 351387237, loc)
@ -882,7 +880,7 @@ LIMIT ?;
} }
err = query.Query(db, &dest) err = query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
//testutils.PrintJson(dest) //testutils.PrintJson(dest)
@ -965,7 +963,7 @@ func TestINTERVAL(t *testing.T) {
//fmt.Println(query.DebugSql()) //fmt.Println(query.DebugSql())
err := query.Query(db, &struct{}{}) err := query.Query(db, &struct{}{})
assert.NoError(t, err) require.NoError(t, err)
} }
func TestAllTypesInsert(t *testing.T) { func TestAllTypesInsert(t *testing.T) {
@ -1032,7 +1030,7 @@ func TestAllTypesInsertOnDuplicateKeyUpdate(t *testing.T) {
fmt.Println(stmt.DebugSql()) fmt.Println(stmt.DebugSql())
_, err = stmt.Exec(tx) _, err = stmt.Exec(tx)
assert.NoError(t, err) require.NoError(t, err)
err = tx.Rollback() err = tx.Rollback()
require.NoError(t, err) require.NoError(t, err)
@ -1256,7 +1254,7 @@ FROM test_sample.user;
var dest []model.User var dest []model.User
err := stmt.Query(db, &dest) err := stmt.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
testutils.PrintJson(dest) testutils.PrintJson(dest)

View file

@ -4,7 +4,7 @@ import (
"github.com/go-jet/jet/internal/testutils" "github.com/go-jet/jet/internal/testutils"
. "github.com/go-jet/jet/mysql" . "github.com/go-jet/jet/mysql"
. "github.com/go-jet/jet/tests/.gentestdata/mysql/test_sample/table" . "github.com/go-jet/jet/tests/.gentestdata/mysql/test_sample/table"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/require"
"testing" "testing"
"time" "time"
) )
@ -55,7 +55,7 @@ FROM test_sample.all_types;
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertDeepEqual(t, dest, Result{ testutils.AssertDeepEqual(t, dest, Result{
As1: "test", As1: "test",

View file

@ -6,7 +6,7 @@ import (
. "github.com/go-jet/jet/mysql" . "github.com/go-jet/jet/mysql"
"github.com/go-jet/jet/tests/.gentestdata/mysql/test_sample/model" "github.com/go-jet/jet/tests/.gentestdata/mysql/test_sample/model"
. "github.com/go-jet/jet/tests/.gentestdata/mysql/test_sample/table" . "github.com/go-jet/jet/tests/.gentestdata/mysql/test_sample/table"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/require"
"testing" "testing"
"time" "time"
) )
@ -60,7 +60,7 @@ func TestDeleteQueryContext(t *testing.T) {
dest := []model.Link{} dest := []model.Link{}
err := deleteStmt.QueryContext(ctx, db, &dest) err := deleteStmt.QueryContext(ctx, db, &dest)
assert.Error(t, err, "context deadline exceeded") require.Error(t, err, "context deadline exceeded")
} }
func TestDeleteExecContext(t *testing.T) { func TestDeleteExecContext(t *testing.T) {
@ -77,7 +77,7 @@ func TestDeleteExecContext(t *testing.T) {
_, err := deleteStmt.ExecContext(ctx, db) _, err := deleteStmt.ExecContext(ctx, db)
assert.Error(t, err, "context deadline exceeded") require.Error(t, err, "context deadline exceeded")
} }
func initForDeleteTest(t *testing.T) { func initForDeleteTest(t *testing.T) {

View file

@ -4,7 +4,7 @@ import (
"github.com/go-jet/jet/generator/mysql" "github.com/go-jet/jet/generator/mysql"
"github.com/go-jet/jet/internal/testutils" "github.com/go-jet/jet/internal/testutils"
"github.com/go-jet/jet/tests/dbconfig" "github.com/go-jet/jet/tests/dbconfig"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/require"
"io/ioutil" "io/ioutil"
"os" "os"
"os/exec" "os/exec"
@ -25,23 +25,23 @@ func TestGenerator(t *testing.T) {
DBName: "dvds", DBName: "dvds",
}) })
assert.NoError(t, err) require.NoError(t, err)
assertGeneratedFiles(t) assertGeneratedFiles(t)
} }
err := os.RemoveAll(genTestDirRoot) err := os.RemoveAll(genTestDirRoot)
assert.NoError(t, err) require.NoError(t, err)
} }
func TestCmdGenerator(t *testing.T) { func TestCmdGenerator(t *testing.T) {
goInstallJet := exec.Command("sh", "-c", "go install github.com/go-jet/jet/cmd/jet") goInstallJet := exec.Command("sh", "-c", "go install github.com/go-jet/jet/cmd/jet")
goInstallJet.Stderr = os.Stderr goInstallJet.Stderr = os.Stderr
err := goInstallJet.Run() err := goInstallJet.Run()
assert.NoError(t, err) require.NoError(t, err)
err = os.RemoveAll(genTestDir3) err = os.RemoveAll(genTestDir3)
assert.NoError(t, err) require.NoError(t, err)
cmd := exec.Command("jet", "-source=MySQL", "-dbname=dvds", "-host=localhost", "-port=3306", cmd := exec.Command("jet", "-source=MySQL", "-dbname=dvds", "-host=localhost", "-port=3306",
"-user=jet", "-password=jet", "-path="+genTestDir3) "-user=jet", "-password=jet", "-path="+genTestDir3)
@ -50,18 +50,18 @@ func TestCmdGenerator(t *testing.T) {
cmd.Stdout = os.Stdout cmd.Stdout = os.Stdout
err = cmd.Run() err = cmd.Run()
assert.NoError(t, err) require.NoError(t, err)
assertGeneratedFiles(t) assertGeneratedFiles(t)
err = os.RemoveAll(genTestDirRoot) err = os.RemoveAll(genTestDirRoot)
assert.NoError(t, err) require.NoError(t, err)
} }
func assertGeneratedFiles(t *testing.T) { func assertGeneratedFiles(t *testing.T) {
// Table SQL Builder files // Table SQL Builder files
tableSQLBuilderFiles, err := ioutil.ReadDir(genTestDir3 + "/dvds/table") tableSQLBuilderFiles, err := ioutil.ReadDir(genTestDir3 + "/dvds/table")
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertFileNamesEqual(t, tableSQLBuilderFiles, "actor.go", "address.go", "category.go", "city.go", "country.go", testutils.AssertFileNamesEqual(t, tableSQLBuilderFiles, "actor.go", "address.go", "category.go", "city.go", "country.go",
"customer.go", "film.go", "film_actor.go", "film_category.go", "film_text.go", "inventory.go", "language.go", "customer.go", "film.go", "film_actor.go", "film_category.go", "film_text.go", "inventory.go", "language.go",
@ -71,7 +71,7 @@ func assertGeneratedFiles(t *testing.T) {
// View SQL Builder files // View SQL Builder files
viewSQLBuilderFiles, err := ioutil.ReadDir(genTestDir3 + "/dvds/view") viewSQLBuilderFiles, err := ioutil.ReadDir(genTestDir3 + "/dvds/view")
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertFileNamesEqual(t, viewSQLBuilderFiles, "actor_info.go", "film_list.go", "nicer_but_slower_film_list.go", testutils.AssertFileNamesEqual(t, viewSQLBuilderFiles, "actor_info.go", "film_list.go", "nicer_but_slower_film_list.go",
"sales_by_film_category.go", "customer_list.go", "sales_by_store.go", "staff_list.go") "sales_by_film_category.go", "customer_list.go", "sales_by_store.go", "staff_list.go")
@ -80,14 +80,14 @@ func assertGeneratedFiles(t *testing.T) {
// Enums SQL Builder files // Enums SQL Builder files
enumFiles, err := ioutil.ReadDir(genTestDir3 + "/dvds/enum") enumFiles, err := ioutil.ReadDir(genTestDir3 + "/dvds/enum")
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertFileNamesEqual(t, enumFiles, "film_rating.go", "film_list_rating.go", "nicer_but_slower_film_list_rating.go") testutils.AssertFileNamesEqual(t, enumFiles, "film_rating.go", "film_list_rating.go", "nicer_but_slower_film_list_rating.go")
testutils.AssertFileContent(t, genTestDir3+"/dvds/enum/film_rating.go", mpaaRatingEnumFile) testutils.AssertFileContent(t, genTestDir3+"/dvds/enum/film_rating.go", mpaaRatingEnumFile)
// Model files // Model files
modelFiles, err := ioutil.ReadDir(genTestDir3 + "/dvds/model") modelFiles, err := ioutil.ReadDir(genTestDir3 + "/dvds/model")
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertFileNamesEqual(t, modelFiles, "actor.go", "address.go", "category.go", "city.go", "country.go", testutils.AssertFileNamesEqual(t, modelFiles, "actor.go", "address.go", "category.go", "city.go", "country.go",
"customer.go", "film.go", "film_actor.go", "film_category.go", "film_text.go", "inventory.go", "language.go", "customer.go", "film.go", "film_actor.go", "film_category.go", "film_text.go", "inventory.go", "language.go",

View file

@ -6,7 +6,6 @@ import (
. "github.com/go-jet/jet/mysql" . "github.com/go-jet/jet/mysql"
"github.com/go-jet/jet/tests/.gentestdata/mysql/test_sample/model" "github.com/go-jet/jet/tests/.gentestdata/mysql/test_sample/model"
. "github.com/go-jet/jet/tests/.gentestdata/mysql/test_sample/table" . "github.com/go-jet/jet/tests/.gentestdata/mysql/test_sample/table"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"math/rand" "math/rand"
"testing" "testing"
@ -34,7 +33,7 @@ VALUES (100, 'http://www.postgresqltutorial.com', 'PostgreSQL Tutorial', DEFAULT
102, "http://www.yahoo.com", "Yahoo", nil) 102, "http://www.yahoo.com", "Yahoo", nil)
_, err := insertQuery.Exec(db) _, err := insertQuery.Exec(db)
assert.NoError(t, err) require.NoError(t, err)
insertedLinks := []model.Link{} insertedLinks := []model.Link{}
@ -43,8 +42,8 @@ VALUES (100, 'http://www.postgresqltutorial.com', 'PostgreSQL Tutorial', DEFAULT
ORDER_BY(Link.ID). ORDER_BY(Link.ID).
Query(db, &insertedLinks) Query(db, &insertedLinks)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(insertedLinks), 3) require.Equal(t, len(insertedLinks), 3)
testutils.AssertDeepEqual(t, insertedLinks[0], postgreTutorial) testutils.AssertDeepEqual(t, insertedLinks[0], postgreTutorial)
@ -82,7 +81,7 @@ VALUES (100, 'http://www.postgresqltutorial.com', 'PostgreSQL Tutorial', DEFAULT
100, "http://www.postgresqltutorial.com", "PostgreSQL Tutorial") 100, "http://www.postgresqltutorial.com", "PostgreSQL Tutorial")
_, err := stmt.Exec(db) _, err := stmt.Exec(db)
assert.NoError(t, err) require.NoError(t, err)
insertedLinks := []model.Link{} insertedLinks := []model.Link{}
@ -91,8 +90,8 @@ VALUES (100, 'http://www.postgresqltutorial.com', 'PostgreSQL Tutorial', DEFAULT
ORDER_BY(Link.ID). ORDER_BY(Link.ID).
Query(db, &insertedLinks) Query(db, &insertedLinks)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(insertedLinks), 1) require.Equal(t, len(insertedLinks), 1)
testutils.AssertDeepEqual(t, insertedLinks[0], postgreTutorial) testutils.AssertDeepEqual(t, insertedLinks[0], postgreTutorial)
} }
@ -115,7 +114,7 @@ VALUES ('http://www.duckduckgo.com', 'Duck Duck go');
testutils.AssertDebugStatementSql(t, query, expectedSQL, "http://www.duckduckgo.com", "Duck Duck go") testutils.AssertDebugStatementSql(t, query, expectedSQL, "http://www.duckduckgo.com", "Duck Duck go")
_, err := query.Exec(db) _, err := query.Exec(db)
assert.NoError(t, err) require.NoError(t, err)
} }
func TestInsertModelObjectEmptyColumnList(t *testing.T) { func TestInsertModelObjectEmptyColumnList(t *testing.T) {
@ -138,7 +137,7 @@ VALUES (1000, 'http://www.duckduckgo.com', 'Duck Duck go', NULL);
testutils.AssertDebugStatementSql(t, query, expectedSQL, int32(1000), "http://www.duckduckgo.com", "Duck Duck go", nil) testutils.AssertDebugStatementSql(t, query, expectedSQL, int32(1000), "http://www.duckduckgo.com", "Duck Duck go", nil)
_, err := query.Exec(db) _, err := query.Exec(db)
assert.NoError(t, err) require.NoError(t, err)
} }
func TestInsertModelsObject(t *testing.T) { func TestInsertModelsObject(t *testing.T) {
@ -174,7 +173,7 @@ VALUES ('http://www.postgresqltutorial.com', 'PostgreSQL Tutorial'),
"http://www.yahoo.com", "Yahoo") "http://www.yahoo.com", "Yahoo")
_, err := query.Exec(db) _, err := query.Exec(db)
assert.NoError(t, err) require.NoError(t, err)
} }
func TestInsertUsingMutableColumns(t *testing.T) { func TestInsertUsingMutableColumns(t *testing.T) {
@ -209,14 +208,14 @@ VALUES ('http://www.postgresqltutorial.com', 'PostgreSQL Tutorial', DEFAULT),
"http://www.yahoo.com", "Yahoo", nil) "http://www.yahoo.com", "Yahoo", nil)
_, err := stmt.Exec(db) _, err := stmt.Exec(db)
assert.NoError(t, err) require.NoError(t, err)
} }
func TestInsertQuery(t *testing.T) { func TestInsertQuery(t *testing.T) {
_, err := Link.DELETE(). _, err := Link.DELETE().
WHERE(Link.ID.NOT_EQ(Int(1)).AND(Link.Name.EQ(String("Youtube")))). WHERE(Link.ID.NOT_EQ(Int(1)).AND(Link.Name.EQ(String("Youtube")))).
Exec(db) Exec(db)
assert.NoError(t, err) require.NoError(t, err)
var expectedSQL = ` var expectedSQL = `
INSERT INTO test_sample.link (url, name) ( INSERT INTO test_sample.link (url, name) (
@ -238,7 +237,7 @@ INSERT INTO test_sample.link (url, name) (
testutils.AssertDebugStatementSql(t, query, expectedSQL, int64(1)) testutils.AssertDebugStatementSql(t, query, expectedSQL, int64(1))
_, err = query.Exec(db) _, err = query.Exec(db)
assert.NoError(t, err) require.NoError(t, err)
youtubeLinks := []model.Link{} youtubeLinks := []model.Link{}
err = Link. err = Link.
@ -246,8 +245,8 @@ INSERT INTO test_sample.link (url, name) (
WHERE(Link.Name.EQ(String("Youtube"))). WHERE(Link.Name.EQ(String("Youtube"))).
Query(db, &youtubeLinks) Query(db, &youtubeLinks)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(youtubeLinks), 2) require.Equal(t, len(youtubeLinks), 2)
} }
func TestInsertOnDuplicateKey(t *testing.T) { func TestInsertOnDuplicateKey(t *testing.T) {
@ -304,7 +303,7 @@ func TestInsertWithQueryContext(t *testing.T) {
dest := []model.Link{} dest := []model.Link{}
err := stmt.QueryContext(ctx, db, &dest) err := stmt.QueryContext(ctx, db, &dest)
assert.Error(t, err, "context deadline exceeded") require.Error(t, err, "context deadline exceeded")
} }
func TestInsertWithExecContext(t *testing.T) { func TestInsertWithExecContext(t *testing.T) {
@ -320,10 +319,10 @@ func TestInsertWithExecContext(t *testing.T) {
_, err := stmt.ExecContext(ctx, db) _, err := stmt.ExecContext(ctx, db)
assert.Error(t, err, "context deadline exceeded") require.Error(t, err, "context deadline exceeded")
} }
func cleanUpLinkTable(t *testing.T) { func cleanUpLinkTable(t *testing.T) {
_, err := Link.DELETE().WHERE(Link.ID.GT(Int(1))).Exec(db) _, err := Link.DELETE().WHERE(Link.ID.GT(Int(1))).Exec(db)
assert.NoError(t, err) require.NoError(t, err)
} }

View file

@ -4,7 +4,7 @@ import (
"github.com/go-jet/jet/internal/testutils" "github.com/go-jet/jet/internal/testutils"
. "github.com/go-jet/jet/mysql" . "github.com/go-jet/jet/mysql"
. "github.com/go-jet/jet/tests/.gentestdata/mysql/dvds/table" . "github.com/go-jet/jet/tests/.gentestdata/mysql/dvds/table"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/require"
"testing" "testing"
) )
@ -16,7 +16,7 @@ LOCK TABLES dvds.customer READ;
`) `)
_, err := query.Exec(db) _, err := query.Exec(db)
assert.NoError(t, err) require.NoError(t, err)
} }
func TestLockWrite(t *testing.T) { func TestLockWrite(t *testing.T) {
@ -27,7 +27,7 @@ LOCK TABLES dvds.customer WRITE;
`) `)
_, err := query.Exec(db) _, err := query.Exec(db)
assert.NoError(t, err) require.NoError(t, err)
} }
func TestUnlockTables(t *testing.T) { func TestUnlockTables(t *testing.T) {
@ -38,5 +38,5 @@ UNLOCK TABLES;
`) `)
_, err := query.Exec(db) _, err := query.Exec(db)
assert.NoError(t, err) require.NoError(t, err)
} }

View file

@ -7,7 +7,7 @@ import (
"github.com/go-jet/jet/tests/.gentestdata/mysql/dvds/model" "github.com/go-jet/jet/tests/.gentestdata/mysql/dvds/model"
. "github.com/go-jet/jet/tests/.gentestdata/mysql/dvds/table" . "github.com/go-jet/jet/tests/.gentestdata/mysql/dvds/table"
"github.com/go-jet/jet/tests/.gentestdata/mysql/dvds/view" "github.com/go-jet/jet/tests/.gentestdata/mysql/dvds/view"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/require"
"testing" "testing"
) )
@ -30,7 +30,7 @@ WHERE actor.actor_id = ?;
actor := model.Actor{} actor := model.Actor{}
err := query.Query(db, &actor) err := query.Query(db, &actor)
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertDeepEqual(t, actor, actor2) testutils.AssertDeepEqual(t, actor, actor2)
} }
@ -59,9 +59,9 @@ ORDER BY actor.actor_id;
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 200) require.Equal(t, len(dest), 200)
testutils.AssertDeepEqual(t, dest[1], actor2) testutils.AssertDeepEqual(t, dest[1], actor2)
//testutils.PrintJson(dest) //testutils.PrintJson(dest)
@ -136,11 +136,11 @@ ORDER BY payment.customer_id, SUM(payment.amount) ASC;
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
//testutils.PrintJson(dest) //testutils.PrintJson(dest)
assert.Equal(t, len(dest), 174) require.Equal(t, len(dest), 174)
//testutils.SaveJsonFile(dest, "mysql/testdata/customer_payment_sum.json") //testutils.SaveJsonFile(dest, "mysql/testdata/customer_payment_sum.json")
testutils.AssertJSONFile(t, dest, "./testdata/results/mysql/customer_payment_sum.json") testutils.AssertJSONFile(t, dest, "./testdata/results/mysql/customer_payment_sum.json")
@ -176,7 +176,7 @@ func TestSubQuery(t *testing.T) {
} }
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
//testutils.SaveJsonFile(dest, "mysql/testdata/r_rating_films.json") //testutils.SaveJsonFile(dest, "mysql/testdata/r_rating_films.json")
testutils.AssertJSONFile(t, dest, "./testdata/results/mysql/r_rating_films.json") testutils.AssertJSONFile(t, dest, "./testdata/results/mysql/r_rating_films.json")
@ -229,7 +229,7 @@ LIMIT ?;
dest := []struct{}{} dest := []struct{}{}
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
} }
func TestSelectUNION(t *testing.T) { func TestSelectUNION(t *testing.T) {
@ -265,7 +265,7 @@ LIMIT ?;
dest := []struct{}{} dest := []struct{}{}
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
} }
func TestSelectUNION_ALL(t *testing.T) { func TestSelectUNION_ALL(t *testing.T) {
@ -308,7 +308,7 @@ OFFSET ?;
dest := []struct{}{} dest := []struct{}{}
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
} }
func TestJoinQueryStruct(t *testing.T) { func TestJoinQueryStruct(t *testing.T) {
@ -406,10 +406,10 @@ LIMIT ?;
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
//assert.Equal(t, len(dest), 1) //require.Equal(t, len(dest), 1)
//assert.Equal(t, len(dest[0].Films), 10) //require.Equal(t, len(dest[0].Films), 10)
//assert.Equal(t, len(dest[0].Films[0].Actors), 10) //require.Equal(t, len(dest[0].Films[0].Actors), 10)
//testutils.SaveJsonFile(dest, "./mysql/testdata/lang_film_actor_inventory_rental.json") //testutils.SaveJsonFile(dest, "./mysql/testdata/lang_film_actor_inventory_rental.json")
@ -450,10 +450,10 @@ FOR`
tx, _ := db.Begin() tx, _ := db.Begin()
_, err := query.Exec(tx) _, err := query.Exec(tx)
assert.NoError(t, err) require.NoError(t, err)
err = tx.Rollback() err = tx.Rollback()
assert.NoError(t, err) require.NoError(t, err)
} }
for lockType, lockTypeStr := range getRowLockTestData() { for lockType, lockTypeStr := range getRowLockTestData() {
@ -464,10 +464,10 @@ FOR`
tx, _ := db.Begin() tx, _ := db.Begin()
_, err := query.Exec(tx) _, err := query.Exec(tx)
assert.NoError(t, err) require.NoError(t, err)
err = tx.Rollback() err = tx.Rollback()
assert.NoError(t, err) require.NoError(t, err)
} }
if sourceIsMariaDB() { if sourceIsMariaDB() {
@ -482,10 +482,10 @@ FOR`
tx, _ := db.Begin() tx, _ := db.Begin()
_, err := query.Exec(tx) _, err := query.Exec(tx)
assert.NoError(t, err) require.NoError(t, err)
err = tx.Rollback() err = tx.Rollback()
assert.NoError(t, err) require.NoError(t, err)
} }
} }
@ -514,7 +514,7 @@ SELECT true,
dest := []struct{}{} dest := []struct{}{}
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
} }
func TestLockInShareMode(t *testing.T) { func TestLockInShareMode(t *testing.T) {
@ -535,7 +535,7 @@ LOCK IN SHARE MODE;
dest := []struct{}{} dest := []struct{}{}
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
} }
func TestWindowFunction(t *testing.T) { func TestWindowFunction(t *testing.T) {
@ -612,7 +612,7 @@ GROUP BY payment.amount, payment.customer_id, payment.payment_date;
dest := []struct{}{} dest := []struct{}{}
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
} }
func TestWindowClause(t *testing.T) { func TestWindowClause(t *testing.T) {
@ -649,7 +649,7 @@ ORDER BY payment.customer_id;
dest := []struct{}{} dest := []struct{}{}
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
} }
func TestSimpleView(t *testing.T) { func TestSimpleView(t *testing.T) {
@ -670,9 +670,9 @@ func TestSimpleView(t *testing.T) {
var dest []ActorInfo var dest []ActorInfo
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 10) require.Equal(t, len(dest), 10)
testutils.AssertJSON(t, dest[1:2], ` testutils.AssertJSON(t, dest[1:2], `
[ [
{ {
@ -702,11 +702,11 @@ func TestJoinViewWithTable(t *testing.T) {
} }
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 2) require.Equal(t, len(dest), 2)
assert.Equal(t, len(dest[0].Rentals), 32) require.Equal(t, len(dest[0].Rentals), 32)
assert.Equal(t, len(dest[1].Rentals), 27) require.Equal(t, len(dest[1].Rentals), 27)
} }
func TestConditionalProjectionList(t *testing.T) { func TestConditionalProjectionList(t *testing.T) {
@ -737,7 +737,7 @@ LIMIT 3;
`) `)
var dest []model.Customer var dest []model.Customer
err := stmt.Query(db, &dest) err := stmt.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 3) require.Equal(t, len(dest), 3)
} }

View file

@ -8,7 +8,7 @@ import (
"github.com/go-jet/jet/tests/.gentestdata/mysql/dvds/table" "github.com/go-jet/jet/tests/.gentestdata/mysql/dvds/table"
"github.com/go-jet/jet/tests/.gentestdata/mysql/test_sample/model" "github.com/go-jet/jet/tests/.gentestdata/mysql/test_sample/model"
. "github.com/go-jet/jet/tests/.gentestdata/mysql/test_sample/table" . "github.com/go-jet/jet/tests/.gentestdata/mysql/test_sample/table"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/require"
"testing" "testing"
"time" "time"
) )
@ -51,8 +51,8 @@ WHERE link.name = 'Bing';
WHERE(Link.Name.EQ(String("Bong"))). WHERE(Link.Name.EQ(String("Bong"))).
Query(db, &links) Query(db, &links)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(links), 1) require.Equal(t, len(links), 1)
testutils.AssertDeepEqual(t, links[0], model.Link{ testutils.AssertDeepEqual(t, links[0], model.Link{
ID: 204, ID: 204,
URL: "http://bong.com", URL: "http://bong.com",
@ -198,7 +198,7 @@ WHERE link.id = 201;
func TestUpdateWithInvalidModelData(t *testing.T) { func TestUpdateWithInvalidModelData(t *testing.T) {
defer func() { defer func() {
r := recover() r := recover()
assert.Equal(t, r, "missing struct field for column : id") require.Equal(t, r, "missing struct field for column : id")
}() }()
setupLinkTableForUpdateTest(t) setupLinkTableForUpdateTest(t)
@ -239,7 +239,7 @@ func TestUpdateQueryContext(t *testing.T) {
dest := []model.Link{} dest := []model.Link{}
err := updateStmt.QueryContext(ctx, db, &dest) err := updateStmt.QueryContext(ctx, db, &dest)
assert.Error(t, err, "context deadline exceeded") require.Error(t, err, "context deadline exceeded")
} }
func TestUpdateExecContext(t *testing.T) { func TestUpdateExecContext(t *testing.T) {
@ -257,7 +257,7 @@ func TestUpdateExecContext(t *testing.T) {
_, err := updateStmt.ExecContext(ctx, db) _, err := updateStmt.ExecContext(ctx, db)
assert.Error(t, err, "context deadline exceeded") require.Error(t, err, "context deadline exceeded")
} }
func TestUpdateWithJoin(t *testing.T) { func TestUpdateWithJoin(t *testing.T) {
@ -270,7 +270,7 @@ func TestUpdateWithJoin(t *testing.T) {
//fmt.Println(query.DebugSql()) //fmt.Println(query.DebugSql())
_, err := query.Exec(db) _, err := query.Exec(db)
assert.NoError(t, err) require.NoError(t, err)
} }
func setupLinkTableForUpdateTest(t *testing.T) { func setupLinkTableForUpdateTest(t *testing.T) {
@ -285,5 +285,5 @@ func setupLinkTableForUpdateTest(t *testing.T) {
VALUES(204, "http://www.bing.com", "Bing", DEFAULT). VALUES(204, "http://www.bing.com", "Bing", DEFAULT).
Exec(db) Exec(db)
assert.NoError(t, err) require.NoError(t, err)
} }

View file

@ -1,25 +1,24 @@
package postgres package postgres
import ( import (
"github.com/stretchr/testify/require"
"testing" "testing"
"time" "time"
"github.com/google/uuid"
"github.com/stretchr/testify/assert"
"github.com/go-jet/jet/internal/testutils" "github.com/go-jet/jet/internal/testutils"
. "github.com/go-jet/jet/postgres" . "github.com/go-jet/jet/postgres"
"github.com/go-jet/jet/tests/.gentestdata/jetdb/test_sample/model" "github.com/go-jet/jet/tests/.gentestdata/jetdb/test_sample/model"
. "github.com/go-jet/jet/tests/.gentestdata/jetdb/test_sample/table" . "github.com/go-jet/jet/tests/.gentestdata/jetdb/test_sample/table"
"github.com/go-jet/jet/tests/.gentestdata/jetdb/test_sample/view" "github.com/go-jet/jet/tests/.gentestdata/jetdb/test_sample/view"
"github.com/go-jet/jet/tests/testdata/results/common" "github.com/go-jet/jet/tests/testdata/results/common"
"github.com/google/uuid"
) )
func TestAllTypesSelect(t *testing.T) { func TestAllTypesSelect(t *testing.T) {
dest := []model.AllTypes{} dest := []model.AllTypes{}
err := AllTypes.SELECT(AllTypes.AllColumns).Query(db, &dest) err := AllTypes.SELECT(AllTypes.AllColumns).Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertDeepEqual(t, dest[0], allTypesRow0) testutils.AssertDeepEqual(t, dest[0], allTypesRow0)
testutils.AssertDeepEqual(t, dest[1], allTypesRow1) testutils.AssertDeepEqual(t, dest[1], allTypesRow1)
@ -31,7 +30,7 @@ func TestAllTypesViewSelect(t *testing.T) {
dest := []AllTypesView{} dest := []AllTypesView{}
err := view.AllTypesView.SELECT(view.AllTypesView.AllColumns).Query(db, &dest) err := view.AllTypesView.SELECT(view.AllTypesView.AllColumns).Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertDeepEqual(t, dest[0], AllTypesView(allTypesRow0)) testutils.AssertDeepEqual(t, dest[0], AllTypesView(allTypesRow0))
testutils.AssertDeepEqual(t, dest[1], AllTypesView(allTypesRow1)) testutils.AssertDeepEqual(t, dest[1], AllTypesView(allTypesRow1))
@ -45,9 +44,9 @@ func TestAllTypesInsertModel(t *testing.T) {
dest := []model.AllTypes{} dest := []model.AllTypes{}
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 2) require.Equal(t, len(dest), 2)
testutils.AssertDeepEqual(t, dest[0], allTypesRow0) testutils.AssertDeepEqual(t, dest[0], allTypesRow0)
testutils.AssertDeepEqual(t, dest[1], allTypesRow1) testutils.AssertDeepEqual(t, dest[1], allTypesRow1)
} }
@ -64,8 +63,8 @@ func TestAllTypesInsertQuery(t *testing.T) {
dest := []model.AllTypes{} dest := []model.AllTypes{}
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 2) require.Equal(t, len(dest), 2)
testutils.AssertDeepEqual(t, dest[0], allTypesRow0) testutils.AssertDeepEqual(t, dest[0], allTypesRow0)
testutils.AssertDeepEqual(t, dest[1], allTypesRow1) testutils.AssertDeepEqual(t, dest[1], allTypesRow1)
} }
@ -80,7 +79,7 @@ func TestAllTypesFromSubQuery(t *testing.T) {
FROM(subQuery). FROM(subQuery).
LIMIT(2) LIMIT(2)
assert.Equal(t, mainQuery.DebugSql(), ` require.Equal(t, mainQuery.DebugSql(), `
SELECT "allTypesSubQuery"."all_types.small_int_ptr" AS "all_types.small_int_ptr", SELECT "allTypesSubQuery"."all_types.small_int_ptr" AS "all_types.small_int_ptr",
"allTypesSubQuery"."all_types.small_int" AS "all_types.small_int", "allTypesSubQuery"."all_types.small_int" AS "all_types.small_int",
"allTypesSubQuery"."all_types.integer_ptr" AS "all_types.integer_ptr", "allTypesSubQuery"."all_types.integer_ptr" AS "all_types.integer_ptr",
@ -212,8 +211,8 @@ LIMIT 2;
dest := []model.AllTypes{} dest := []model.AllTypes{}
err := mainQuery.Query(db, &dest) err := mainQuery.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 2) require.Equal(t, len(dest), 2)
} }
func TestExpressionOperators(t *testing.T) { func TestExpressionOperators(t *testing.T) {
@ -251,7 +250,7 @@ LIMIT $5;
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
//testutils.PrintJson(dest) //testutils.PrintJson(dest)
@ -320,7 +319,7 @@ func TestExpressionCast(t *testing.T) {
dest := []struct{}{} dest := []struct{}{}
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
} }
func TestStringOperators(t *testing.T) { func TestStringOperators(t *testing.T) {
@ -400,7 +399,7 @@ func TestStringOperators(t *testing.T) {
dest := []struct{}{} dest := []struct{}{}
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
} }
func TestBoolOperators(t *testing.T) { func TestBoolOperators(t *testing.T) {
@ -469,7 +468,7 @@ LIMIT $5;
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertJSONFile(t, dest, "./testdata/results/common/bool_operators.json") testutils.AssertJSONFile(t, dest, "./testdata/results/common/bool_operators.json")
} }
@ -519,7 +518,7 @@ func TestFloatOperators(t *testing.T) {
queryStr, _ := query.Sql() queryStr, _ := query.Sql()
assert.Equal(t, queryStr, ` require.Equal(t, queryStr, `
SELECT (all_types.numeric = all_types.numeric) AS "eq1", SELECT (all_types.numeric = all_types.numeric) AS "eq1",
(all_types.decimal = $1) AS "eq2", (all_types.decimal = $1) AS "eq2",
(all_types.real = $2) AS "eq3", (all_types.real = $2) AS "eq3",
@ -565,7 +564,7 @@ LIMIT $35;
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
//testutils.PrintJson(dest) //testutils.PrintJson(dest)
@ -704,7 +703,7 @@ LIMIT $23;
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
//testutils.SaveJsonFile("./testdata/common/int_operators.json", dest) //testutils.SaveJsonFile("./testdata/common/int_operators.json", dest)
//testutils.PrintJson(dest) //testutils.PrintJson(dest)
@ -783,7 +782,7 @@ func TestTimeExpression(t *testing.T) {
dest := []struct{}{} dest := []struct{}{}
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
} }
func TestInterval(t *testing.T) { func TestInterval(t *testing.T) {
@ -834,7 +833,7 @@ func TestInterval(t *testing.T) {
//fmt.Println(stmt.DebugSql()) //fmt.Println(stmt.DebugSql())
err := stmt.Query(db, &struct{}{}) err := stmt.Query(db, &struct{}{})
assert.NoError(t, err) require.NoError(t, err)
} }
func TestSubQueryColumnReference(t *testing.T) { func TestSubQueryColumnReference(t *testing.T) {
@ -986,12 +985,12 @@ FROM`
dest1 := []model.AllTypes{} dest1 := []model.AllTypes{}
err := stmt1.Query(db, &dest1) err := stmt1.Query(db, &dest1)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest1), 2) require.Equal(t, len(dest1), 2)
assert.Equal(t, dest1[0].Boolean, allTypesRow0.Boolean) require.Equal(t, dest1[0].Boolean, allTypesRow0.Boolean)
assert.Equal(t, dest1[0].Integer, allTypesRow0.Integer) require.Equal(t, dest1[0].Integer, allTypesRow0.Integer)
assert.Equal(t, dest1[0].Real, allTypesRow0.Real) require.Equal(t, dest1[0].Real, allTypesRow0.Real)
assert.Equal(t, dest1[0].Text, allTypesRow0.Text) require.Equal(t, dest1[0].Text, allTypesRow0.Text)
testutils.AssertDeepEqual(t, dest1[0].Time, allTypesRow0.Time) testutils.AssertDeepEqual(t, dest1[0].Time, allTypesRow0.Time)
testutils.AssertDeepEqual(t, dest1[0].Timez, allTypesRow0.Timez) testutils.AssertDeepEqual(t, dest1[0].Timez, allTypesRow0.Timez)
testutils.AssertDeepEqual(t, dest1[0].Timestamp, allTypesRow0.Timestamp) testutils.AssertDeepEqual(t, dest1[0].Timestamp, allTypesRow0.Timestamp)
@ -1008,7 +1007,7 @@ FROM`
dest2 := []model.AllTypes{} dest2 := []model.AllTypes{}
err = stmt2.Query(db, &dest2) err = stmt2.Query(db, &dest2)
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertDeepEqual(t, dest1, dest2) testutils.AssertDeepEqual(t, dest1, dest2)
} }
} }
@ -1016,7 +1015,7 @@ FROM`
func TestTimeLiterals(t *testing.T) { func TestTimeLiterals(t *testing.T) {
loc, err := time.LoadLocation("Europe/Berlin") loc, err := time.LoadLocation("Europe/Berlin")
assert.NoError(t, err) require.NoError(t, err)
var timeT = time.Date(2009, 11, 17, 20, 34, 58, 651387237, loc) var timeT = time.Date(2009, 11, 17, 20, 34, 58, 651387237, loc)
@ -1051,7 +1050,7 @@ LIMIT $6;
err = query.Query(db, &dest) err = query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
//testutils.PrintJson(dest) //testutils.PrintJson(dest)

View file

@ -7,7 +7,7 @@ import (
. "github.com/go-jet/jet/postgres" . "github.com/go-jet/jet/postgres"
"github.com/go-jet/jet/tests/.gentestdata/jetdb/chinook/model" "github.com/go-jet/jet/tests/.gentestdata/jetdb/chinook/model"
. "github.com/go-jet/jet/tests/.gentestdata/jetdb/chinook/table" . "github.com/go-jet/jet/tests/.gentestdata/jetdb/chinook/table"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/require"
"testing" "testing"
"time" "time"
) )
@ -30,8 +30,8 @@ ORDER BY "Album"."AlbumId" ASC;
err := stmt.Query(db, &dest) err := stmt.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 347) require.Equal(t, len(dest), 347)
testutils.AssertDeepEqual(t, dest[0], album1) testutils.AssertDeepEqual(t, dest[0], album1)
testutils.AssertDeepEqual(t, dest[1], album2) testutils.AssertDeepEqual(t, dest[1], album2)
testutils.AssertDeepEqual(t, dest[len(dest)-1], album347) testutils.AssertDeepEqual(t, dest[len(dest)-1], album347)
@ -103,8 +103,8 @@ func TestJoinEverything(t *testing.T) {
err := stmt.Query(db, &dest) err := stmt.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 275) require.Equal(t, len(dest), 275)
testutils.AssertJSONFile(t, dest, "./testdata/results/postgres/joined_everything.json") testutils.AssertJSONFile(t, dest, "./testdata/results/postgres/joined_everything.json")
} }
@ -143,8 +143,8 @@ ORDER BY "Employee"."EmployeeId";
err := stmt.Query(db, &dest) err := stmt.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 8) require.Equal(t, len(dest), 8)
testutils.AssertJSON(t, dest[0:2], ` testutils.AssertJSON(t, dest[0:2], `
[ [
{ {
@ -236,9 +236,9 @@ ORDER BY "Album.AlbumId";
err := stmt.Query(db, &dest) err := stmt.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 2) require.Equal(t, len(dest), 2)
testutils.AssertDeepEqual(t, dest[0], album1) testutils.AssertDeepEqual(t, dest[0], album1)
testutils.AssertDeepEqual(t, dest[1], album2) testutils.AssertDeepEqual(t, dest[1], album2)
} }
@ -256,7 +256,7 @@ func TestQueryWithContext(t *testing.T) {
SELECT(Album.AllColumns, Track.AllColumns, InvoiceLine.AllColumns). SELECT(Album.AllColumns, Track.AllColumns, InvoiceLine.AllColumns).
QueryContext(ctx, db, &dest) QueryContext(ctx, db, &dest)
assert.Error(t, err, "context deadline exceeded") require.Error(t, err, "context deadline exceeded")
} }
func TestExecWithContext(t *testing.T) { func TestExecWithContext(t *testing.T) {
@ -270,7 +270,7 @@ func TestExecWithContext(t *testing.T) {
SELECT(Album.AllColumns, Track.AllColumns, InvoiceLine.AllColumns). SELECT(Album.AllColumns, Track.AllColumns, InvoiceLine.AllColumns).
ExecContext(ctx, db) ExecContext(ctx, db)
assert.Error(t, err, "pq: canceling statement due to user request") require.Error(t, err, "pq: canceling statement due to user request")
} }
func TestSubQueriesForQuotedNames(t *testing.T) { func TestSubQueriesForQuotedNames(t *testing.T) {
@ -327,7 +327,7 @@ ORDER BY "first10Artist"."Artist.ArtistId";
err := stmt.Query(db, &dest) err := stmt.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
//spew.Dump(dest) //spew.Dump(dest)
} }

View file

@ -6,7 +6,7 @@ import (
. "github.com/go-jet/jet/postgres" . "github.com/go-jet/jet/postgres"
"github.com/go-jet/jet/tests/.gentestdata/jetdb/test_sample/model" "github.com/go-jet/jet/tests/.gentestdata/jetdb/test_sample/model"
. "github.com/go-jet/jet/tests/.gentestdata/jetdb/test_sample/table" . "github.com/go-jet/jet/tests/.gentestdata/jetdb/test_sample/table"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/require"
"testing" "testing"
"time" "time"
) )
@ -48,9 +48,9 @@ RETURNING link.id AS "link.id",
err := deleteStmt.Query(db, &dest) err := deleteStmt.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 2) require.Equal(t, len(dest), 2)
testutils.AssertDeepEqual(t, dest[0].Name, "Gmail") testutils.AssertDeepEqual(t, dest[0].Name, "Gmail")
testutils.AssertDeepEqual(t, dest[1].Name, "Outlook") testutils.AssertDeepEqual(t, dest[1].Name, "Outlook")
} }
@ -79,7 +79,7 @@ func TestDeleteQueryContext(t *testing.T) {
dest := []model.Link{} dest := []model.Link{}
err := deleteStmt.QueryContext(ctx, db, &dest) err := deleteStmt.QueryContext(ctx, db, &dest)
assert.Error(t, err, "context deadline exceeded") require.Error(t, err, "context deadline exceeded")
} }
func TestDeleteExecContext(t *testing.T) { func TestDeleteExecContext(t *testing.T) {
@ -98,5 +98,5 @@ func TestDeleteExecContext(t *testing.T) {
_, err := deleteStmt.ExecContext(ctx, db) _, err := deleteStmt.ExecContext(ctx, db)
assert.Error(t, err, "context deadline exceeded") require.Error(t, err, "context deadline exceeded")
} }

View file

@ -4,7 +4,7 @@ import (
"github.com/go-jet/jet/generator/postgres" "github.com/go-jet/jet/generator/postgres"
"github.com/go-jet/jet/internal/testutils" "github.com/go-jet/jet/internal/testutils"
"github.com/go-jet/jet/tests/dbconfig" "github.com/go-jet/jet/tests/dbconfig"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/require"
"io/ioutil" "io/ioutil"
"os" "os"
"os/exec" "os/exec"
@ -17,30 +17,30 @@ import (
func TestGeneratedModel(t *testing.T) { func TestGeneratedModel(t *testing.T) {
actor := model.Actor{} actor := model.Actor{}
assert.Equal(t, reflect.TypeOf(actor.ActorID).String(), "int32") require.Equal(t, reflect.TypeOf(actor.ActorID).String(), "int32")
actorIDField, ok := reflect.TypeOf(actor).FieldByName("ActorID") actorIDField, ok := reflect.TypeOf(actor).FieldByName("ActorID")
assert.True(t, ok) require.True(t, ok)
assert.Equal(t, actorIDField.Tag.Get("sql"), "primary_key") require.Equal(t, actorIDField.Tag.Get("sql"), "primary_key")
assert.Equal(t, reflect.TypeOf(actor.FirstName).String(), "string") require.Equal(t, reflect.TypeOf(actor.FirstName).String(), "string")
assert.Equal(t, reflect.TypeOf(actor.LastName).String(), "string") require.Equal(t, reflect.TypeOf(actor.LastName).String(), "string")
assert.Equal(t, reflect.TypeOf(actor.LastUpdate).String(), "time.Time") require.Equal(t, reflect.TypeOf(actor.LastUpdate).String(), "time.Time")
filmActor := model.FilmActor{} filmActor := model.FilmActor{}
assert.Equal(t, reflect.TypeOf(filmActor.FilmID).String(), "int16") require.Equal(t, reflect.TypeOf(filmActor.FilmID).String(), "int16")
filmIDField, ok := reflect.TypeOf(filmActor).FieldByName("FilmID") filmIDField, ok := reflect.TypeOf(filmActor).FieldByName("FilmID")
assert.True(t, ok) require.True(t, ok)
assert.Equal(t, filmIDField.Tag.Get("sql"), "primary_key") require.Equal(t, filmIDField.Tag.Get("sql"), "primary_key")
assert.Equal(t, reflect.TypeOf(filmActor.ActorID).String(), "int16") require.Equal(t, reflect.TypeOf(filmActor.ActorID).String(), "int16")
actorIDField, ok = reflect.TypeOf(filmActor).FieldByName("ActorID") actorIDField, ok = reflect.TypeOf(filmActor).FieldByName("ActorID")
assert.True(t, ok) require.True(t, ok)
assert.Equal(t, filmIDField.Tag.Get("sql"), "primary_key") require.Equal(t, filmIDField.Tag.Get("sql"), "primary_key")
staff := model.Staff{} staff := model.Staff{}
assert.Equal(t, reflect.TypeOf(staff.Email).String(), "*string") require.Equal(t, reflect.TypeOf(staff.Email).String(), "*string")
assert.Equal(t, reflect.TypeOf(staff.Picture).String(), "*[]uint8") require.Equal(t, reflect.TypeOf(staff.Picture).String(), "*[]uint8")
} }
const genTestDir2 = "./.gentestdata2" const genTestDir2 = "./.gentestdata2"
@ -49,10 +49,10 @@ func TestCmdGenerator(t *testing.T) {
goInstallJet := exec.Command("sh", "-c", "go install github.com/go-jet/jet/cmd/jet") goInstallJet := exec.Command("sh", "-c", "go install github.com/go-jet/jet/cmd/jet")
goInstallJet.Stderr = os.Stderr goInstallJet.Stderr = os.Stderr
err := goInstallJet.Run() err := goInstallJet.Run()
assert.NoError(t, err) require.NoError(t, err)
err = os.RemoveAll(genTestDir2) err = os.RemoveAll(genTestDir2)
assert.NoError(t, err) require.NoError(t, err)
cmd := exec.Command("jet", "-source=PostgreSQL", "-dbname=jetdb", "-host=localhost", "-port=5432", cmd := exec.Command("jet", "-source=PostgreSQL", "-dbname=jetdb", "-host=localhost", "-port=5432",
"-user=jet", "-password=jet", "-schema=dvds", "-path="+genTestDir2) "-user=jet", "-password=jet", "-schema=dvds", "-path="+genTestDir2)
@ -60,12 +60,12 @@ func TestCmdGenerator(t *testing.T) {
cmd.Stdout = os.Stdout cmd.Stdout = os.Stdout
err = cmd.Run() err = cmd.Run()
assert.NoError(t, err) require.NoError(t, err)
assertGeneratedFiles(t) assertGeneratedFiles(t)
err = os.RemoveAll(genTestDir2) err = os.RemoveAll(genTestDir2)
assert.NoError(t, err) require.NoError(t, err)
} }
func TestGenerator(t *testing.T) { func TestGenerator(t *testing.T) {
@ -83,19 +83,19 @@ func TestGenerator(t *testing.T) {
SchemaName: "dvds", SchemaName: "dvds",
}) })
assert.NoError(t, err) require.NoError(t, err)
assertGeneratedFiles(t) assertGeneratedFiles(t)
} }
err := os.RemoveAll(genTestDir2) err := os.RemoveAll(genTestDir2)
assert.NoError(t, err) require.NoError(t, err)
} }
func assertGeneratedFiles(t *testing.T) { func assertGeneratedFiles(t *testing.T) {
// Table SQL Builder files // Table SQL Builder files
tableSQLBuilderFiles, err := ioutil.ReadDir("./.gentestdata2/jetdb/dvds/table") tableSQLBuilderFiles, err := ioutil.ReadDir("./.gentestdata2/jetdb/dvds/table")
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertFileNamesEqual(t, tableSQLBuilderFiles, "actor.go", "address.go", "category.go", "city.go", "country.go", testutils.AssertFileNamesEqual(t, tableSQLBuilderFiles, "actor.go", "address.go", "category.go", "city.go", "country.go",
"customer.go", "film.go", "film_actor.go", "film_category.go", "inventory.go", "language.go", "customer.go", "film.go", "film_actor.go", "film_category.go", "inventory.go", "language.go",
@ -105,7 +105,7 @@ func assertGeneratedFiles(t *testing.T) {
// View SQL Builder files // View SQL Builder files
viewSQLBuilderFiles, err := ioutil.ReadDir("./.gentestdata2/jetdb/dvds/view") viewSQLBuilderFiles, err := ioutil.ReadDir("./.gentestdata2/jetdb/dvds/view")
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertFileNamesEqual(t, viewSQLBuilderFiles, "actor_info.go", "film_list.go", "nicer_but_slower_film_list.go", testutils.AssertFileNamesEqual(t, viewSQLBuilderFiles, "actor_info.go", "film_list.go", "nicer_but_slower_film_list.go",
"sales_by_film_category.go", "customer_list.go", "sales_by_store.go", "staff_list.go") "sales_by_film_category.go", "customer_list.go", "sales_by_store.go", "staff_list.go")
@ -114,14 +114,14 @@ func assertGeneratedFiles(t *testing.T) {
// Enums SQL Builder files // Enums SQL Builder files
enumFiles, err := ioutil.ReadDir("./.gentestdata2/jetdb/dvds/enum") enumFiles, err := ioutil.ReadDir("./.gentestdata2/jetdb/dvds/enum")
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertFileNamesEqual(t, enumFiles, "mpaa_rating.go") testutils.AssertFileNamesEqual(t, enumFiles, "mpaa_rating.go")
testutils.AssertFileContent(t, "./.gentestdata2/jetdb/dvds/enum/mpaa_rating.go", mpaaRatingEnumFile) testutils.AssertFileContent(t, "./.gentestdata2/jetdb/dvds/enum/mpaa_rating.go", mpaaRatingEnumFile)
// Model files // Model files
modelFiles, err := ioutil.ReadDir("./.gentestdata2/jetdb/dvds/model") modelFiles, err := ioutil.ReadDir("./.gentestdata2/jetdb/dvds/model")
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertFileNamesEqual(t, modelFiles, "actor.go", "address.go", "category.go", "city.go", "country.go", testutils.AssertFileNamesEqual(t, modelFiles, "actor.go", "address.go", "category.go", "city.go", "country.go",
"customer.go", "film.go", "film_actor.go", "film_category.go", "inventory.go", "language.go", "customer.go", "film.go", "film_actor.go", "film_category.go", "inventory.go", "language.go",
@ -335,14 +335,14 @@ func TestGeneratedAllTypesSQLBuilderFiles(t *testing.T) {
tableDir := testRoot + ".gentestdata/jetdb/test_sample/table/" tableDir := testRoot + ".gentestdata/jetdb/test_sample/table/"
enumFiles, err := ioutil.ReadDir(enumDir) enumFiles, err := ioutil.ReadDir(enumDir)
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertFileNamesEqual(t, enumFiles, "mood.go", "level.go") testutils.AssertFileNamesEqual(t, enumFiles, "mood.go", "level.go")
testutils.AssertFileContent(t, enumDir+"mood.go", moodEnumContent) testutils.AssertFileContent(t, enumDir+"mood.go", moodEnumContent)
testutils.AssertFileContent(t, enumDir+"level.go", levelEnumContent) testutils.AssertFileContent(t, enumDir+"level.go", levelEnumContent)
modelFiles, err := ioutil.ReadDir(modelDir) modelFiles, err := ioutil.ReadDir(modelDir)
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertFileNamesEqual(t, modelFiles, "all_types.go", "all_types_view.go", "employee.go", "link.go", testutils.AssertFileNamesEqual(t, modelFiles, "all_types.go", "all_types_view.go", "employee.go", "link.go",
"mood.go", "person.go", "person_phone.go", "weird_names_table.go", "level.go", "user.go") "mood.go", "person.go", "person_phone.go", "weird_names_table.go", "level.go", "user.go")
@ -350,7 +350,7 @@ func TestGeneratedAllTypesSQLBuilderFiles(t *testing.T) {
testutils.AssertFileContent(t, modelDir+"all_types.go", allTypesModelContent) testutils.AssertFileContent(t, modelDir+"all_types.go", allTypesModelContent)
tableFiles, err := ioutil.ReadDir(tableDir) tableFiles, err := ioutil.ReadDir(tableDir)
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertFileNamesEqual(t, tableFiles, "all_types.go", "employee.go", "link.go", testutils.AssertFileNamesEqual(t, tableFiles, "all_types.go", "employee.go", "link.go",
"person.go", "person_phone.go", "weird_names_table.go", "user.go") "person.go", "person_phone.go", "weird_names_table.go", "user.go")

View file

@ -6,7 +6,7 @@ import (
. "github.com/go-jet/jet/postgres" . "github.com/go-jet/jet/postgres"
"github.com/go-jet/jet/tests/.gentestdata/jetdb/test_sample/model" "github.com/go-jet/jet/tests/.gentestdata/jetdb/test_sample/model"
. "github.com/go-jet/jet/tests/.gentestdata/jetdb/test_sample/table" . "github.com/go-jet/jet/tests/.gentestdata/jetdb/test_sample/table"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/require"
"math/rand" "math/rand"
"testing" "testing"
"time" "time"
@ -40,9 +40,9 @@ RETURNING link.id AS "link.id",
err := insertQuery.Query(db, &insertedLinks) err := insertQuery.Query(db, &insertedLinks)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(insertedLinks), 3) require.Equal(t, len(insertedLinks), 3)
testutils.AssertDeepEqual(t, insertedLinks[0], model.Link{ testutils.AssertDeepEqual(t, insertedLinks[0], model.Link{
ID: 100, ID: 100,
@ -69,7 +69,7 @@ RETURNING link.id AS "link.id",
ORDER_BY(Link.ID). ORDER_BY(Link.ID).
Query(db, &allLinks) Query(db, &allLinks)
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertDeepEqual(t, insertedLinks, allLinks) testutils.AssertDeepEqual(t, insertedLinks, allLinks)
} }
@ -332,7 +332,7 @@ func TestInsertQuery(t *testing.T) {
_, err := Link.DELETE(). _, err := Link.DELETE().
WHERE(Link.ID.NOT_EQ(Int(0)).AND(Link.Name.EQ(String("Youtube")))). WHERE(Link.ID.NOT_EQ(Int(0)).AND(Link.Name.EQ(String("Youtube")))).
Exec(db) Exec(db)
assert.NoError(t, err) require.NoError(t, err)
var expectedSQL = ` var expectedSQL = `
INSERT INTO test_sample.link (url, name) ( INSERT INTO test_sample.link (url, name) (
@ -362,7 +362,7 @@ RETURNING link.id AS "link.id",
err = query.Query(db, &dest) err = query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
youtubeLinks := []model.Link{} youtubeLinks := []model.Link{}
err = Link. err = Link.
@ -370,8 +370,8 @@ RETURNING link.id AS "link.id",
WHERE(Link.Name.EQ(String("Youtube"))). WHERE(Link.Name.EQ(String("Youtube"))).
Query(db, &youtubeLinks) Query(db, &youtubeLinks)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(youtubeLinks), 2) require.Equal(t, len(youtubeLinks), 2)
} }
func TestInsertWithQueryContext(t *testing.T) { func TestInsertWithQueryContext(t *testing.T) {
@ -389,7 +389,7 @@ func TestInsertWithQueryContext(t *testing.T) {
dest := []model.Link{} dest := []model.Link{}
err := stmt.QueryContext(ctx, db, &dest) err := stmt.QueryContext(ctx, db, &dest)
assert.Error(t, err, "context deadline exceeded") require.Error(t, err, "context deadline exceeded")
} }
func TestInsertWithExecContext(t *testing.T) { func TestInsertWithExecContext(t *testing.T) {
@ -405,5 +405,5 @@ func TestInsertWithExecContext(t *testing.T) {
_, err := stmt.ExecContext(ctx, db) _, err := stmt.ExecContext(ctx, db)
assert.Error(t, err, "context deadline exceeded") require.Error(t, err, "context deadline exceeded")
} }

View file

@ -3,7 +3,7 @@ package postgres
import ( import (
"context" "context"
"github.com/go-jet/jet/internal/testutils" "github.com/go-jet/jet/internal/testutils"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/require"
"testing" "testing"
"time" "time"
@ -35,11 +35,11 @@ LOCK TABLE dvds.address IN`
_, err := query.Exec(tx) _, err := query.Exec(tx)
assert.NoError(t, err) require.NoError(t, err)
err = tx.Rollback() err = tx.Rollback()
assert.NoError(t, err) require.NoError(t, err)
} }
for _, lockMode := range testData { for _, lockMode := range testData {
@ -51,11 +51,11 @@ LOCK TABLE dvds.address IN`
_, err := query.Exec(tx) _, err := query.Exec(tx)
assert.NoError(t, err) require.NoError(t, err)
err = tx.Rollback() err = tx.Rollback()
assert.NoError(t, err) require.NoError(t, err)
} }
} }
@ -70,5 +70,5 @@ func TestLockExecContext(t *testing.T) {
_, err := Address.LOCK().IN(LOCK_ACCESS_SHARE).ExecContext(ctx, tx) _, err := Address.LOCK().IN(LOCK_ACCESS_SHARE).ExecContext(ctx, tx)
assert.Error(t, err, "context deadline exceeded") require.Error(t, err, "context deadline exceeded")
} }

View file

@ -4,7 +4,7 @@ import (
"github.com/go-jet/jet/internal/testutils" "github.com/go-jet/jet/internal/testutils"
"github.com/go-jet/jet/tests/.gentestdata/jetdb/northwind/model" "github.com/go-jet/jet/tests/.gentestdata/jetdb/northwind/model"
. "github.com/go-jet/jet/tests/.gentestdata/jetdb/northwind/table" . "github.com/go-jet/jet/tests/.gentestdata/jetdb/northwind/table"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/require"
"testing" "testing"
) )
@ -59,7 +59,7 @@ func TestNorthwindJoinEverything(t *testing.T) {
} }
err := stmt.Query(db, &dest) err := stmt.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
//jsonSave("./testdata/northwind-all.json", dest) //jsonSave("./testdata/northwind-all.json", dest)
testutils.AssertJSONFile(t, dest, "./testdata/results/postgres/northwind-all.json") testutils.AssertJSONFile(t, dest, "./testdata/results/postgres/northwind-all.json")

View file

@ -6,7 +6,6 @@ import (
"github.com/go-jet/jet/tests/.gentestdata/jetdb/test_sample/model" "github.com/go-jet/jet/tests/.gentestdata/jetdb/test_sample/model"
. "github.com/go-jet/jet/tests/.gentestdata/jetdb/test_sample/table" . "github.com/go-jet/jet/tests/.gentestdata/jetdb/test_sample/table"
"github.com/google/uuid" "github.com/google/uuid"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"testing" "testing"
) )
@ -26,8 +25,8 @@ WHERE all_types.uuid = 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11';
result := model.AllTypes{} result := model.AllTypes{}
err := query.Query(db, &result) err := query.Query(db, &result)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, result.UUID, uuid.MustParse("a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11")) require.Equal(t, result.UUID, uuid.MustParse("a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11"))
testutils.AssertDeepEqual(t, result.UUIDPtr, testutils.UUIDPtr("a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11")) testutils.AssertDeepEqual(t, result.UUIDPtr, testutils.UUIDPtr("a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11"))
} }
@ -47,8 +46,8 @@ func TestUUIDComplex(t *testing.T) {
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 2) require.Equal(t, len(dest), 2)
testutils.AssertJSON(t, dest, ` testutils.AssertJSON(t, dest, `
[ [
{ {
@ -97,7 +96,7 @@ func TestUUIDComplex(t *testing.T) {
} }
} }
err := singleQuery.Query(db, &dest) err := singleQuery.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertJSON(t, dest, ` testutils.AssertJSON(t, dest, `
{ {
@ -133,7 +132,7 @@ func TestUUIDComplex(t *testing.T) {
} }
err := leftQuery.Query(db, &dest) err := leftQuery.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertJSON(t, dest, ` testutils.AssertJSON(t, dest, `
[ [
{ {
@ -195,7 +194,7 @@ FROM test_sample.person;
err := query.Query(db, &result) err := query.Query(db, &result)
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertJSON(t, result, ` testutils.AssertJSON(t, result, `
[ [
{ {
@ -263,8 +262,8 @@ ORDER BY employee.employee_id;
err = query.Query(db, &dest) err = query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 8) require.Equal(t, len(dest), 8)
testutils.AssertDeepEqual(t, dest[0].Employee, model.Employee{ testutils.AssertDeepEqual(t, dest[0].Employee, model.Employee{
EmployeeID: 1, EmployeeID: 1,
FirstName: "Windy", FirstName: "Windy",
@ -273,7 +272,7 @@ ORDER BY employee.employee_id;
ManagerID: nil, ManagerID: nil,
}) })
assert.True(t, dest[0].Manager == nil) require.True(t, dest[0].Manager == nil)
testutils.AssertDeepEqual(t, dest[7].Employee, model.Employee{ testutils.AssertDeepEqual(t, dest[7].Employee, model.Employee{
EmployeeID: 8, EmployeeID: 8,
@ -311,9 +310,9 @@ FROM test_sample."WEIRD NAMES TABLE";
err := stmt.Query(db, &dest) err := stmt.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 1) require.Equal(t, len(dest), 1)
testutils.AssertDeepEqual(t, dest[0], model.WeirdNamesTable{ testutils.AssertDeepEqual(t, dest[0], model.WeirdNamesTable{
WeirdColumnName1: "Doe", WeirdColumnName1: "Doe",
WeirdColumnName2: "Doe", WeirdColumnName2: "Doe",
@ -360,7 +359,7 @@ FROM test_sample."User";
var dest []model.User var dest []model.User
err := stmt.Query(db, &dest) err := stmt.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
testutils.PrintJson(dest) testutils.PrintJson(dest)

View file

@ -8,7 +8,7 @@ import (
"github.com/go-jet/jet/tests/.gentestdata/jetdb/dvds/model" "github.com/go-jet/jet/tests/.gentestdata/jetdb/dvds/model"
. "github.com/go-jet/jet/tests/.gentestdata/jetdb/dvds/table" . "github.com/go-jet/jet/tests/.gentestdata/jetdb/dvds/table"
"github.com/google/uuid" "github.com/google/uuid"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/require"
"testing" "testing"
) )
@ -53,38 +53,38 @@ func TestScanToValidDestination(t *testing.T) {
dest := []struct{}{} dest := []struct{}{}
err := oneInventoryQuery.Query(db, &dest) err := oneInventoryQuery.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
}) })
t.Run("global query function scan", func(t *testing.T) { t.Run("global query function scan", func(t *testing.T) {
queryStr, args := oneInventoryQuery.Sql() queryStr, args := oneInventoryQuery.Sql()
dest := []struct{}{} dest := []struct{}{}
err := qrm.Query(nil, db, queryStr, args, &dest) err := qrm.Query(nil, db, queryStr, args, &dest)
assert.NoError(t, err) require.NoError(t, err)
}) })
t.Run("pointer to slice", func(t *testing.T) { t.Run("pointer to slice", func(t *testing.T) {
err := oneInventoryQuery.Query(db, &[]struct{}{}) err := oneInventoryQuery.Query(db, &[]struct{}{})
assert.NoError(t, err) require.NoError(t, err)
}) })
t.Run("pointer to slice of pointer to structs", func(t *testing.T) { t.Run("pointer to slice of pointer to structs", func(t *testing.T) {
err := oneInventoryQuery.Query(db, &[]*struct{}{}) err := oneInventoryQuery.Query(db, &[]*struct{}{})
assert.NoError(t, err) require.NoError(t, err)
}) })
t.Run("pointer to slice of strings", func(t *testing.T) { t.Run("pointer to slice of strings", func(t *testing.T) {
err := oneInventoryQuery.Query(db, &[]int32{}) err := oneInventoryQuery.Query(db, &[]int32{})
assert.NoError(t, err) require.NoError(t, err)
}) })
t.Run("pointer to slice of strings", func(t *testing.T) { t.Run("pointer to slice of strings", func(t *testing.T) {
err := oneInventoryQuery.Query(db, &[]*int32{}) err := oneInventoryQuery.Query(db, &[]*int32{})
assert.NoError(t, err) require.NoError(t, err)
}) })
} }
@ -99,7 +99,7 @@ func TestScanToStruct(t *testing.T) {
dest := model.Inventory{} dest := model.Inventory{}
err := query.LIMIT(1).Query(db, &dest) err := query.LIMIT(1).Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertDeepEqual(t, inventory1, dest) testutils.AssertDeepEqual(t, inventory1, dest)
}) })
@ -107,7 +107,7 @@ func TestScanToStruct(t *testing.T) {
dest := model.Inventory{} dest := model.Inventory{}
err := query.LIMIT(10).Query(db, &dest) err := query.LIMIT(10).Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertDeepEqual(t, inventory1, dest) testutils.AssertDeepEqual(t, inventory1, dest)
}) })
@ -117,7 +117,7 @@ func TestScanToStruct(t *testing.T) {
}{} }{}
err := query.LIMIT(1).Query(db, &dest) err := query.LIMIT(1).Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertDeepEqual(t, inventory1, dest.Inventory) testutils.AssertDeepEqual(t, inventory1, dest.Inventory)
}) })
@ -127,7 +127,7 @@ func TestScanToStruct(t *testing.T) {
}{} }{}
err := query.LIMIT(1).Query(db, &dest) err := query.LIMIT(1).Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertDeepEqual(t, inventory1, *dest.Inventory) testutils.AssertDeepEqual(t, inventory1, *dest.Inventory)
}) })
@ -158,11 +158,11 @@ func TestScanToStruct(t *testing.T) {
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, *dest.InventoryID, int32(1)) require.Equal(t, *dest.InventoryID, int32(1))
assert.Equal(t, dest.FilmID, int16(1)) require.Equal(t, dest.FilmID, int16(1))
assert.Equal(t, *dest.StoreID, int16(1)) require.Equal(t, *dest.StoreID, int16(1))
}) })
t.Run("type convert int32 to int", func(t *testing.T) { t.Run("type convert int32 to int", func(t *testing.T) {
@ -175,7 +175,7 @@ func TestScanToStruct(t *testing.T) {
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
}) })
t.Run("type mismatch scanner type", func(t *testing.T) { t.Run("type mismatch scanner type", func(t *testing.T) {
@ -217,7 +217,7 @@ func TestScanToNestedStruct(t *testing.T) {
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertDeepEqual(t, dest.Inventory, inventory1) testutils.AssertDeepEqual(t, dest.Inventory, inventory1)
testutils.AssertDeepEqual(t, dest.Film, film1) testutils.AssertDeepEqual(t, dest.Film, film1)
testutils.AssertDeepEqual(t, dest.Store, store1) testutils.AssertDeepEqual(t, dest.Store, store1)
@ -232,7 +232,7 @@ func TestScanToNestedStruct(t *testing.T) {
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertDeepEqual(t, *dest.Inventory, inventory1) testutils.AssertDeepEqual(t, *dest.Inventory, inventory1)
testutils.AssertDeepEqual(t, *dest.Film, film1) testutils.AssertDeepEqual(t, *dest.Film, film1)
testutils.AssertDeepEqual(t, *dest.Store, store1) testutils.AssertDeepEqual(t, *dest.Store, store1)
@ -246,7 +246,7 @@ func TestScanToNestedStruct(t *testing.T) {
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertDeepEqual(t, dest.Inventory, inventory1) testutils.AssertDeepEqual(t, dest.Inventory, inventory1)
testutils.AssertDeepEqual(t, dest.Actor, model.Actor{}) testutils.AssertDeepEqual(t, dest.Actor, model.Actor{})
}) })
@ -259,7 +259,7 @@ func TestScanToNestedStruct(t *testing.T) {
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertDeepEqual(t, dest.Inventory, inventory1) testutils.AssertDeepEqual(t, dest.Inventory, inventory1)
testutils.AssertDeepEqual(t, dest.Actor, (*model.Actor)(nil)) testutils.AssertDeepEqual(t, dest.Actor, (*model.Actor)(nil))
}) })
@ -272,7 +272,7 @@ func TestScanToNestedStruct(t *testing.T) {
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertDeepEqual(t, dest.Inventory, inventory1) testutils.AssertDeepEqual(t, dest.Inventory, inventory1)
testutils.AssertDeepEqual(t, dest.Actor, (*model.Actor)(nil)) testutils.AssertDeepEqual(t, dest.Actor, (*model.Actor)(nil))
}) })
@ -291,9 +291,9 @@ func TestScanToNestedStruct(t *testing.T) {
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertDeepEqual(t, dest.Inventory, inventory1) testutils.AssertDeepEqual(t, dest.Inventory, inventory1)
assert.True(t, dest.Actor != nil) require.True(t, dest.Actor != nil)
}) })
t.Run("struct embedded unused pointer", func(t *testing.T) { t.Run("struct embedded unused pointer", func(t *testing.T) {
@ -306,7 +306,7 @@ func TestScanToNestedStruct(t *testing.T) {
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertDeepEqual(t, dest.Inventory, inventory1) testutils.AssertDeepEqual(t, dest.Inventory, inventory1)
testutils.AssertDeepEqual(t, dest.Actor, (*struct{ model.Actor })(nil)) testutils.AssertDeepEqual(t, dest.Actor, (*struct{ model.Actor })(nil))
}) })
@ -322,7 +322,7 @@ func TestScanToNestedStruct(t *testing.T) {
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertDeepEqual(t, dest.Inventory, inventory1) testutils.AssertDeepEqual(t, dest.Inventory, inventory1)
testutils.AssertDeepEqual(t, dest.Actor, (*struct { testutils.AssertDeepEqual(t, dest.Actor, (*struct {
model.Actor model.Actor
@ -341,9 +341,9 @@ func TestScanToNestedStruct(t *testing.T) {
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertDeepEqual(t, dest.Inventory, inventory1) testutils.AssertDeepEqual(t, dest.Inventory, inventory1)
assert.True(t, dest.Actor != nil) require.True(t, dest.Actor != nil)
testutils.AssertDeepEqual(t, dest.Actor.Actor, model.Actor{}) testutils.AssertDeepEqual(t, dest.Actor.Actor, model.Actor{})
testutils.AssertDeepEqual(t, dest.Actor.Film, film1) testutils.AssertDeepEqual(t, dest.Actor.Film, film1)
}) })
@ -361,10 +361,10 @@ func TestScanToNestedStruct(t *testing.T) {
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertDeepEqual(t, dest.Inventory, inventory1) testutils.AssertDeepEqual(t, dest.Inventory, inventory1)
assert.True(t, dest.Actor != nil) require.True(t, dest.Actor != nil)
assert.True(t, dest.Actor.Film != nil) require.True(t, dest.Actor.Film != nil)
testutils.AssertDeepEqual(t, dest.Actor.Film.Film, &film1) testutils.AssertDeepEqual(t, dest.Actor.Film.Film, &film1)
}) })
@ -398,7 +398,7 @@ func TestScanToNestedStruct(t *testing.T) {
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertDeepEqual(t, dest.Inventory, inventory1) testutils.AssertDeepEqual(t, dest.Inventory, inventory1)
testutils.AssertDeepEqual(t, dest.Film.Film, film1) testutils.AssertDeepEqual(t, dest.Film.Film, film1)
testutils.AssertDeepEqual(t, dest.Store, store1) testutils.AssertDeepEqual(t, dest.Store, store1)
@ -423,8 +423,8 @@ func TestScanToSlice(t *testing.T) {
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 10) require.Equal(t, len(dest), 10)
testutils.AssertDeepEqual(t, dest[0], inventory1) testutils.AssertDeepEqual(t, dest[0], inventory1)
testutils.AssertDeepEqual(t, dest[1], inventory2) testutils.AssertDeepEqual(t, dest[1], inventory2)
}) })
@ -433,7 +433,7 @@ func TestScanToSlice(t *testing.T) {
var dest []int32 var dest []int32
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertDeepEqual(t, dest, []int32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}) testutils.AssertDeepEqual(t, dest, []int32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10})
}) })
@ -442,14 +442,14 @@ func TestScanToSlice(t *testing.T) {
var dest []int var dest []int
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
}) })
t.Run("slice type mismatch", func(t *testing.T) { t.Run("slice type mismatch", func(t *testing.T) {
var dest []bool var dest []bool
testutils.AssertQueryPanicErr(t, query, db, &dest, `jet: can't append int32 to []bool slice`) testutils.AssertQueryPanicErr(t, query, db, &dest, `jet: can't append int32 to []bool slice`)
//assert.Error(t, err, `jet: can't append int32 to []bool slice `) //require.Error(t, err, `jet: can't append int32 to []bool slice `)
}) })
}) })
@ -473,7 +473,7 @@ func TestScanToSlice(t *testing.T) {
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertDeepEqual(t, dest.Film, film1) testutils.AssertDeepEqual(t, dest.Film, film1)
testutils.AssertDeepEqual(t, dest.IDs, []int32{1, 2, 3, 4, 5, 6, 7, 8}) testutils.AssertDeepEqual(t, dest.IDs, []int32{1, 2, 3, 4, 5, 6, 7, 8})
}) })
@ -486,8 +486,8 @@ func TestScanToSlice(t *testing.T) {
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 2) require.Equal(t, len(dest), 2)
testutils.AssertDeepEqual(t, dest[0].Film, film1) testutils.AssertDeepEqual(t, dest[0].Film, film1)
testutils.AssertDeepEqual(t, dest[0].IDs, []int32{1, 2, 3, 4, 5, 6, 7, 8}) testutils.AssertDeepEqual(t, dest[0].IDs, []int32{1, 2, 3, 4, 5, 6, 7, 8})
testutils.AssertDeepEqual(t, dest[1].Film, film2) testutils.AssertDeepEqual(t, dest[1].Film, film2)
@ -502,8 +502,8 @@ func TestScanToSlice(t *testing.T) {
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 2) require.Equal(t, len(dest), 2)
testutils.AssertDeepEqual(t, dest[0].Film, film1) testutils.AssertDeepEqual(t, dest[0].Film, film1)
testutils.AssertDeepEqual(t, dest[0].IDs, []*int32{testutils.Int32Ptr(1), testutils.Int32Ptr(2), testutils.Int32Ptr(3), testutils.Int32Ptr(4), testutils.AssertDeepEqual(t, dest[0].IDs, []*int32{testutils.Int32Ptr(1), testutils.Int32Ptr(2), testutils.Int32Ptr(3), testutils.Int32Ptr(4),
testutils.Int32Ptr(5), testutils.Int32Ptr(6), testutils.Int32Ptr(7), testutils.Int32Ptr(8)}) testutils.Int32Ptr(5), testutils.Int32Ptr(6), testutils.Int32Ptr(7), testutils.Int32Ptr(8)})
@ -520,8 +520,8 @@ func TestScanToSlice(t *testing.T) {
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 10) require.Equal(t, len(dest), 10)
testutils.AssertDeepEqual(t, dest[0].Inventory, inventory1) testutils.AssertDeepEqual(t, dest[0].Inventory, inventory1)
testutils.AssertDeepEqual(t, dest[0].Film, film1) testutils.AssertDeepEqual(t, dest[0].Film, film1)
testutils.AssertDeepEqual(t, dest[0].Store, store1) testutils.AssertDeepEqual(t, dest[0].Store, store1)
@ -538,8 +538,8 @@ func TestScanToSlice(t *testing.T) {
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 10) require.Equal(t, len(dest), 10)
testutils.AssertDeepEqual(t, dest[0].Inventory, &inventory1) testutils.AssertDeepEqual(t, dest[0].Inventory, &inventory1)
testutils.AssertDeepEqual(t, dest[0].Film, film1) testutils.AssertDeepEqual(t, dest[0].Film, film1)
testutils.AssertDeepEqual(t, dest[0].Store, &store1) testutils.AssertDeepEqual(t, dest[0].Store, &store1)
@ -558,8 +558,8 @@ func TestScanToSlice(t *testing.T) {
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 10) require.Equal(t, len(dest), 10)
testutils.AssertDeepEqual(t, dest[0].Inventory, inventory1) testutils.AssertDeepEqual(t, dest[0].Inventory, inventory1)
testutils.AssertDeepEqual(t, dest[0].Film, &film1) testutils.AssertDeepEqual(t, dest[0].Film, &film1)
testutils.AssertDeepEqual(t, dest[0].Store.Store, &store1) testutils.AssertDeepEqual(t, dest[0].Store.Store, &store1)
@ -579,8 +579,8 @@ func TestScanToSlice(t *testing.T) {
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 2) require.Equal(t, len(dest), 2)
testutils.AssertDeepEqual(t, dest[0].Film, film1) testutils.AssertDeepEqual(t, dest[0].Film, film1)
testutils.AssertDeepEqual(t, len(dest[0].Inventories), 8) testutils.AssertDeepEqual(t, len(dest[0].Inventories), 8)
testutils.AssertDeepEqual(t, dest[0].Inventories[0].Inventory, inventory1) testutils.AssertDeepEqual(t, dest[0].Inventories[0].Inventory, inventory1)
@ -601,14 +601,14 @@ func TestScanToSlice(t *testing.T) {
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 2) require.Equal(t, len(dest), 2)
testutils.AssertDeepEqual(t, dest[0].Film, film1) testutils.AssertDeepEqual(t, dest[0].Film, film1)
assert.Equal(t, len(dest[0].Inventories), 8) require.Equal(t, len(dest[0].Inventories), 8)
testutils.AssertDeepEqual(t, dest[0].Inventories[0].Inventory, inventory1) testutils.AssertDeepEqual(t, dest[0].Inventories[0].Inventory, inventory1)
assert.True(t, dest[0].Inventories[0].Rentals == nil) require.True(t, dest[0].Inventories[0].Rentals == nil)
assert.True(t, dest[0].Inventories[0].Rentals2 == nil) require.True(t, dest[0].Inventories[0].Rentals2 == nil)
}) })
}) })
@ -638,12 +638,12 @@ func TestScanToSlice(t *testing.T) {
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 108) require.Equal(t, len(dest), 108)
testutils.AssertDeepEqual(t, dest[100].Country, countryUk) testutils.AssertDeepEqual(t, dest[100].Country, countryUk)
assert.Equal(t, len(dest[100].Cities), 8) require.Equal(t, len(dest[100].Cities), 8)
testutils.AssertDeepEqual(t, dest[100].Cities[2].City, cityLondon) testutils.AssertDeepEqual(t, dest[100].Cities[2].City, cityLondon)
assert.Equal(t, len(dest[100].Cities[2].Adresses), 2) require.Equal(t, len(dest[100].Cities[2].Adresses), 2)
testutils.AssertDeepEqual(t, dest[100].Cities[2].Adresses[0].Address, address256) testutils.AssertDeepEqual(t, dest[100].Cities[2].Adresses[0].Address, address256)
testutils.AssertDeepEqual(t, dest[100].Cities[2].Adresses[0].Customer, customer256) testutils.AssertDeepEqual(t, dest[100].Cities[2].Adresses[0].Customer, customer256)
testutils.AssertDeepEqual(t, dest[100].Cities[2].Adresses[1].Address, addres517) testutils.AssertDeepEqual(t, dest[100].Cities[2].Adresses[1].Address, addres517)
@ -667,12 +667,12 @@ func TestScanToSlice(t *testing.T) {
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 108) require.Equal(t, len(dest), 108)
testutils.AssertDeepEqual(t, dest[100].Country, &countryUk) testutils.AssertDeepEqual(t, dest[100].Country, &countryUk)
assert.Equal(t, len(dest[100].Cities), 8) require.Equal(t, len(dest[100].Cities), 8)
testutils.AssertDeepEqual(t, dest[100].Cities[2].City, &cityLondon) testutils.AssertDeepEqual(t, dest[100].Cities[2].City, &cityLondon)
assert.Equal(t, len(*dest[100].Cities[2].Adresses), 2) require.Equal(t, len(*dest[100].Cities[2].Adresses), 2)
testutils.AssertDeepEqual(t, (*dest[100].Cities[2].Adresses)[0].Address, &address256) testutils.AssertDeepEqual(t, (*dest[100].Cities[2].Adresses)[0].Address, &address256)
testutils.AssertDeepEqual(t, (*dest[100].Cities[2].Adresses)[0].Customer, &customer256) testutils.AssertDeepEqual(t, (*dest[100].Cities[2].Adresses)[0].Customer, &customer256)
testutils.AssertDeepEqual(t, (*dest[100].Cities[2].Adresses)[1].Address, &addres517) testutils.AssertDeepEqual(t, (*dest[100].Cities[2].Adresses)[1].Address, &addres517)
@ -703,7 +703,7 @@ func TestStructScanErrNoRows(t *testing.T) {
err := query.Query(db, &customer) err := query.Query(db, &customer)
assert.Error(t, err, qrm.ErrNoRows.Error()) require.Error(t, err, qrm.ErrNoRows.Error())
} }
func TestStructScanAllNull(t *testing.T) { func TestStructScanAllNull(t *testing.T) {
@ -716,7 +716,7 @@ func TestStructScanAllNull(t *testing.T) {
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertDeepEqual(t, dest, struct { testutils.AssertDeepEqual(t, dest, struct {
Null1 *int Null1 *int
Null2 *int Null2 *int

View file

@ -8,7 +8,7 @@ import (
"github.com/go-jet/jet/tests/.gentestdata/jetdb/dvds/model" "github.com/go-jet/jet/tests/.gentestdata/jetdb/dvds/model"
. "github.com/go-jet/jet/tests/.gentestdata/jetdb/dvds/table" . "github.com/go-jet/jet/tests/.gentestdata/jetdb/dvds/table"
"github.com/go-jet/jet/tests/.gentestdata/jetdb/dvds/view" "github.com/go-jet/jet/tests/.gentestdata/jetdb/dvds/view"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/require"
"testing" "testing"
"time" "time"
) )
@ -33,7 +33,7 @@ WHERE actor.actor_id = 2;
actor := model.Actor{} actor := model.Actor{}
err := query.Query(db, &actor) err := query.Query(db, &actor)
assert.NoError(t, err) require.NoError(t, err)
expectedActor := model.Actor{ expectedActor := model.Actor{
ActorID: 2, ActorID: 2,
@ -84,8 +84,8 @@ LIMIT 30;
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 30) require.Equal(t, len(dest), 30)
} }
func TestSelect_ScanToSlice(t *testing.T) { func TestSelect_ScanToSlice(t *testing.T) {
@ -110,9 +110,9 @@ ORDER BY customer.customer_id ASC;
testutils.AssertDebugStatementSql(t, query, expectedSQL) testutils.AssertDebugStatementSql(t, query, expectedSQL)
err := query.Query(db, &customers) err := query.Query(db, &customers)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(customers), 599) require.Equal(t, len(customers), 599)
testutils.AssertDeepEqual(t, customer0, customers[0]) testutils.AssertDeepEqual(t, customer0, customers[0])
testutils.AssertDeepEqual(t, customer1, customers[1]) testutils.AssertDeepEqual(t, customer1, customers[1])
@ -164,7 +164,7 @@ LIMIT 12;
dest := []struct{}{} dest := []struct{}{}
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
} }
func TestJoinQueryStruct(t *testing.T) { func TestJoinQueryStruct(t *testing.T) {
@ -253,10 +253,10 @@ LIMIT 1000;
err := query.Query(db, &languageActorFilm) err := query.Query(db, &languageActorFilm)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(languageActorFilm), 1) require.Equal(t, len(languageActorFilm), 1)
assert.Equal(t, len(languageActorFilm[0].Films), 10) require.Equal(t, len(languageActorFilm[0].Films), 10)
assert.Equal(t, len(languageActorFilm[0].Films[0].Actors), 10) require.Equal(t, len(languageActorFilm[0].Films[0].Actors), 10)
} }
} }
@ -302,20 +302,20 @@ LIMIT 15;
err := query.Query(db, &filmsPerLanguage) err := query.Query(db, &filmsPerLanguage)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(filmsPerLanguage), 1) require.Equal(t, len(filmsPerLanguage), 1)
assert.Equal(t, len(filmsPerLanguage[0].Film), limit) require.Equal(t, len(filmsPerLanguage[0].Film), limit)
englishFilms := filmsPerLanguage[0] englishFilms := filmsPerLanguage[0]
assert.Equal(t, *englishFilms.Film[0].Rating, model.MpaaRating_Nc17) require.Equal(t, *englishFilms.Film[0].Rating, model.MpaaRating_Nc17)
filmsPerLanguageWithPtrs := []*FilmsPerLanguage{} filmsPerLanguageWithPtrs := []*FilmsPerLanguage{}
err = query.Query(db, &filmsPerLanguageWithPtrs) err = query.Query(db, &filmsPerLanguageWithPtrs)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(filmsPerLanguage), 1) require.Equal(t, len(filmsPerLanguage), 1)
assert.Equal(t, len(filmsPerLanguage[0].Film), limit) require.Equal(t, len(filmsPerLanguage[0].Film), limit)
} }
func TestExecution1(t *testing.T) { func TestExecution1(t *testing.T) {
@ -359,14 +359,14 @@ ORDER BY city.city_id, address.address_id, customer.customer_id;
err := stmt.Query(db, &dest) err := stmt.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 2) require.Equal(t, len(dest), 2)
assert.Equal(t, dest[0].City.City, "London") require.Equal(t, dest[0].City.City, "London")
assert.Equal(t, dest[1].City.City, "York") require.Equal(t, dest[1].City.City, "York")
assert.Equal(t, len(dest[0].Customers), 2) require.Equal(t, len(dest[0].Customers), 2)
assert.Equal(t, dest[0].Customers[0].LastName, "Hoffman") require.Equal(t, dest[0].Customers[0].LastName, "Hoffman")
assert.Equal(t, dest[0].Customers[1].LastName, "Vines") require.Equal(t, dest[0].Customers[1].LastName, "Vines")
} }
@ -423,14 +423,14 @@ ORDER BY city.city_id, address.address_id, customer.customer_id;
err := stmt.Query(db, &dest) err := stmt.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 2) require.Equal(t, len(dest), 2)
assert.Equal(t, dest[0].Name, "London") require.Equal(t, dest[0].Name, "London")
assert.Equal(t, dest[1].Name, "York") require.Equal(t, dest[1].Name, "York")
assert.Equal(t, len(dest[0].Customers), 2) require.Equal(t, len(dest[0].Customers), 2)
assert.Equal(t, *dest[0].Customers[0].LastName, "Hoffman") require.Equal(t, *dest[0].Customers[0].LastName, "Hoffman")
assert.Equal(t, *dest[0].Customers[1].LastName, "Vines") require.Equal(t, *dest[0].Customers[1].LastName, "Vines")
} }
@ -481,14 +481,14 @@ ORDER BY city.city_id, address.address_id, customer.customer_id;
err := stmt.Query(db, &dest) err := stmt.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 2) require.Equal(t, len(dest), 2)
assert.Equal(t, dest[0].CityName, "London") require.Equal(t, dest[0].CityName, "London")
assert.Equal(t, dest[1].CityName, "York") require.Equal(t, dest[1].CityName, "York")
assert.Equal(t, len(dest[0].Customers), 2) require.Equal(t, len(dest[0].Customers), 2)
assert.Equal(t, *dest[0].Customers[0].LastName, "Hoffman") require.Equal(t, *dest[0].Customers[0].LastName, "Hoffman")
assert.Equal(t, *dest[0].Customers[1].LastName, "Vines") require.Equal(t, *dest[0].Customers[1].LastName, "Vines")
} }
func TestExecution4(t *testing.T) { func TestExecution4(t *testing.T) {
@ -538,8 +538,8 @@ ORDER BY city.city_id, address.address_id, customer.customer_id;
err := stmt.Query(db, &dest) err := stmt.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 2) require.Equal(t, len(dest), 2)
testutils.AssertJSON(t, dest, ` testutils.AssertJSON(t, dest, `
[ [
{ {
@ -597,9 +597,9 @@ func TestJoinQuerySliceWithPtrs(t *testing.T) {
filmsPerLanguageWithPtrs := []*FilmsPerLanguage{} filmsPerLanguageWithPtrs := []*FilmsPerLanguage{}
err := query.Query(db, &filmsPerLanguageWithPtrs) err := query.Query(db, &filmsPerLanguageWithPtrs)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(filmsPerLanguageWithPtrs), 1) require.Equal(t, len(filmsPerLanguageWithPtrs), 1)
assert.Equal(t, len(*filmsPerLanguageWithPtrs[0].Film), int(limit)) require.Equal(t, len(*filmsPerLanguageWithPtrs[0].Film), int(limit))
} }
func TestSelect_WithoutUniqueColumnSelected(t *testing.T) { func TestSelect_WithoutUniqueColumnSelected(t *testing.T) {
@ -609,11 +609,11 @@ func TestSelect_WithoutUniqueColumnSelected(t *testing.T) {
err := query.Query(db, &customers) err := query.Query(db, &customers)
assert.NoError(t, err) require.NoError(t, err)
//spew.Dump(customers) //spew.Dump(customers)
assert.Equal(t, len(customers), 599) require.Equal(t, len(customers), 599)
} }
func TestSelectOrderByAscDesc(t *testing.T) { func TestSelectOrderByAscDesc(t *testing.T) {
@ -623,7 +623,7 @@ func TestSelectOrderByAscDesc(t *testing.T) {
ORDER_BY(Customer.FirstName.ASC()). ORDER_BY(Customer.FirstName.ASC()).
Query(db, &customersAsc) Query(db, &customersAsc)
assert.NoError(t, err) require.NoError(t, err)
firstCustomerAsc := customersAsc[0] firstCustomerAsc := customersAsc[0]
lastCustomerAsc := customersAsc[len(customersAsc)-1] lastCustomerAsc := customersAsc[len(customersAsc)-1]
@ -633,7 +633,7 @@ func TestSelectOrderByAscDesc(t *testing.T) {
ORDER_BY(Customer.FirstName.DESC()). ORDER_BY(Customer.FirstName.DESC()).
Query(db, &customersDesc) Query(db, &customersDesc)
assert.NoError(t, err) require.NoError(t, err)
firstCustomerDesc := customersDesc[0] firstCustomerDesc := customersDesc[0]
lastCustomerDesc := customersDesc[len(customersAsc)-1] lastCustomerDesc := customersDesc[len(customersAsc)-1]
@ -646,7 +646,7 @@ func TestSelectOrderByAscDesc(t *testing.T) {
ORDER_BY(Customer.FirstName.ASC(), Customer.LastName.DESC()). ORDER_BY(Customer.FirstName.ASC(), Customer.LastName.DESC()).
Query(db, &customersAscDesc) Query(db, &customersAscDesc)
assert.NoError(t, err) require.NoError(t, err)
customerAscDesc326 := model.Customer{ customerAscDesc326 := model.Customer{
CustomerID: 67, CustomerID: 67,
@ -702,16 +702,16 @@ ORDER BY customer.customer_id ASC;
err := query.Query(db, &allCustomersAndAddress) err := query.Query(db, &allCustomersAndAddress)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(allCustomersAndAddress), 603) require.Equal(t, len(allCustomersAndAddress), 603)
testutils.AssertDeepEqual(t, allCustomersAndAddress[0].Customer, &customer0) testutils.AssertDeepEqual(t, allCustomersAndAddress[0].Customer, &customer0)
assert.True(t, allCustomersAndAddress[0].Address != nil) require.True(t, allCustomersAndAddress[0].Address != nil)
lastCustomerAddress := allCustomersAndAddress[len(allCustomersAndAddress)-1] lastCustomerAddress := allCustomersAndAddress[len(allCustomersAndAddress)-1]
assert.True(t, lastCustomerAddress.Customer == nil) require.True(t, lastCustomerAddress.Customer == nil)
assert.True(t, lastCustomerAddress.Address != nil) require.True(t, lastCustomerAddress.Address != nil)
} }
@ -755,9 +755,9 @@ LIMIT 1000;
err := query.Query(db, &customerAddresCrosJoined) err := query.Query(db, &customerAddresCrosJoined)
assert.Equal(t, len(customerAddresCrosJoined), 1000) require.Equal(t, len(customerAddresCrosJoined), 1000)
assert.NoError(t, err) require.NoError(t, err)
} }
func TestSelectSelfJoin(t *testing.T) { func TestSelectSelfJoin(t *testing.T) {
@ -813,11 +813,11 @@ ORDER BY f1.film_id ASC;
err := query.Query(db, &theSameLengthFilms) err := query.Query(db, &theSameLengthFilms)
assert.NoError(t, err) require.NoError(t, err)
//spew.Dump(theSameLengthFilms) //spew.Dump(theSameLengthFilms)
//assert.Equal(t, len(theSameLengthFilms), 100) //require.Equal(t, len(theSameLengthFilms), 100)
} }
func TestSelectAliasColumn(t *testing.T) { func TestSelectAliasColumn(t *testing.T) {
@ -854,11 +854,11 @@ LIMIT 1000;
err := query.Query(db, &films) err := query.Query(db, &films)
assert.NoError(t, err) require.NoError(t, err)
//spew.Dump(films) //spew.Dump(films)
assert.Equal(t, len(films), 1000) require.Equal(t, len(films), 1000)
testutils.AssertDeepEqual(t, films[0], thesameLengthFilms{"Alien Center", "Iron Moon", 46}) testutils.AssertDeepEqual(t, films[0], thesameLengthFilms{"Alien Center", "Iron Moon", 46})
} }
@ -911,7 +911,7 @@ FROM dvds.actor
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
} }
func TestSelectFunctions(t *testing.T) { func TestSelectFunctions(t *testing.T) {
@ -931,8 +931,8 @@ FROM dvds.film;
err := query.Query(db, &ret) err := query.Query(db, &ret)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, ret.MaxFilmRate, 4.99) require.Equal(t, ret.MaxFilmRate, 4.99)
} }
func TestSelectQueryScalar(t *testing.T) { func TestSelectQueryScalar(t *testing.T) {
@ -973,9 +973,9 @@ ORDER BY film.film_id ASC;
maxRentalRateFilms := []model.Film{} maxRentalRateFilms := []model.Film{}
err := query.Query(db, &maxRentalRateFilms) err := query.Query(db, &maxRentalRateFilms)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(maxRentalRateFilms), 336) require.Equal(t, len(maxRentalRateFilms), 336)
gRating := model.MpaaRating_G gRating := model.MpaaRating_G
@ -1060,11 +1060,11 @@ ORDER BY customer.customer_id, SUM(payment.amount) ASC;
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
//testutils.PrintJson(dest) //testutils.PrintJson(dest)
assert.Equal(t, len(dest), 104) require.Equal(t, len(dest), 104)
//testutils.SaveJsonFile(dest, "postgres/testdata/customer_payment_sum.json") //testutils.SaveJsonFile(dest, "postgres/testdata/customer_payment_sum.json")
testutils.AssertJSONFile(t, dest, "./testdata/results/postgres/customer_payment_sum.json") testutils.AssertJSONFile(t, dest, "./testdata/results/postgres/customer_payment_sum.json")
@ -1121,8 +1121,8 @@ ORDER BY customer_payment_sum."amount_sum" ASC;
customersWithAmounts := []CustomerWithAmounts{} customersWithAmounts := []CustomerWithAmounts{}
err := query.Query(db, &customersWithAmounts) err := query.Query(db, &customersWithAmounts)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(customersWithAmounts), 599) require.Equal(t, len(customersWithAmounts), 599)
testutils.AssertDeepEqual(t, customersWithAmounts[0].Customer, &model.Customer{ testutils.AssertDeepEqual(t, customersWithAmounts[0].Customer, &model.Customer{
CustomerID: 318, CustomerID: 318,
@ -1137,7 +1137,7 @@ ORDER BY customer_payment_sum."amount_sum" ASC;
Active: testutils.Int32Ptr(1), Active: testutils.Int32Ptr(1),
}) })
assert.Equal(t, customersWithAmounts[0].AmountSum, 27.93) require.Equal(t, customersWithAmounts[0].AmountSum, 27.93)
} }
func TestSelectStaff(t *testing.T) { func TestSelectStaff(t *testing.T) {
@ -1145,7 +1145,7 @@ func TestSelectStaff(t *testing.T) {
err := Staff.SELECT(Staff.AllColumns).Query(db, &staffs) err := Staff.SELECT(Staff.AllColumns).Query(db, &staffs)
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertJSON(t, staffs, ` testutils.AssertJSON(t, staffs, `
[ [
@ -1203,11 +1203,11 @@ ORDER BY payment.payment_date ASC;
err := query.Query(db, &payments) err := query.Query(db, &payments)
assert.NoError(t, err) require.NoError(t, err)
//spew.Dump(payments) //spew.Dump(payments)
assert.Equal(t, len(payments), 9) require.Equal(t, len(payments), 9)
testutils.AssertDeepEqual(t, payments[0], model.Payment{ testutils.AssertDeepEqual(t, payments[0], model.Payment{
PaymentID: 17793, PaymentID: 17793,
CustomerID: 416, CustomerID: 416,
@ -1257,8 +1257,8 @@ OFFSET 20;
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 10) require.Equal(t, len(dest), 10)
testutils.AssertDeepEqual(t, dest[0], model.Payment{ testutils.AssertDeepEqual(t, dest[0], model.Payment{
PaymentID: 17523, PaymentID: 17523,
Amount: 4.99, Amount: 4.99,
@ -1283,8 +1283,8 @@ func TestAllSetOperators(t *testing.T) {
dest := []model.Payment{} dest := []model.Payment{}
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 20) require.Equal(t, len(dest), 20)
}) })
t.Run("UNION_ALL", func(t *testing.T) { t.Run("UNION_ALL", func(t *testing.T) {
@ -1293,8 +1293,8 @@ func TestAllSetOperators(t *testing.T) {
dest := []model.Payment{} dest := []model.Payment{}
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 20) require.Equal(t, len(dest), 20)
}) })
t.Run("INTERSECT", func(t *testing.T) { t.Run("INTERSECT", func(t *testing.T) {
@ -1303,8 +1303,8 @@ func TestAllSetOperators(t *testing.T) {
dest := []model.Payment{} dest := []model.Payment{}
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 0) require.Equal(t, len(dest), 0)
}) })
t.Run("INTERSECT_ALL", func(t *testing.T) { t.Run("INTERSECT_ALL", func(t *testing.T) {
@ -1313,8 +1313,8 @@ func TestAllSetOperators(t *testing.T) {
dest := []model.Payment{} dest := []model.Payment{}
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 0) require.Equal(t, len(dest), 0)
}) })
t.Run("EXCEPT", func(t *testing.T) { t.Run("EXCEPT", func(t *testing.T) {
@ -1323,8 +1323,8 @@ func TestAllSetOperators(t *testing.T) {
dest := []model.Payment{} dest := []model.Payment{}
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 10) require.Equal(t, len(dest), 10)
}) })
t.Run("EXCEPT_ALL", func(t *testing.T) { t.Run("EXCEPT_ALL", func(t *testing.T) {
@ -1333,8 +1333,8 @@ func TestAllSetOperators(t *testing.T) {
dest := []model.Payment{} dest := []model.Payment{}
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 10) require.Equal(t, len(dest), 10)
}) })
} }
@ -1363,10 +1363,10 @@ LIMIT 20;
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 20) require.Equal(t, len(dest), 20)
assert.Equal(t, dest[0].StaffIDNum, "TWO") require.Equal(t, dest[0].StaffIDNum, "TWO")
assert.Equal(t, dest[1].StaffIDNum, "ONE") require.Equal(t, dest[1].StaffIDNum, "ONE")
} }
func getRowLockTestData() map[RowLock]string { func getRowLockTestData() map[RowLock]string {
@ -1396,12 +1396,12 @@ FOR`
tx, _ := db.Begin() tx, _ := db.Begin()
res, err := query.Exec(tx) res, err := query.Exec(tx)
assert.NoError(t, err) require.NoError(t, err)
rowsAffected, _ := res.RowsAffected() rowsAffected, _ := res.RowsAffected()
assert.Equal(t, rowsAffected, int64(3)) require.Equal(t, rowsAffected, int64(3))
err = tx.Rollback() err = tx.Rollback()
assert.NoError(t, err) require.NoError(t, err)
} }
for lockType, lockTypeStr := range getRowLockTestData() { for lockType, lockTypeStr := range getRowLockTestData() {
@ -1412,12 +1412,12 @@ FOR`
tx, _ := db.Begin() tx, _ := db.Begin()
res, err := query.Exec(tx) res, err := query.Exec(tx)
assert.NoError(t, err) require.NoError(t, err)
rowsAffected, _ := res.RowsAffected() rowsAffected, _ := res.RowsAffected()
assert.Equal(t, rowsAffected, int64(3)) require.Equal(t, rowsAffected, int64(3))
err = tx.Rollback() err = tx.Rollback()
assert.NoError(t, err) require.NoError(t, err)
} }
for lockType, lockTypeStr := range getRowLockTestData() { for lockType, lockTypeStr := range getRowLockTestData() {
@ -1428,12 +1428,12 @@ FOR`
tx, _ := db.Begin() tx, _ := db.Begin()
res, err := query.Exec(tx) res, err := query.Exec(tx)
assert.NoError(t, err) require.NoError(t, err)
rowsAffected, _ := res.RowsAffected() rowsAffected, _ := res.RowsAffected()
assert.Equal(t, rowsAffected, int64(3)) require.Equal(t, rowsAffected, int64(3))
err = tx.Rollback() err = tx.Rollback()
assert.NoError(t, err) require.NoError(t, err)
} }
} }
@ -1509,7 +1509,7 @@ ORDER BY actor.actor_id ASC, film.film_id ASC;
} }
err := stmt.Query(db, &dest) err := stmt.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
//jsonSave("./testdata/quick-start-dest.json", dest) //jsonSave("./testdata/quick-start-dest.json", dest)
testutils.AssertJSONFile(t, dest, "./testdata/results/postgres/quick-start-dest.json") testutils.AssertJSONFile(t, dest, "./testdata/results/postgres/quick-start-dest.json")
@ -1522,7 +1522,7 @@ ORDER BY actor.actor_id ASC, film.film_id ASC;
} }
err = stmt.Query(db, &dest2) err = stmt.Query(db, &dest2)
assert.NoError(t, err) require.NoError(t, err)
//jsonSave("./testdata/quick-start-dest2.json", dest2) //jsonSave("./testdata/quick-start-dest2.json", dest2)
testutils.AssertJSONFile(t, dest2, "./testdata/results/postgres/quick-start-dest2.json") testutils.AssertJSONFile(t, dest2, "./testdata/results/postgres/quick-start-dest2.json")
@ -1574,7 +1574,7 @@ func TestQuickStartWithSubQueries(t *testing.T) {
} }
err := stmt.Query(db, &dest) err := stmt.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
//jsonSave("./testdata/quick-start-dest.json", dest) //jsonSave("./testdata/quick-start-dest.json", dest)
testutils.AssertJSONFile(t, dest, "./testdata/results/postgres/quick-start-dest.json") testutils.AssertJSONFile(t, dest, "./testdata/results/postgres/quick-start-dest.json")
@ -1587,7 +1587,7 @@ func TestQuickStartWithSubQueries(t *testing.T) {
} }
err = stmt.Query(db, &dest2) err = stmt.Query(db, &dest2)
assert.NoError(t, err) require.NoError(t, err)
//jsonSave("./testdata/quick-start-dest2.json", dest2) //jsonSave("./testdata/quick-start-dest2.json", dest2)
testutils.AssertJSONFile(t, dest2, "./testdata/results/postgres/quick-start-dest2.json") testutils.AssertJSONFile(t, dest2, "./testdata/results/postgres/quick-start-dest2.json")
@ -1620,7 +1620,7 @@ SELECT true,
dest := []struct{}{} dest := []struct{}{}
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
} }
func TestWindowFunction(t *testing.T) { func TestWindowFunction(t *testing.T) {
@ -1692,7 +1692,7 @@ GROUP BY payment.amount, payment.customer_id, payment.payment_date;
dest := []struct{}{} dest := []struct{}{}
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
} }
func TestWindowClause(t *testing.T) { func TestWindowClause(t *testing.T) {
@ -1729,7 +1729,7 @@ ORDER BY payment.customer_id;
dest := []struct{}{} dest := []struct{}{}
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
} }
func TestSimpleView(t *testing.T) { func TestSimpleView(t *testing.T) {
@ -1751,7 +1751,7 @@ func TestSimpleView(t *testing.T) {
var dest []ActorInfo var dest []ActorInfo
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
testutils.AssertJSON(t, dest[1:2], ` testutils.AssertJSON(t, dest[1:2], `
[ [
@ -1785,11 +1785,11 @@ func TestJoinViewWithTable(t *testing.T) {
fmt.Println(query.DebugSql()) fmt.Println(query.DebugSql())
err := query.Query(db, &dest) err := query.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 2) require.Equal(t, len(dest), 2)
assert.Equal(t, len(dest[0].Rentals), 32) require.Equal(t, len(dest[0].Rentals), 32)
assert.Equal(t, len(dest[1].Rentals), 27) require.Equal(t, len(dest[1].Rentals), 27)
} }
func TestDynamicProjectionList(t *testing.T) { func TestDynamicProjectionList(t *testing.T) {
@ -1834,9 +1834,9 @@ LIMIT 3;
`) `)
var dest []model.Customer var dest []model.Customer
err := stmt.Query(db, &dest) err := stmt.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(dest), 3) require.Equal(t, len(dest), 3)
} }
func TestDynamicCondition(t *testing.T) { func TestDynamicCondition(t *testing.T) {
@ -1884,7 +1884,7 @@ WHERE ($1 AND (customer.customer_id = $2)) AND (customer.activebool = $3);
dest := []model.Customer{} dest := []model.Customer{}
err := stmt.Query(db, &dest) err := stmt.Query(db, &dest)
assert.NoError(t, err) require.NoError(t, err)
assert.Len(t, dest, 1) require.Len(t, dest, 1)
testutils.AssertDeepEqual(t, dest[0], customer0) testutils.AssertDeepEqual(t, dest[0], customer0)
} }

View file

@ -6,7 +6,6 @@ import (
. "github.com/go-jet/jet/postgres" . "github.com/go-jet/jet/postgres"
"github.com/go-jet/jet/tests/.gentestdata/jetdb/test_sample/model" "github.com/go-jet/jet/tests/.gentestdata/jetdb/test_sample/model"
. "github.com/go-jet/jet/tests/.gentestdata/jetdb/test_sample/table" . "github.com/go-jet/jet/tests/.gentestdata/jetdb/test_sample/table"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"testing" "testing"
"time" "time"
@ -143,10 +142,10 @@ RETURNING link.id AS "link.id",
err := stmt.Query(db, &links) err := stmt.Query(db, &links)
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, len(links), 2) require.Equal(t, len(links), 2)
assert.Equal(t, links[0].Name, "DuckDuckGo") require.Equal(t, links[0].Name, "DuckDuckGo")
assert.Equal(t, links[1].Name, "DuckDuckGo") require.Equal(t, links[1].Name, "DuckDuckGo")
} }
func TestUpdateWithSelect(t *testing.T) { func TestUpdateWithSelect(t *testing.T) {
@ -294,7 +293,7 @@ func TestUpdateWithInvalidModelData(t *testing.T) {
defer func() { defer func() {
r := recover() r := recover()
assert.Equal(t, r, "missing struct field for column : id") require.Equal(t, r, "missing struct field for column : id")
}() }()
setupLinkTableForUpdateTest(t) setupLinkTableForUpdateTest(t)
@ -342,7 +341,7 @@ func TestUpdateQueryContext(t *testing.T) {
dest := []model.Link{} dest := []model.Link{}
err := updateStmt.QueryContext(ctx, db, &dest) err := updateStmt.QueryContext(ctx, db, &dest)
assert.Error(t, err, "context deadline exceeded") require.Error(t, err, "context deadline exceeded")
} }
func TestUpdateExecContext(t *testing.T) { func TestUpdateExecContext(t *testing.T) {
@ -360,7 +359,7 @@ func TestUpdateExecContext(t *testing.T) {
_, err := updateStmt.ExecContext(ctx, db) _, err := updateStmt.ExecContext(ctx, db)
assert.Error(t, err, "context deadline exceeded") require.Error(t, err, "context deadline exceeded")
} }
func setupLinkTableForUpdateTest(t *testing.T) { func setupLinkTableForUpdateTest(t *testing.T) {
@ -375,10 +374,10 @@ func setupLinkTableForUpdateTest(t *testing.T) {
VALUES(204, "http://www.bing.com", "Bing", DEFAULT). VALUES(204, "http://www.bing.com", "Bing", DEFAULT).
Exec(db) Exec(db)
assert.NoError(t, err) require.NoError(t, err)
} }
func cleanUpLinkTable(t *testing.T) { func cleanUpLinkTable(t *testing.T) {
_, err := Link.DELETE().WHERE(Link.ID.GT(Int(0))).Exec(db) _, err := Link.DELETE().WHERE(Link.ID.GT(Int(0))).Exec(db)
assert.NoError(t, err) require.NoError(t, err)
} }

View file

@ -4,7 +4,6 @@ import (
"github.com/go-jet/jet/internal/jet" "github.com/go-jet/jet/internal/jet"
"github.com/go-jet/jet/internal/testutils" "github.com/go-jet/jet/internal/testutils"
"github.com/go-jet/jet/tests/.gentestdata/jetdb/dvds/model" "github.com/go-jet/jet/tests/.gentestdata/jetdb/dvds/model"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"testing" "testing"
) )
@ -14,8 +13,8 @@ func AssertExec(t *testing.T, stmt jet.Statement, rowsAffected int64) {
require.NoError(t, err) require.NoError(t, err)
rows, err := res.RowsAffected() rows, err := res.RowsAffected()
assert.NoError(t, err) require.NoError(t, err)
assert.Equal(t, rows, rowsAffected) require.Equal(t, rows, rowsAffected)
} }
var customer0 = model.Customer{ var customer0 = model.Customer{