From 6108f8536f932dad27947b77ec4a9c6cf8aabbec Mon Sep 17 00:00:00 2001 From: Xiang Li Date: Fri, 23 Aug 2013 01:37:20 -0400 Subject: [PATCH] add testandset test --- store/store_test.go | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/store/store_test.go b/store/store_test.go index 001f5ddd5..6bd719008 100644 --- a/store/store_test.go +++ b/store/store_test.go @@ -31,6 +31,42 @@ func TestStoreGetDelete(t *testing.T) { } } +func TestTestAndSet(t *testing.T) { + s := CreateStore(100) + s.Set("foo", "bar", time.Unix(0, 0), 1) + + _, err := s.TestAndSet("foo", "barbar", "barbar", time.Unix(0, 0), 2) + + if err == nil { + t.Fatalf("test bar == barbar should fail") + } + + _, err = s.TestAndSet("foo", "bar", "barbar", time.Unix(0, 0), 3) + + if err != nil { + t.Fatalf("test bar == bar should succeed") + } + + _, err = s.TestAndSet("foo", "", "barbar", time.Unix(0, 0), 4) + + if err == nil { + t.Fatalf("test empty == bar should fail") + } + + _, err = s.TestAndSet("fooo", "bar", "barbar", time.Unix(0, 0), 5) + + if err == nil { + t.Fatalf("test bar == non-existing key should fail") + } + + _, err = s.TestAndSet("fooo", "", "bar", time.Unix(0, 0), 6) + + if err != nil { + t.Fatalf("test empty == non-existing key should succeed") + } + +} + func TestSaveAndRecovery(t *testing.T) { s := CreateStore(100)