| 437 | } |
| 438 | |
| 439 | func TestDeltaFIFO_HasSynced(t *testing.T) { |
| 440 | tests := []struct { |
| 441 | actions []func(f *DeltaFIFO) |
| 442 | expectedSynced bool |
| 443 | }{ |
| 444 | { |
| 445 | actions: []func(f *DeltaFIFO){}, |
| 446 | expectedSynced: false, |
| 447 | }, |
| 448 | { |
| 449 | actions: []func(f *DeltaFIFO){ |
| 450 | func(f *DeltaFIFO) { f.Add(mkFifoObj("a", 1)) }, |
| 451 | }, |
| 452 | expectedSynced: true, |
| 453 | }, |
| 454 | { |
| 455 | actions: []func(f *DeltaFIFO){ |
| 456 | func(f *DeltaFIFO) { f.Replace([]interface{}{}, "0") }, |
| 457 | }, |
| 458 | expectedSynced: true, |
| 459 | }, |
| 460 | { |
| 461 | actions: []func(f *DeltaFIFO){ |
| 462 | func(f *DeltaFIFO) { f.Replace([]interface{}{mkFifoObj("a", 1), mkFifoObj("b", 2)}, "0") }, |
| 463 | }, |
| 464 | expectedSynced: false, |
| 465 | }, |
| 466 | { |
| 467 | actions: []func(f *DeltaFIFO){ |
| 468 | func(f *DeltaFIFO) { f.Replace([]interface{}{mkFifoObj("a", 1), mkFifoObj("b", 2)}, "0") }, |
| 469 | func(f *DeltaFIFO) { Pop(f) }, |
| 470 | }, |
| 471 | expectedSynced: false, |
| 472 | }, |
| 473 | { |
| 474 | actions: []func(f *DeltaFIFO){ |
| 475 | func(f *DeltaFIFO) { f.Replace([]interface{}{mkFifoObj("a", 1), mkFifoObj("b", 2)}, "0") }, |
| 476 | func(f *DeltaFIFO) { Pop(f) }, |
| 477 | func(f *DeltaFIFO) { Pop(f) }, |
| 478 | }, |
| 479 | expectedSynced: true, |
| 480 | }, |
| 481 | } |
| 482 | |
| 483 | for i, test := range tests { |
| 484 | f := NewDeltaFIFO(testFifoObjectKeyFunc, nil) |
| 485 | |
| 486 | for _, action := range test.actions { |
| 487 | action(f) |
| 488 | } |
| 489 | if e, a := test.expectedSynced, f.HasSynced(); a != e { |
| 490 | t.Errorf("test case %v failed, expected: %v , got %v", i, e, a) |
| 491 | } |
| 492 | } |
| 493 | } |