checkState compares the state of the client and the server with the given system state
(t *testing.T, clientDB *cliDatabase.DB, user database.User, serverDB *gorm.DB, expected systemState)
| 271 | |
| 272 | // checkState compares the state of the client and the server with the given system state |
| 273 | func checkState(t *testing.T, clientDB *cliDatabase.DB, user database.User, serverDB *gorm.DB, expected systemState) { |
| 274 | var clientBookCount, clientNoteCount int |
| 275 | cliDatabase.MustScan(t, "counting client notes", clientDB.QueryRow("SELECT count(*) FROM notes"), &clientNoteCount) |
| 276 | cliDatabase.MustScan(t, "counting client books", clientDB.QueryRow("SELECT count(*) FROM books"), &clientBookCount) |
| 277 | assert.Equal(t, clientNoteCount, expected.clientNoteCount, "client note count mismatch") |
| 278 | assert.Equal(t, clientBookCount, expected.clientBookCount, "client book count mismatch") |
| 279 | |
| 280 | var clientLastMaxUSN int |
| 281 | var clientLastSyncAt int64 |
| 282 | cliDatabase.MustScan(t, "finding system last_max_usn", clientDB.QueryRow("SELECT value FROM system WHERE key = ?", consts.SystemLastMaxUSN), &clientLastMaxUSN) |
| 283 | cliDatabase.MustScan(t, "finding system last_sync_at", clientDB.QueryRow("SELECT value FROM system WHERE key = ?", consts.SystemLastSyncAt), &clientLastSyncAt) |
| 284 | assert.Equal(t, clientLastMaxUSN, expected.clientLastMaxUSN, "client last_max_usn mismatch") |
| 285 | assert.Equal(t, clientLastSyncAt, expected.clientLastSyncAt, "client last_sync_at mismatch") |
| 286 | |
| 287 | var serverBookCount, serverNoteCount int64 |
| 288 | apitest.MustExec(t, serverDB.Model(&database.Note{}).Count(&serverNoteCount), "counting server notes") |
| 289 | apitest.MustExec(t, serverDB.Model(&database.Book{}).Count(&serverBookCount), "counting api notes") |
| 290 | assert.Equal(t, serverNoteCount, expected.serverNoteCount, "server note count mismatch") |
| 291 | assert.Equal(t, serverBookCount, expected.serverBookCount, "server book count mismatch") |
| 292 | var serverUser database.User |
| 293 | apitest.MustExec(t, serverDB.Where("id = ?", user.ID).First(&serverUser), "finding user") |
| 294 | assert.Equal(t, serverUser.MaxUSN, expected.serverUserMaxUSN, "user max_usn mismatch") |
| 295 | } |