Add more tests for TableName (#1199)

* add more tests for TableName

* fix test counts
This commit is contained in:
Lunny Xiao 2019-01-20 17:50:20 +08:00 committed by GitHub
parent 6fe3ab6075
commit e6999cce77
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 95 additions and 4 deletions

View File

@ -18,13 +18,14 @@ func isFloatEq(i, j float64, precision int) bool {
} }
func TestSum(t *testing.T) { func TestSum(t *testing.T) {
assert.NoError(t, prepareEngine())
type SumStruct struct { type SumStruct struct {
Int int Int int
Float float32 Float float32
} }
assert.NoError(t, prepareEngine())
assert.NoError(t, testEngine.Sync2(new(SumStruct)))
var ( var (
cases = []SumStruct{ cases = []SumStruct{
{1, 6.2}, {1, 6.2},
@ -40,8 +41,6 @@ func TestSum(t *testing.T) {
f += v.Float f += v.Float
} }
assert.NoError(t, testEngine.Sync2(new(SumStruct)))
cnt, err := testEngine.Insert(cases) cnt, err := testEngine.Insert(cases)
assert.NoError(t, err) assert.NoError(t, err)
assert.EqualValues(t, 3, cnt) assert.EqualValues(t, 3, cnt)
@ -73,6 +72,65 @@ func TestSum(t *testing.T) {
assert.EqualValues(t, i, int(sumsInt[0])) assert.EqualValues(t, i, int(sumsInt[0]))
} }
type SumStructWithTableName struct {
Int int
Float float32
}
func (s SumStructWithTableName) TableName() string {
return "sum_struct_with_table_name_1"
}
func TestSumWithTableName(t *testing.T) {
assert.NoError(t, prepareEngine())
assert.NoError(t, testEngine.Sync2(new(SumStructWithTableName)))
var (
cases = []SumStructWithTableName{
{1, 6.2},
{2, 5.3},
{92, -0.2},
}
)
var i int
var f float32
for _, v := range cases {
i += v.Int
f += v.Float
}
cnt, err := testEngine.Insert(cases)
assert.NoError(t, err)
assert.EqualValues(t, 3, cnt)
colInt := testEngine.GetColumnMapper().Obj2Table("Int")
colFloat := testEngine.GetColumnMapper().Obj2Table("Float")
sumInt, err := testEngine.Sum(new(SumStructWithTableName), colInt)
assert.NoError(t, err)
assert.EqualValues(t, int(sumInt), i)
sumFloat, err := testEngine.Sum(new(SumStructWithTableName), colFloat)
assert.NoError(t, err)
assert.Condition(t, func() bool {
return isFloatEq(sumFloat, float64(f), 2)
})
sums, err := testEngine.Sums(new(SumStructWithTableName), colInt, colFloat)
assert.NoError(t, err)
assert.EqualValues(t, 2, len(sums))
assert.EqualValues(t, i, int(sums[0]))
assert.Condition(t, func() bool {
return isFloatEq(sums[1], float64(f), 2)
})
sumsInt, err := testEngine.SumsInt(new(SumStructWithTableName), colInt)
assert.NoError(t, err)
assert.EqualValues(t, 1, len(sumsInt))
assert.EqualValues(t, i, int(sumsInt[0]))
}
func TestSumCustomColumn(t *testing.T) { func TestSumCustomColumn(t *testing.T) {
assert.NoError(t, prepareEngine()) assert.NoError(t, prepareEngine())
@ -183,3 +241,36 @@ func TestCountWithOthers(t *testing.T) {
assert.NoError(t, err) assert.NoError(t, err)
assert.EqualValues(t, 2, total) assert.EqualValues(t, 2, total)
} }
type CountWithTableName struct {
Id int64
Name string
}
func (CountWithTableName) TableName() string {
return "count_with_table_name1"
}
func TestWithTableName(t *testing.T) {
assert.NoError(t, prepareEngine())
assertSync(t, new(CountWithTableName))
_, err := testEngine.Insert(&CountWithTableName{
Name: "orderby",
})
assert.NoError(t, err)
_, err = testEngine.Insert(CountWithTableName{
Name: "limit",
})
assert.NoError(t, err)
total, err := testEngine.OrderBy("id desc").Count(new(CountWithTableName))
assert.NoError(t, err)
assert.EqualValues(t, 2, total)
total, err = testEngine.OrderBy("id desc").Count(CountWithTableName{})
assert.NoError(t, err)
assert.EqualValues(t, 2, total)
}