From 73e0324818a3a878d316e641f67df47060912e66 Mon Sep 17 00:00:00 2001 From: Alex Shtin Date: Tue, 26 May 2020 16:47:51 -0700 Subject: [PATCH] Add tests for activity struct arg (#134) --- internal/internal_worker_test.go | 36 ++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/internal/internal_worker_test.go b/internal/internal_worker_test.go index 778f85a97..965404474 100644 --- a/internal/internal_worker_test.go +++ b/internal/internal_worker_test.go @@ -70,6 +70,7 @@ func testInternalWorkerRegister(r *registry) { testActivityMultipleArgs, RegisterActivityOptions{Name: "testActivityMultipleArgs"}, ) + r.RegisterActivity(testActivityMultipleArgsWithStruct) r.RegisterActivity(testActivityReturnString) r.RegisterActivity(testActivityReturnEmptyString) r.RegisterActivity(testActivityReturnEmptyStruct) @@ -102,6 +103,7 @@ func testInternalWorkerRegisterWithTestEnv(env *TestWorkflowEnvironment) { testActivityMultipleArgs, RegisterActivityOptions{Name: "testActivityMultipleArgs"}, ) + env.RegisterActivity(testActivityMultipleArgsWithStruct) env.RegisterActivity(testActivityReturnString) env.RegisterActivity(testActivityReturnEmptyString) env.RegisterActivity(testActivityReturnEmptyStruct) @@ -673,6 +675,7 @@ func (s *internalWorkerTestSuite) TestDecisionTaskHandlerWithDataConverter() { func sampleWorkflowExecute(ctx Context, input []byte) (result []byte, err error) { ExecuteActivity(ctx, testActivityByteArgs, input) ExecuteActivity(ctx, testActivityMultipleArgs, 2, []string{"test"}, true) + ExecuteActivity(ctx, testActivityMultipleArgsWithStruct, -8, newTestActivityArg()) return []byte("Done"), nil } @@ -688,6 +691,12 @@ func testActivityMultipleArgs(context.Context, int, []string, bool) ([]byte, err return nil, nil } +// test testActivityMultipleArgsWithStruct +func testActivityMultipleArgsWithStruct(_ context.Context, i int, s testActivityArg) ([]byte, error) { + fmt.Printf("Executing testActivityMultipleArgsWithStruct: %d, %v\n", i, s) + return nil, nil +} + func (s *internalWorkerTestSuite) TestCreateWorker() { worker := createWorkerWithThrottle(s.service, 500.0, nil) err := worker.Start() @@ -993,6 +1002,9 @@ func (w activitiesCallingOptionsWorkflow) Execute(ctx Context, input []byte) (re err = ExecuteActivity(ctx, testActivityMultipleArgs, 2, []string{"test"}, true).Get(ctx, nil) require.NoError(w.t, err, err) + err = ExecuteActivity(ctx, testActivityMultipleArgsWithStruct, -8, newTestActivityArg()).Get(ctx, nil) + require.NoError(w.t, err, err) + err = ExecuteActivity(ctx, testActivityNoResult, 2, "test").Get(ctx, nil) require.NoError(w.t, err, err) @@ -1116,10 +1128,34 @@ func testActivityReturnEmptyString() (string, error) { return "", nil } +type testActivityArg struct { + Index int + Name string + Data []byte + IndexPtr *int + NamePtr *string + DataPtr *[]byte +} + type testActivityResult struct { Index int } +func newTestActivityArg() *testActivityArg { + name := "JohnSmith" + index := 22 + data := []byte{22, 8, 78} + + return &testActivityArg{ + Name: name, + Index: index, + Data: data, + NamePtr: &name, + IndexPtr: &index, + DataPtr: &data, + } +} + // testActivityReturnEmptyStruct func testActivityReturnEmptyStruct() (testActivityResult, error) { // Return is mocked to retrun nil from server.