// package main ... package session import ( "context" "testing" "time" "go.mongodb.org/mongo-driver/bson/primitive" "repositories.action2quare.com/ayo/gocommon/logger" ) func TestExpTable(t *testing.T) { pv, err := NewProviderWithRedis(context.Background(), "redis://192.168.8.94:6380/1", 10*time.Second) if err != nil { t.Error(err) } cs, err := NewConsumerWithRedis(context.Background(), "redis://192.168.8.94:6380/1", 10*time.Second) if err != nil { t.Error(err) } // pv, err := NewProviderWithMongo(context.Background(), "mongodb://192.168.8.94:27017/?replicaSet=repl01&retrywrites=false", "maingate", 10*time.Second) // if err != nil { // t.Error(err) // } // cs, err := NewConsumerWithMongo(context.Background(), "mongodb://192.168.8.94:27017/?replicaSet=repl01&retrywrites=false", "maingate", 10*time.Second) // if err != nil { // t.Error(err) // } test := primitive.NewObjectID() sk := make_storagekey(test) pk := storagekey_to_publickey(sk) if publickey_to_storagekey(pk) != sk { t.Errorf("pk != sk : %s, %s", pk, sk) } au1 := &Authorization{ Account: primitive.NewObjectID(), Platform: "editor", Uid: "uid-1", } sk1, err := pv.New(au1) if err != nil { t.Error(err) } au2 := &Authorization{ Account: primitive.NewObjectID(), Platform: "editor", Uid: "uid-2", } sk2, err := pv.New(au2) if err != nil { t.Error(err) } go func() { for { q1, err := cs.Query(sk1) logger.Println("query :", q1, err) q2, err := cs.Query(sk2) logger.Println("query :", q2, err) time.Sleep(time.Second) } }() cs.Touch(sk1) time.Sleep(2 * time.Second) cs.Touch(sk2) time.Sleep(2 * time.Second) time.Sleep(2 * time.Second) pv.Delete(au1.Account) cs.Touch(sk1) time.Sleep(2 * time.Second) cs.Touch(sk2) time.Sleep(2 * time.Second) cs2, err := NewConsumerWithRedis(context.Background(), "redis://192.168.8.94:6380/1", 10*time.Second) if err != nil { t.Error(err) } q2, err := cs2.Query(sk2) logger.Println("queryf :", q2, err) time.Sleep(20 * time.Second) }