70 lines
1.6 KiB
Go
70 lines
1.6 KiB
Go
|
|
package orm_test
|
||
|
|
|
||
|
|
import (
|
||
|
|
"context"
|
||
|
|
"database/sql"
|
||
|
|
"os"
|
||
|
|
"regexp"
|
||
|
|
"testing"
|
||
|
|
|
||
|
|
"modelRT/database"
|
||
|
|
"modelRT/network"
|
||
|
|
"modelRT/orm"
|
||
|
|
|
||
|
|
"github.com/DATA-DOG/go-sqlmock"
|
||
|
|
"github.com/gofrs/uuid"
|
||
|
|
"github.com/stretchr/testify/assert"
|
||
|
|
"gorm.io/driver/mysql"
|
||
|
|
"gorm.io/gorm"
|
||
|
|
)
|
||
|
|
|
||
|
|
var (
|
||
|
|
mock sqlmock.Sqlmock
|
||
|
|
err error
|
||
|
|
baseDB *sql.DB
|
||
|
|
pgClient *gorm.DB
|
||
|
|
)
|
||
|
|
|
||
|
|
func TestMain(m *testing.M) {
|
||
|
|
baseDB, mock, err = sqlmock.New()
|
||
|
|
if err != nil {
|
||
|
|
panic(err)
|
||
|
|
}
|
||
|
|
// 把项目使用的DB连接换成sqlmock的DB连接
|
||
|
|
pgClient, _ = gorm.Open(mysql.New(mysql.Config{
|
||
|
|
Conn: baseDB,
|
||
|
|
SkipInitializeWithVersion: true,
|
||
|
|
DefaultStringSize: 0,
|
||
|
|
}))
|
||
|
|
os.Exit(m.Run())
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestUserDao_CreateUser(t *testing.T) {
|
||
|
|
topologicInfo := &orm.Topologic{
|
||
|
|
PageID: 1,
|
||
|
|
UUIDFrom: uuid.FromStringOrNil("70c190f2-8a60-42a9-b143-ec5f87e0aa6b"),
|
||
|
|
UUIDTo: uuid.FromStringOrNil("70c190f2-8a75-42a9-b166-ec5f87e0aa6b"),
|
||
|
|
Comment: "test",
|
||
|
|
Flag: 1,
|
||
|
|
}
|
||
|
|
|
||
|
|
// ud := dao2.NewUserDao(context.TODO())
|
||
|
|
mock.ExpectBegin()
|
||
|
|
mock.ExpectExec(regexp.QuoteMeta("INSERT INTO `Topologic`")).
|
||
|
|
WithArgs(topologicInfo.PageID, topologicInfo.Flag, topologicInfo.UUIDFrom, topologicInfo.UUIDTo, topologicInfo.Comment).
|
||
|
|
WillReturnResult(sqlmock.NewResult(1, 1))
|
||
|
|
mock.ExpectCommit()
|
||
|
|
|
||
|
|
err := database.CreateTopologicIntoDB(context.TODO(), pgClient, 1, []network.TopologicUUIDCreateInfo{
|
||
|
|
{
|
||
|
|
UUIDFrom: uuid.FromStringOrNil("70c190f2-8a60-42a9-b143-ec5f87e0aa6b"),
|
||
|
|
UUIDTo: uuid.FromStringOrNil("70c190f2-8a75-42a9-b166-ec5f87e0aa6b"),
|
||
|
|
Comment: "test",
|
||
|
|
Flag: 1,
|
||
|
|
},
|
||
|
|
})
|
||
|
|
assert.Nil(t, err)
|
||
|
|
err = mock.ExpectationsWereMet()
|
||
|
|
assert.Nil(t, err)
|
||
|
|
}
|