| 412 | } |
| 413 | |
| 414 | func TestQueue_Get_err(t *testing.T) { |
| 415 | ctrl := gomock.NewController(t) |
| 416 | dir := filepath.Join(t.TempDir(), t.Name()) |
| 417 | |
| 418 | defer ctrl.Finish() |
| 419 | |
| 420 | q, err := NewQueue(dir, 1024) |
| 421 | assert.NoError(t, err) |
| 422 | err = q.Put([]byte("123456789")) |
| 423 | assert.NoError(t, err) |
| 424 | |
| 425 | fct := page.NewMockFactory(ctrl) |
| 426 | q1 := q.(*queue) |
| 427 | indexFct := q1.indexPageFct |
| 428 | q1.indexPageFct = fct |
| 429 | // case 1: index page not exist |
| 430 | fct.EXPECT().GetPage(gomock.Any()).Return(nil, false) |
| 431 | |
| 432 | data, err := q.Get(0) |
| 433 | assert.Error(t, err) |
| 434 | assert.Nil(t, data) |
| 435 | |
| 436 | q1.indexPageFct = indexFct |
| 437 | // case 2: data page not exist |
| 438 | dataFct := q1.dataPageFct |
| 439 | q1.dataPageFct = fct |
| 440 | |
| 441 | fct.EXPECT().GetPage(gomock.Any()).Return(nil, false) |
| 442 | |
| 443 | data, err = q.Get(0) |
| 444 | assert.Error(t, err) |
| 445 | assert.Nil(t, data) |
| 446 | |
| 447 | q1.dataPageFct = dataFct |
| 448 | |
| 449 | q.Close() |
| 450 | } |
| 451 | |
| 452 | func TestQueue_Ack_err(t *testing.T) { |
| 453 | ctrl := gomock.NewController(t) |