github.com/cantara/gober@v0.18.8/persistentbigdata/base_test.go (about) 1 package persistentbigmap 2 3 import ( 4 "context" 5 "fmt" 6 log "github.com/cantara/bragi/sbragi" 7 "github.com/cantara/gober/stream" 8 "github.com/cantara/gober/stream/event/store/inmemory" 9 "github.com/cantara/gober/webserver" 10 "github.com/gofrs/uuid" 11 "os" 12 "testing" 13 "time" 14 ) 15 16 var s stream.Stream 17 var ed EventMap[dd, dd] 18 var ctxGlobal context.Context 19 var ctxGlobalCancel context.CancelFunc 20 var testCryptKey = log.RedactedString("aPSIX6K3yw6cAWDQHGPjmhuOswuRibjyLLnd91ojdK0=") 21 22 var STREAM_NAME = "TestServiceStoreAndStream_" + uuid.Must(uuid.NewV7()).String() 23 24 type dd struct { 25 Id int `json:"id"` 26 Name string `json:"name"` 27 } 28 29 func cryptKeyProvider(_ string) log.RedactedString { 30 return testCryptKey 31 } 32 33 func TestPre(t *testing.T) { 34 os.RemoveAll("./eventmap/testdata") 35 os.RemoveAll("./extraserver/eventmap/testdata") 36 } 37 38 func TestInit(t *testing.T) { 39 ctxGlobal, ctxGlobalCancel = context.WithCancel(context.Background()) 40 var err error 41 s, err = inmemory.Init(STREAM_NAME, ctxGlobal) 42 if err != nil { 43 t.Error(err) 44 return 45 } 46 serv, err := webserver.Init(1231, true) 47 if err != nil { 48 t.Error(err) 49 return 50 } 51 edt, err := Init[dd, dd](serv, s, "testdata", "1.0.0", cryptKeyProvider, func(d dd) string { return fmt.Sprintf("%d_%s", d.Id, d.Name) }, ctxGlobal) 52 if err != nil { 53 t.Error(err) 54 return 55 } 56 ed = edt 57 go serv.Run() 58 time.Sleep(10 * time.Second) 59 return 60 } 61 62 func TestStore(t *testing.T) { 63 data := dd{ 64 Id: 1, 65 Name: "test", 66 } 67 err := ed.Set(data, data) 68 if err != nil { 69 t.Error(err) 70 return 71 } 72 return 73 } 74 75 func TestGet(t *testing.T) { 76 data, err := ed.Get("1_test") 77 fmt.Println(data) 78 if err != nil { 79 t.Error(err) 80 return 81 } 82 if data.Id != 1 { 83 t.Error(fmt.Errorf("missmatch data id")) 84 return 85 } 86 if data.Name != "test" { 87 t.Error(fmt.Errorf("missmatch data name")) 88 return 89 } 90 } 91 92 func TestExtraServer(t *testing.T) { 93 err := os.Chdir("extraserver") 94 if err != nil { 95 t.Error(err) 96 return 97 } 98 serv, err := webserver.Init(1232, true) 99 if err != nil { 100 t.Error(err) 101 return 102 } 103 edt, err := Init[dd, dd](serv, s, "testdata", "1.0.0", cryptKeyProvider, func(d dd) string { return fmt.Sprintf("%d_%s", d.Id, d.Name) }, ctxGlobal) 104 if err != nil { 105 t.Error(err) 106 return 107 } 108 time.Sleep(10 * time.Second) 109 data, err := edt.Get("1_test") 110 fmt.Println(data) 111 if err != nil { 112 t.Error(err) 113 return 114 } 115 if data.Id != 1 { 116 t.Error(fmt.Errorf("missmatch data id")) 117 return 118 } 119 if data.Name != "test" { 120 t.Error(fmt.Errorf("missmatch data name")) 121 return 122 } 123 } 124 125 func TestTairdown(t *testing.T) { 126 ctxGlobalCancel() 127 }