MCPcopy
hub / github.com/dapr/dapr / TestComponentCalls

Function TestComponentCalls

pkg/components/state/pluggable_test.go:164–784  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

162}
163
164func TestComponentCalls(t *testing.T) {
165 getStateStore := func(srv *server) (statestore *grpcStateStore, cleanupf func(), err error) {
166 withSvc := testingGrpc.TestServerWithDialer(testLogger, func(s *grpc.Server, svc *server) {
167 proto.RegisterStateStoreServer(s, svc)
168 proto.RegisterTransactionalStateStoreServer(s, svc)
169 proto.RegisterQueriableStateStoreServer(s, svc)
170 })
171 dialer, cleanup, err := withSvc(srv)
172 require.NoError(t, err)
173 clientFactory := newGRPCStateStore(func(ctx context.Context, name string, opts ...grpc.DialOption) (*grpc.ClientConn, error) {
174 return dialer(ctx, opts...)
175 })
176 client := clientFactory(testLogger).(*grpcStateStore)
177 require.NoError(t, client.Init(t.Context(), state.Metadata{}))
178 return client, cleanup, err
179 }
180
181 if runtime.GOOS != "windows" {
182 t.Run("test init should populate features and call grpc init", func(t *testing.T) {
183 const (
184 fakeName = "name"
185 fakeType = "type"
186 fakeVersion = "v1"
187 fakeComponentName = "component"
188 fakeSocketFolder = "/tmp"
189 )
190
191 uniqueID := guuid.New().String()
192 socket := fmt.Sprintf("%s/%s.sock", fakeSocketFolder, uniqueID)
193 defer os.Remove(socket)
194
195 connector := pluggable.NewGRPCConnector(socket, newStateStoreClient)
196 defer connector.Close()
197
198 listener, err := net.Listen("unix", socket)
199 require.NoError(t, err)
200 defer listener.Close()
201 s := grpc.NewServer()
202 srv := &server{}
203 proto.RegisterStateStoreServer(s, srv)
204 go func() {
205 if serveErr := s.Serve(listener); serveErr != nil {
206 testLogger.Debugf("Server exited with error: %v", serveErr)
207 }
208 }()
209
210 ps := fromConnector(testLogger, connector)
211 err = ps.Init(t.Context(), state.Metadata{
212 Base: contribMetadata.Base{},
213 })
214
215 require.NoError(t, err)
216 assert.Equal(t, int64(1), srv.featuresCalled.Load())
217 assert.Equal(t, int64(1), srv.initCalled.Load())
218 })
219 } else {
220 t.Logf("skipping pubsub pluggable component init test due to the lack of OS (%s) support", runtime.GOOS)
221 }

Callers

nothing calls this directly

Calls 15

NewGRPCConnectorFunction · 0.92
newGRPCStateStoreFunction · 0.85
wrapStringFunction · 0.85
LogfMethod · 0.80
ErrMethod · 0.80
GetFilterMethod · 0.80
fromConnectorFunction · 0.70
InitMethod · 0.65
RunMethod · 0.65
CloseMethod · 0.65
LoadMethod · 0.65
FeaturesMethod · 0.65

Tested by

no test coverage detected