Skip to content

Commit

Permalink
Merge branch 'get-version-non-deterministic-issue' of github.com:sama…
Browse files Browse the repository at this point in the history
…rabbas/temporal-go-sdk into get-version-non-deterministic-issue
  • Loading branch information
samarabbas committed May 11, 2020
2 parents 28c9631 + 8c1fbe1 commit 0932e2f
Show file tree
Hide file tree
Showing 5 changed files with 195 additions and 159 deletions.
10 changes: 10 additions & 0 deletions internal/internal_worker.go
Original file line number Diff line number Diff line change
Expand Up @@ -686,6 +686,16 @@ func (r *registry) getRegisteredActivities() []activity {
return activities
}

func (r *registry) getRegisteredActivityTypes() []string {
r.Lock()
defer r.Unlock()
var result []string
for name := range r.activityFuncMap {
result = append(result, name)
}
return result
}

func (r *registry) getWorkflowDefinition(wt WorkflowType) (workflowDefinition, error) {
lookup := wt.Name
if alias, ok := r.getWorkflowAlias(lookup); ok {
Expand Down
18 changes: 10 additions & 8 deletions internal/internal_workflow_testsuite.go
Original file line number Diff line number Diff line change
Expand Up @@ -386,6 +386,16 @@ func (env *testWorkflowEnvironmentImpl) newTestWorkflowEnvironmentForChild(param
func (env *testWorkflowEnvironmentImpl) setWorkerOptions(options WorkerOptions) {
env.workerOptions = options
env.registry.SetWorkflowInterceptors(options.WorkflowInterceptorChainFactories)
if env.workerOptions.EnableSessionWorker && env.sessionEnvironment == nil {
env.registry.RegisterActivityWithOptions(sessionCreationActivity, RegisterActivityOptions{
Name: sessionCreationActivityName,
DisableAlreadyRegisteredCheck: true,
})
env.registry.RegisterActivityWithOptions(sessionCompletionActivity, RegisterActivityOptions{
Name: sessionCompletionActivityName,
DisableAlreadyRegisteredCheck: true,
})
}
}

func (env *testWorkflowEnvironmentImpl) setIdentity(identity string) {
Expand Down Expand Up @@ -1721,14 +1731,6 @@ func (env *testWorkflowEnvironmentImpl) newTestActivityTaskHandler(taskList stri
params.UserContext = context.Background()
}
if env.workerOptions.EnableSessionWorker && env.sessionEnvironment == nil {
env.registry.RegisterActivityWithOptions(sessionCreationActivity, RegisterActivityOptions{
Name: sessionCreationActivityName,
DisableAlreadyRegisteredCheck: true,
})
env.registry.RegisterActivityWithOptions(sessionCompletionActivity, RegisterActivityOptions{
Name: sessionCompletionActivityName,
DisableAlreadyRegisteredCheck: true,
})
env.sessionEnvironment = newTestSessionEnvironment(env, &params, env.workerOptions.MaxConcurrentSessionExecutionSize)
}
params.UserContext = context.WithValue(params.UserContext, sessionEnvironmentContextKey, env.sessionEnvironment)
Expand Down
27 changes: 22 additions & 5 deletions internal/internal_workflow_testsuite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,26 @@ func (s *WorkflowTestSuiteUnitTest) Test_ActivityMockFunction() {
}

env := s.NewTestWorkflowEnvironment()
env.OnActivity("testActivityHello", mock.Anything, mock.Anything).Return(mockActivity).Once()
env.OnActivity(testActivityHello, mock.Anything, "world").Return(mockActivity).Once()
env.RegisterWorkflow(testWorkflowHello)
env.ExecuteWorkflow(testWorkflowHello)

s.True(env.IsWorkflowCompleted())
s.NoError(env.GetWorkflowError())
var result string
_ = env.GetWorkflowResult(&result)
s.Equal("mock_world", result)
env.AssertExpectations(s.T())
}

func (s *WorkflowTestSuiteUnitTest) Test_ActivityByNameMockFunction() {
mockActivity := func(ctx context.Context, msg string) (string, error) {
return "mock_" + msg, nil
}

env := s.NewTestWorkflowEnvironment()
env.RegisterActivity(testActivityHello)
env.OnActivity("testActivityHello", mock.Anything, "world").Return(mockActivity).Once()
env.RegisterWorkflow(testWorkflowHello)
env.ExecuteWorkflow(testWorkflowHello)

Expand Down Expand Up @@ -2828,8 +2847,7 @@ func (s *WorkflowTestSuiteUnitTest) Test_ActivityGoexit() {

wf := func(ctx Context) error {
ao := ActivityOptions{
ScheduleToStartTimeout: time.Minute,
StartToCloseTimeout: 5 * time.Second,
StartToCloseTimeout: 5 * time.Second,
}
ctx = WithActivityOptions(ctx, ao)
err := ExecuteActivity(ctx, fn).Get(ctx, nil)
Expand Down Expand Up @@ -2860,8 +2878,7 @@ func (s *WorkflowTestSuiteUnitTest) Test_ActivityTimeoutWithDetails() {

timeoutWf := func(ctx Context) error {
ao := ActivityOptions{
ScheduleToStartTimeout: time.Minute,
StartToCloseTimeout: 5 * time.Second,
StartToCloseTimeout: 5 * time.Second,
RetryPolicy: &RetryPolicy{
InitialInterval: time.Second,
BackoffCoefficient: 1.1,
Expand Down
1 change: 0 additions & 1 deletion internal/session_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -576,7 +576,6 @@ func (s *SessionTestSuite) TestCompletionFailed() {
env.OnActivity(sessionCompletionActivityName, mock.Anything, mock.Anything).Return(errors.New("some random error")).Once()
env.ExecuteWorkflow(workflowFn)

env.AssertExpectations(s.T())
s.True(env.IsWorkflowCompleted())
s.NoError(env.GetWorkflowError())
env.AssertExpectations(s.T())
Expand Down

0 comments on commit 0932e2f

Please sign in to comment.