Bladeren bron

fix(store): fix redis set can not update issue

Signed-off-by: Jianxiang Ran <rxan_embedded@163.com>
Jianxiang Ran 2 jaren geleden
bovenliggende
commit
41ea32ce28

+ 6 - 0
internal/pkg/store/redis/redisKv_test.go

@@ -37,6 +37,12 @@ func TestRedisKvSet(t *testing.T) {
 	common.TestKvSet(ks, t)
 }
 
+func TestRedisKvSetGet(t *testing.T) {
+	ks, db, minRedis := setupRedisKv()
+	defer cleanRedisKv(db, minRedis)
+	common.TestKvSetGet(ks, t)
+}
+
 func TestRedisKvGet(t *testing.T) {
 	ks, db, minRedis := setupRedisKv()
 	defer cleanRedisKv(db, minRedis)

+ 6 - 0
internal/pkg/store/sql/sqlKv_test.go

@@ -46,6 +46,12 @@ func TestSqlKvGet(t *testing.T) {
 	common.TestKvGet(ks, t)
 }
 
+func TestSqlKvSetGet(t *testing.T) {
+	ks, db, abs := setupSqlKv()
+	defer cleanSqlKv(db, abs)
+	common.TestKvSetGet(ks, t)
+}
+
 func TestSqlKvKeys(t *testing.T) {
 	ks, db, abs := setupSqlKv()
 	defer cleanSqlKv(db, abs)

+ 42 - 0
internal/pkg/store/test/common/test.go

@@ -26,10 +26,52 @@ func TestKvSetnx(ks kv.KeyValue, t *testing.T) {
 	if err := ks.Setnx("foo", "bar"); nil != err {
 		t.Error(err)
 	}
+	var val string
+	_, _ = ks.Get("foo", &val)
+	if val != "bar" {
+		t.Error("expect:bar", "get:", val)
+	}
+
+	if err := ks.Setnx("foo", "bar1"); nil == err {
+		t.Errorf("Can't overwrite an existing intem: %v", err)
+	}
+}
+
+func TestKvSetGet(ks kv.KeyValue, t *testing.T) {
+	var val string
+	//SetNX
+	if err := ks.Setnx("foo", "bar"); nil != err {
+		t.Error(err)
+	}
+	_, _ = ks.Get("foo", &val)
+	if val != "bar" {
+		t.Error("expect:bar", "get:", val)
+	}
 
 	if err := ks.Setnx("foo", "bar1"); nil == err {
 		t.Errorf("Can't overwrite an existing intem: %v", err)
 	}
+	_, _ = ks.Get("foo", &val)
+	if val != "bar" {
+		t.Error("expect:bar", "get:", val)
+	}
+
+	//Set
+	if err := ks.Set("foo", "bar"); nil != err {
+		t.Error(err)
+	}
+	_, _ = ks.Get("foo", &val)
+	if val != "bar" {
+		t.Error("expect:bar", "get:", val)
+	}
+
+	if err := ks.Set("foo", "bar1"); nil != err {
+		t.Errorf("Set should overwrite an existing record")
+	}
+	_, _ = ks.Get("foo", &val)
+	if val != "bar1" {
+		t.Error("expect:bar", "get:", val)
+	}
 }
 
 func TestKvSet(ks kv.KeyValue, t *testing.T) {