79 lines
1.2 KiB
Go
79 lines
1.2 KiB
Go
package gorm_test
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
|
|
"github.com/jinzhu/gorm"
|
|
)
|
|
|
|
func TestNewDefaultExpecter(t *testing.T) {
|
|
db, _, err := gorm.NewDefaultExpecter()
|
|
defer func() {
|
|
db.Close()
|
|
}()
|
|
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
|
|
func TestNewCustomExpecter(t *testing.T) {
|
|
db, _, err := gorm.NewExpecter(gorm.NewSqlmockAdapter, "sqlmock", "mock_gorm_dsn")
|
|
defer func() {
|
|
db.Close()
|
|
}()
|
|
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
|
|
func TestQuery(t *testing.T) {
|
|
db, expect, err := gorm.NewDefaultExpecter()
|
|
defer func() {
|
|
db.Close()
|
|
}()
|
|
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
expect.First(&User{})
|
|
db.LogMode(true).First(&User{})
|
|
|
|
if err := expect.AssertExpectations(); err != nil {
|
|
t.Error(err)
|
|
}
|
|
}
|
|
|
|
func TestQueryReturn(t *testing.T) {
|
|
db, expect, err := gorm.NewDefaultExpecter()
|
|
defer func() {
|
|
db.Close()
|
|
}()
|
|
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
in := &User{Id: 1}
|
|
expectedOut := User{Id: 1, Name: "jinzhu"}
|
|
|
|
expect.First(in).Returns(User{Id: 1, Name: "jinzhu"})
|
|
|
|
db.First(in)
|
|
|
|
if e := expect.AssertExpectations(); e != nil {
|
|
t.Error(e)
|
|
}
|
|
|
|
if in.Name != "jinzhu" {
|
|
t.Errorf("Expected %s, got %s", expectedOut.Name, in.Name)
|
|
}
|
|
|
|
if ne := reflect.DeepEqual(*in, expectedOut); !ne {
|
|
t.Errorf("Not equal")
|
|
}
|
|
}
|