// warroom project main.go package core import ( "context" "testing" "github.com/go-redis/redis/v8" "go.mongodb.org/mongo-driver/bson/primitive" "repositories.action2quare.com/ayo/gocommon/logger" ) func TestReJSON(t *testing.T) { rc := redis.NewClient(&redis.Options{Addr: "192.168.8.94:6380"}) rh := NewReJSONHandler(context.Background(), rc) testDoc := map[string]any{ "members": map[string]any{ "mid2": map[string]any{ "key": "val", "exp": 20202020, }, "mid1": map[string]any{ "key": "val", "exp": 10101010, }, }, } gd := groupDoc{ id: primitive.NewObjectID(), } midin := primitive.NewObjectID() tid := gd.tid(midin) midout := gd.mid(tid) logger.Println(midin, tid, midout) res, err := rh.JSONSet("jsontest", "$", testDoc) logger.Println(res, err) res, err = rh.JSONResp("jsontest", "$.members") vars := res.([]any) logger.Println(vars, err) res, err = rh.JSONGetString("jsontest", "$.members..key") logger.Println(res, err) res, err = rh.JSONGetInt64("jsontest", "$.members..exp") logger.Println(res, err) res, err = rh.JSONObjKeys("jsontest", "$.members") logger.Println(res, err) err = rh.JSONMSet("jsontest", map[string]any{ "$.members.mid1.key": "newval", "$.members.mid2.key": "newval", }) logger.Println(err) res, err = rh.JSONGet("jsontest", "$") logger.Println(string(res.([]byte)), err) err = rh.JSONMDel("jsontest", []string{"$.members.mid1", "$.members.mid2"}) logger.Println(err) res, err = rh.JSONGet("jsontest", "$") logger.Println(string(res.([]byte)), err) res, err = rh.JSONObjLen("jsontest", "$.members") count := res.([]any)[0].(int64) logger.Println(count, err) }