forked from cadence-workflow/cadence-samples
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathworkflow_test.go
More file actions
63 lines (53 loc) · 1.67 KB
/
Copy pathworkflow_test.go
File metadata and controls
63 lines (53 loc) · 1.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package main
import (
"context"
"testing"
"github.com/stretchr/testify/suite"
"go.uber.org/cadence/activity"
"go.uber.org/cadence/encoded"
"go.uber.org/cadence/testsuite"
)
type UnitTestSuite struct {
suite.Suite
testsuite.WorkflowTestSuite
env *testsuite.TestWorkflowEnvironment
}
func TestUnitTestSuite(t *testing.T) {
suite.Run(t, new(UnitTestSuite))
}
func (s *UnitTestSuite) SetupTest() {
s.env = s.NewTestWorkflowEnvironment()
s.env.RegisterWorkflow(sampleGreetingsWorkflow)
s.env.RegisterActivity(getGreetingActivity)
s.env.RegisterActivity(getNameActivity)
s.env.RegisterActivity(sayGreetingActivity)
}
func (s *UnitTestSuite) TearDownTest() {
s.env.AssertExpectations(s.T())
}
func (s *UnitTestSuite) Test_SampleGreetingsWorkflow() {
sayGreetingActivityName := "github.com/uber-common/cadence-samples/cmd/samples/recipes/greetings.sayGreetingActivity"
var startCalled, endCalled bool
s.env.SetOnActivityStartedListener(func(activityInfo *activity.Info, ctx context.Context, args encoded.Values) {
if sayGreetingActivityName == activityInfo.ActivityType.Name {
var greeting, name string
args.Get(&greeting, &name)
s.Equal("Hello", greeting)
s.Equal("Cadence", name)
startCalled = true
}
})
s.env.SetOnActivityCompletedListener(func(activityInfo *activity.Info, result encoded.Value, err error) {
if sayGreetingActivityName == activityInfo.ActivityType.Name {
var sayResult string
result.Get(&sayResult)
s.Equal("Greeting: Hello Cadence!\n", sayResult)
endCalled = true
}
})
s.env.ExecuteWorkflow(sampleGreetingsWorkflow)
s.True(s.env.IsWorkflowCompleted())
s.NoError(s.env.GetWorkflowError())
s.True(startCalled)
s.True(endCalled)
}