|
|
@@ -1,6 +1,7 @@
|
|
|
package test
|
|
|
|
|
|
import (
|
|
|
+ "encoding/json"
|
|
|
"git.sxidc.com/service-supports/dapr_api/state"
|
|
|
"git.sxidc.com/service-supports/dapr_api/utils"
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
@@ -30,28 +31,68 @@ func TestStateSaveAndGet(t *testing.T) {
|
|
|
t.Fatal(err)
|
|
|
}
|
|
|
|
|
|
- var getValue string
|
|
|
- etag, err := api.GetState(stateStoreName, key, nil, &getValue)
|
|
|
+ data, etag, err := api.GetState(stateStoreName, key, nil)
|
|
|
if err != nil {
|
|
|
t.Fatal(err)
|
|
|
}
|
|
|
|
|
|
assert.NotEmpty(t, etag, "etag为空")
|
|
|
- assert.Equal(t, value, getValue, "value不一致")
|
|
|
+ assert.Equal(t, value, data, "value不一致")
|
|
|
|
|
|
err = api.DeleteState(stateStoreName, key, nil)
|
|
|
if err != nil {
|
|
|
t.Fatal(err)
|
|
|
}
|
|
|
|
|
|
- getValue = ""
|
|
|
- etag, err = api.GetState(stateStoreName, key, nil, &getValue)
|
|
|
+ data, etag, err = api.GetState(stateStoreName, key, nil)
|
|
|
if err != nil {
|
|
|
t.Fatal(err)
|
|
|
}
|
|
|
|
|
|
assert.Empty(t, etag, "etag不为空")
|
|
|
- assert.Empty(t, getValue, "value不为空")
|
|
|
+ assert.Empty(t, data, "value不为空")
|
|
|
+}
|
|
|
+
|
|
|
+func TestStateSaveAndGetJson(t *testing.T) {
|
|
|
+ api := state.NewAPI(httpPort, 10*time.Second)
|
|
|
+ defer state.DestroyAPI(api)
|
|
|
+
|
|
|
+ key := utils.SimpleUUID()
|
|
|
+ value, err := json.Marshal(map[string]interface{}{"value": "aaa"})
|
|
|
+ if err != nil {
|
|
|
+ t.Fatal(err)
|
|
|
+ }
|
|
|
+
|
|
|
+ err = api.SaveState(stateStoreName, []state.SaveStateRequest{
|
|
|
+ {
|
|
|
+ Key: key,
|
|
|
+ Value: string(value),
|
|
|
+ },
|
|
|
+ })
|
|
|
+ if err != nil {
|
|
|
+ t.Fatal(err)
|
|
|
+ }
|
|
|
+
|
|
|
+ data, etag, err := api.GetState(stateStoreName, key, nil)
|
|
|
+ if err != nil {
|
|
|
+ t.Fatal(err)
|
|
|
+ }
|
|
|
+
|
|
|
+ assert.NotEmpty(t, etag, "etag为空")
|
|
|
+ assert.Equal(t, string(value), data, "value不一致")
|
|
|
+
|
|
|
+ err = api.DeleteState(stateStoreName, key, nil)
|
|
|
+ if err != nil {
|
|
|
+ t.Fatal(err)
|
|
|
+ }
|
|
|
+
|
|
|
+ data, etag, err = api.GetState(stateStoreName, key, nil)
|
|
|
+ if err != nil {
|
|
|
+ t.Fatal(err)
|
|
|
+ }
|
|
|
+
|
|
|
+ assert.Empty(t, etag, "etag不为空")
|
|
|
+ assert.Empty(t, string(data), "value不为空")
|
|
|
}
|
|
|
|
|
|
func TestStateGetBulk(t *testing.T) {
|
|
|
@@ -189,15 +230,13 @@ func TestTransaction(t *testing.T) {
|
|
|
{
|
|
|
Operation: state.TransactionDelete,
|
|
|
Request: state.TransactionOperationRequest{
|
|
|
- Key: key1,
|
|
|
- Value: value1,
|
|
|
+ Key: key1,
|
|
|
},
|
|
|
},
|
|
|
{
|
|
|
Operation: state.TransactionDelete,
|
|
|
Request: state.TransactionOperationRequest{
|
|
|
- Key: key2,
|
|
|
- Value: value2,
|
|
|
+ Key: key2,
|
|
|
},
|
|
|
},
|
|
|
},
|