Browse Source

Merge pull request #4372 from gyuho/kv_delete

clientv3/integration: add TestKVDelete*
Gyu-Ho Lee 10 years ago
parent
commit
87ed04ea6f
1 changed files with 72 additions and 0 deletions
  1. 72 0
      clientv3/integration/kv_test.go

+ 72 - 0
clientv3/integration/kv_test.go

@@ -179,3 +179,75 @@ func TestKVRange(t *testing.T) {
 		}
 		}
 	}
 	}
 }
 }
+
+func TestKVDeleteRange(t *testing.T) {
+	defer testutil.AfterTest(t)
+
+	clus := integration.NewClusterV3(t, &integration.ClusterConfig{Size: 3})
+	defer clus.Terminate(t)
+
+	kv := clientv3.NewKV(clus.RandClient())
+
+	keySet := []string{"a", "b", "c", "c", "c", "d", "e", "f"}
+	for i, key := range keySet {
+		if _, err := kv.Put(key, "", lease.NoLease); err != nil {
+			t.Fatalf("#%d: couldn't put %q (%v)", i, key, err)
+		}
+	}
+
+	tests := []struct {
+		key, end string
+		delRev   int64
+	}{
+		{"a", "b", int64(len(keySet) + 2)}, // delete [a, b)
+		{"d", "f", int64(len(keySet) + 3)}, // delete [d, f)
+	}
+
+	for i, tt := range tests {
+		dresp, err := kv.DeleteRange(tt.key, tt.end)
+		if err != nil {
+			t.Fatalf("#%d: couldn't delete range (%v)", i, err)
+		}
+		if dresp.Header.Revision != tt.delRev {
+			t.Fatalf("#%d: dresp.Header.Revision got %d, want %d", i, dresp.Header.Revision, tt.delRev)
+		}
+		resp, err := kv.Range(tt.key, tt.end, 0, 0, nil)
+		if err != nil {
+			t.Fatalf("#%d: couldn't get key (%v)", i, err)
+		}
+		if len(resp.Kvs) > 0 {
+			t.Fatalf("#%d: resp.Kvs expected none, but got %+v", i, resp.Kvs)
+		}
+	}
+}
+
+func TestKVDelete(t *testing.T) {
+	defer testutil.AfterTest(t)
+
+	clus := integration.NewClusterV3(t, &integration.ClusterConfig{Size: 3})
+	defer clus.Terminate(t)
+
+	kv := clientv3.NewKV(clus.RandClient())
+
+	presp, err := kv.Put("foo", "", lease.NoLease)
+	if err != nil {
+		t.Fatalf("couldn't put 'foo' (%v)", err)
+	}
+	if presp.Header.Revision != 2 {
+		t.Fatalf("presp.Header.Revision got %d, want %d", presp.Header.Revision, 2)
+	}
+	resp, err := kv.Delete("foo")
+	if err != nil {
+		t.Fatalf("couldn't delete key (%v)", err)
+	}
+	if resp.Header.Revision != 3 {
+		t.Fatalf("resp.Header.Revision got %d, want %d", resp.Header.Revision, 3)
+	}
+	gresp, err := kv.Get("foo", 0)
+	if err != nil {
+		t.Fatalf("couldn't get key (%v)", err)
+	}
+	if len(gresp.Kvs) > 0 {
+		t.Fatalf("gresp.Kvs got %+v, want none", gresp.Kvs)
+	}
+}