xorm/engine_quote_test.go

91 lines
1.9 KiB
Go
Raw Normal View History

2019-09-25 13:30:08 +00:00
// Copyright 2019 The Xorm Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package xorm
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestQuoteColumns(t *testing.T) {
cols := []string{"f1", "f2", "f3"}
quoteFunc := func(value string) string {
return "[" + value + "]"
}
assert.EqualValues(t, "[f1], [f2], [f3]", quoteJoinFunc(cols, quoteFunc, ","))
}
func TestChangeQuotePolicy(t *testing.T) {
assert.NoError(t, prepareEngine())
type ChangeQuotePolicy struct {
Id int64
Name string
}
testEngine.SetColumnQuotePolicy(QuoteNoAdd)
assertSync(t, new(ChangeQuotePolicy))
var obj1 = ChangeQuotePolicy{
Name: "obj1",
}
_, err := testEngine.Insert(&obj1)
assert.NoError(t, err)
var obj2 ChangeQuotePolicy
_, err = testEngine.ID(obj1.Id).Get(&obj2)
assert.NoError(t, err)
var objs []ChangeQuotePolicy
err = testEngine.Find(&objs)
assert.NoError(t, err)
_, err = testEngine.ID(obj1.Id).Update(&ChangeQuotePolicy{
Name: "obj2",
})
assert.NoError(t, err)
_, err = testEngine.ID(obj1.Id).Delete(new(ChangeQuotePolicy))
assert.NoError(t, err)
}
func TestChangeQuotePolicy2(t *testing.T) {
assert.NoError(t, prepareEngine())
type ChangeQuotePolicy2 struct {
Id int64
Name string
User string
Index int
}
testEngine.SetColumnQuotePolicy(QuoteAddReserved)
assertSync(t, new(ChangeQuotePolicy2))
var obj1 = ChangeQuotePolicy2{
Name: "obj1",
}
_, err := testEngine.Insert(&obj1)
assert.NoError(t, err)
var obj2 ChangeQuotePolicy2
_, err = testEngine.ID(obj1.Id).Get(&obj2)
assert.NoError(t, err)
var objs []ChangeQuotePolicy2
err = testEngine.Find(&objs)
assert.NoError(t, err)
_, err = testEngine.ID(obj1.Id).Update(&ChangeQuotePolicy2{
Name: "obj2",
})
assert.NoError(t, err)
_, err = testEngine.ID(obj1.Id).Delete(new(ChangeQuotePolicy2))
assert.NoError(t, err)
}