MCPcopy
hub / github.com/zeromicro/go-zero / TestUserModel

Function TestUserModel

tools/goctl/model/sql/test/model/model_test.go:147–228  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

145}
146
147func TestUserModel(t *testing.T) {
148 var (
149 testTimeValue = time.Now()
150 testTable = "`user`"
151 testUpdateName = "gozero1"
152 testUser = "gozero"
153 testPassword = "test"
154 testMobile = "test_mobile"
155 testGender = "男"
156 testNickname = "test_nickname"
157 testRowsAffected int64 = 1
158 testInsertId int64 = 1
159 )
160
161 var data User
162 data.ID = testInsertId
163 data.User = testUser
164 data.Name = "gozero"
165 data.Password = testPassword
166 data.Mobile = testMobile
167 data.Gender = testGender
168 data.Nickname = testNickname
169 data.CreateTime = testTimeValue
170 data.UpdateTime = testTimeValue
171
172 err := mockUser(func(mock sqlmock.Sqlmock) {
173 mock.ExpectExec(fmt.Sprintf("insert into %s", testTable)).
174 WithArgs(data.User, data.Name, data.Password, data.Mobile, data.Gender, data.Nickname).
175 WillReturnResult(sqlmock.NewResult(testInsertId, testRowsAffected))
176 }, func(m UserModel) {
177 r, err := m.Insert(data)
178 assert.Nil(t, err)
179
180 lastInsertId, err := r.LastInsertId()
181 assert.Nil(t, err)
182 assert.Equal(t, testInsertId, lastInsertId)
183
184 rowsAffected, err := r.RowsAffected()
185 assert.Nil(t, err)
186 assert.Equal(t, testRowsAffected, rowsAffected)
187 })
188 assert.Nil(t, err)
189
190 err = mockUser(func(mock sqlmock.Sqlmock) {
191 mock.ExpectQuery(fmt.Sprintf("select (.+) from %s", testTable)).
192 WithArgs(testInsertId).
193 WillReturnRows(sqlmock.NewRows([]string{"id", "user", "name", "password", "mobile", "gender", "nickname", "create_time", "update_time"}).AddRow(testInsertId, data.User, data.Name, data.Password, data.Mobile, data.Gender, data.Nickname, testTimeValue, testTimeValue))
194 }, func(m UserModel) {
195 result, err := m.FindOne(testInsertId)
196 assert.Nil(t, err)
197 assert.Equal(t, *result, data)
198 })
199 assert.Nil(t, err)
200
201 err = mockUser(func(mock sqlmock.Sqlmock) {
202 mock.ExpectExec(fmt.Sprintf("update %s", testTable)).WithArgs(data.User, testUpdateName, data.Password, data.Mobile, data.Gender, data.Nickname, testInsertId).WillReturnResult(sqlmock.NewResult(testInsertId, testRowsAffected))
203 }, func(m UserModel) {
204 data.Name = testUpdateName

Callers

nothing calls this directly

Calls 8

mockUserFunction · 0.85
LastInsertIdMethod · 0.80
RowsAffectedMethod · 0.80
InsertMethod · 0.65
EqualMethod · 0.65
FindOneMethod · 0.65
UpdateMethod · 0.65
DeleteMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…