package cache_test import ( "fmt" "go_dreamfactory/comm" "go_dreamfactory/lego/sys/log" "go_dreamfactory/pb" "go_dreamfactory/sys/cache" "go_dreamfactory/sys/db" "os" "reflect" "testing" "time" "go_dreamfactory/utils" "github.com/stretchr/testify/require" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/bson/primitive" ) //测试环境下初始化db和cache 系统 func TestMain(m *testing.M) { if err := db.OnInit(nil, db.Set_MongodbUrl("mongodb://admin:123456@10.0.0.9:27018"), db.Set_MongodbDatabase("dreamfactory")); err != nil { fmt.Printf("err:%v\n", err) return } if err := cache.OnInit(nil, cache.Set_Redis_Addr([]string{"10.0.0.9:9001", "10.0.0.9:9002", "10.0.0.9:9003", "10.0.1.45:9004", "10.0.1.45:9005", "10.0.1.45:9006"}), cache.Set_Redis_Password("")); err != nil { fmt.Printf("err:%v\n", err) return } for i := 0; i < 50000; i++ { //go func() { _mail := &pb.DB_MailData{ ObjId: primitive.NewObjectID().Hex(), UserId: "uid123", Title: "系统邮件", Contex: "恭喜获得专属礼包一份", CreateTime: uint64(time.Now().Unix()), DueTime: uint64(time.Now().Unix()) + 30*24*3600, Check: false, Reward: false, } //db.InsertModelLogs("mail", "uid123", _mail) db.Defsys.Mgo().InsertOne("mail", _mail) data := &comm.Autogenerated{ ID: primitive.NewObjectID().Hex(), UID: "uid123", Act: string(comm.LogHandleType_Insert), } data.D = append(data.D, "mail") // D[0] data.D = append(data.D, _mail) // D[1] _, err1 := db.Defsys.Mgo().InsertOne("model_log", data) if err1 != nil { log.Errorf("insert model db err %v", err1) } //}() /////////////////////////////////////// filter := bson.M{ "userid": "uid123", "title": "系统邮件", } var nd *pb.DB_MailData err := db.Defsys.Mgo().FindOne("mail", filter).Decode(&nd) if err == nil { nd.Check = true nd.Reward = true data1 := &comm.Autogenerated{ ID: primitive.NewObjectID().Hex(), UID: "uid123", Act: string(comm.LogHandleType_Update), } filter1 := bson.M{ "userid": "uid123", "title": "系统邮件", } data1.D = make([]interface{}, 0) data1.D = append(data1.D, "mail") // D[0] data1.D = append(data1.D, &filter1) // D[1] data1.D = append(data1.D, nd) // D[2] _, err = db.Defsys.Mgo().InsertOne("model_log", data1) if err != nil { log.Errorf("insert model db err %v", err) } } } time.Sleep(time.Second * 10) defer os.Exit(m.Run()) } func TestSet(t *testing.T) { friendDb := &pb.DB_FriendData{ UserId: "111", FriendIds: []string{"222"}, ApplyIds: []string{"333"}, BlackIds: []string{"444"}, } data := utils.Pb2Map(friendDb) // data2 := map[string]interface{}{ // "userId": friendDb.UserId, // "friendIds": friendDb.FriendIds, // "applyIds": friendDb.ApplyIds, // "blackIds": friendDb.BlackIds, // } cache.Redis().HMSet("friend:222", data) } func TestGet(t *testing.T) { result, err := cache.Redis().HGetAll("111", reflect.TypeOf(map[string]interface{}{})) require.Nil(t, err) fmt.Println(result...) }