| 15 | } |
| 16 | |
| 17 | func TestTableAddGetRemove(t *testing.T) { |
| 18 | tab := NewTable() |
| 19 | c := New(tup(40000, 443), []byte("fake")) |
| 20 | if !tab.Add(c) { |
| 21 | t.Fatal("Add returned false on empty table") |
| 22 | } |
| 23 | if tab.Add(c) { |
| 24 | t.Fatal("duplicate Add should return false") |
| 25 | } |
| 26 | if tab.Len() != 1 { |
| 27 | t.Fatalf("Len: got %d want 1", tab.Len()) |
| 28 | } |
| 29 | got, ok := tab.Get(c.Tuple) |
| 30 | if !ok || got != c { |
| 31 | t.Fatalf("Get: ok=%v same=%v", ok, got == c) |
| 32 | } |
| 33 | tab.Remove(c.Tuple) |
| 34 | if tab.Len() != 0 { |
| 35 | t.Fatalf("Len after Remove: got %d want 0", tab.Len()) |
| 36 | } |
| 37 | tab.Remove(c.Tuple) // idempotent |
| 38 | } |
| 39 | |
| 40 | func TestFinishIsIdempotentAndClosesDone(t *testing.T) { |
| 41 | c := New(tup(1, 443), nil) |