add some tests for tag and cache related with #330
This commit is contained in:
parent
6278427ee6
commit
5b65f21ae4
|
@ -0,0 +1,108 @@
|
||||||
|
// Copyright 2017 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"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestCacheFind(t *testing.T) {
|
||||||
|
assert.NoError(t, prepareEngine())
|
||||||
|
|
||||||
|
type MailBox struct {
|
||||||
|
Id int64
|
||||||
|
Username string
|
||||||
|
Password string
|
||||||
|
}
|
||||||
|
|
||||||
|
cacher := NewLRUCacher2(NewMemoryStore(), time.Hour, 10000)
|
||||||
|
testEngine.SetDefaultCacher(cacher)
|
||||||
|
|
||||||
|
assert.NoError(t, testEngine.Sync2(new(MailBox)))
|
||||||
|
|
||||||
|
var inserts = []*MailBox{
|
||||||
|
{
|
||||||
|
Username: "user1",
|
||||||
|
Password: "pass1",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Username: "user2",
|
||||||
|
Password: "pass2",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
_, err := testEngine.Insert(inserts[0], inserts[1])
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
var boxes []MailBox
|
||||||
|
assert.NoError(t, testEngine.Find(&boxes))
|
||||||
|
assert.EqualValues(t, 2, len(boxes))
|
||||||
|
for i, box := range boxes {
|
||||||
|
assert.Equal(t, inserts[i].Id, box.Id)
|
||||||
|
assert.Equal(t, inserts[i].Username, box.Username)
|
||||||
|
assert.Equal(t, inserts[i].Password, box.Password)
|
||||||
|
}
|
||||||
|
|
||||||
|
boxes = make([]MailBox, 0, 2)
|
||||||
|
assert.NoError(t, testEngine.Find(&boxes))
|
||||||
|
assert.EqualValues(t, 2, len(boxes))
|
||||||
|
for i, box := range boxes {
|
||||||
|
assert.Equal(t, inserts[i].Id, box.Id)
|
||||||
|
assert.Equal(t, inserts[i].Username, box.Username)
|
||||||
|
assert.Equal(t, inserts[i].Password, box.Password)
|
||||||
|
}
|
||||||
|
|
||||||
|
testEngine.SetDefaultCacher(nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestCacheFind2(t *testing.T) {
|
||||||
|
assert.NoError(t, prepareEngine())
|
||||||
|
|
||||||
|
type MailBox struct {
|
||||||
|
Id uint64
|
||||||
|
Username string
|
||||||
|
Password string
|
||||||
|
}
|
||||||
|
|
||||||
|
cacher := NewLRUCacher2(NewMemoryStore(), time.Hour, 10000)
|
||||||
|
testEngine.SetDefaultCacher(cacher)
|
||||||
|
|
||||||
|
assert.NoError(t, testEngine.Sync2(new(MailBox)))
|
||||||
|
|
||||||
|
var inserts = []*MailBox{
|
||||||
|
{
|
||||||
|
Username: "user1",
|
||||||
|
Password: "pass1",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Username: "user2",
|
||||||
|
Password: "pass2",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
_, err := testEngine.Insert(inserts[0], inserts[1])
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
var boxes []MailBox
|
||||||
|
assert.NoError(t, testEngine.Find(&boxes))
|
||||||
|
assert.EqualValues(t, 2, len(boxes))
|
||||||
|
for i, box := range boxes {
|
||||||
|
assert.Equal(t, inserts[i].Id, box.Id)
|
||||||
|
assert.Equal(t, inserts[i].Username, box.Username)
|
||||||
|
assert.Equal(t, inserts[i].Password, box.Password)
|
||||||
|
}
|
||||||
|
|
||||||
|
boxes = make([]MailBox, 0, 2)
|
||||||
|
assert.NoError(t, testEngine.Find(&boxes))
|
||||||
|
assert.EqualValues(t, 2, len(boxes))
|
||||||
|
for i, box := range boxes {
|
||||||
|
assert.Equal(t, inserts[i].Id, box.Id)
|
||||||
|
assert.Equal(t, inserts[i].Username, box.Username)
|
||||||
|
assert.Equal(t, inserts[i].Password, box.Password)
|
||||||
|
}
|
||||||
|
|
||||||
|
testEngine.SetDefaultCacher(nil)
|
||||||
|
}
|
|
@ -122,7 +122,10 @@ func (session *Session) Find(rowsSlicePtr interface{}, condiBean ...interface{})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
condSQL, condArgs, _ := builder.ToSQL(session.Statement.cond.And(autoCond))
|
condSQL, condArgs, err := builder.ToSQL(session.Statement.cond.And(autoCond))
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
args = append(session.Statement.joinArgs, condArgs...)
|
args = append(session.Statement.joinArgs, condArgs...)
|
||||||
sqlStr = session.Statement.genSelectSQL(columnStr, condSQL)
|
sqlStr = session.Statement.genSelectSQL(columnStr, condSQL)
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
// Copyright 2017 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 TestCacheTag(t *testing.T) {
|
||||||
|
assert.NoError(t, prepareEngine())
|
||||||
|
|
||||||
|
type CacheDomain struct {
|
||||||
|
Id int64 `xorm:"pk cache"`
|
||||||
|
Name string
|
||||||
|
}
|
||||||
|
|
||||||
|
assert.NoError(t, testEngine.CreateTables(&CacheDomain{}))
|
||||||
|
|
||||||
|
table := testEngine.TableInfo(&CacheDomain{})
|
||||||
|
assert.True(t, table.Cacher != nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestNoCacheTag(t *testing.T) {
|
||||||
|
assert.NoError(t, prepareEngine())
|
||||||
|
|
||||||
|
type NoCacheDomain struct {
|
||||||
|
Id int64 `xorm:"pk nocache"`
|
||||||
|
Name string
|
||||||
|
}
|
||||||
|
|
||||||
|
assert.NoError(t, testEngine.CreateTables(&NoCacheDomain{}))
|
||||||
|
|
||||||
|
table := testEngine.TableInfo(&NoCacheDomain{})
|
||||||
|
assert.True(t, table.Cacher == nil)
|
||||||
|
}
|
|
@ -7,6 +7,7 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
_ "github.com/go-sql-driver/mysql"
|
_ "github.com/go-sql-driver/mysql"
|
||||||
|
"github.com/go-xorm/core"
|
||||||
_ "github.com/lib/pq"
|
_ "github.com/lib/pq"
|
||||||
_ "github.com/mattn/go-sqlite3"
|
_ "github.com/mattn/go-sqlite3"
|
||||||
)
|
)
|
||||||
|
@ -31,6 +32,7 @@ func createEngine(dbType, connStr string) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
testEngine.ShowSQL(*showSQL)
|
testEngine.ShowSQL(*showSQL)
|
||||||
|
testEngine.logger.SetLevel(core.LOG_DEBUG)
|
||||||
}
|
}
|
||||||
|
|
||||||
tables, err := testEngine.DBMetas()
|
tables, err := testEngine.DBMetas()
|
||||||
|
|
Loading…
Reference in New Issue