Atlas › Test

TestMergeActivityOptionsErrors

Exact test identity: go.temporal.io/server/common/activityoptions/TestMergeActivityOptionsErrors

Package
go.temporal.io/server/common/activityoptions
Suite / test hierarchy
TestMergeActivityOptionsErrors
Test
TestMergeActivityOptionsErrors
Introduced at
merge.go ×9 Frontier kind: Joint frontier
Covered ranges
41
Covered lines
70
Covered files
2

Covered source

Expand a file to inspect source; the > gutter marks covered lines.

go.temporal.io/server/common/activityoptions/merge.go 42 covered LOC · 32 ranges

Open complete file

13 //
14 //nolint:revive // cyclomatic: field-mask application requires explicit handling of each supported field
15 > func MergeActivityOptions(mergeInto, mergeFrom *activitypb.ActivityOptions, updateFields map[string]struct{}) error { merge.go
16 > if _, ok := updateFields["taskQueue.name"]; ok {
17 > if mergeFrom.GetTaskQueue() == nil { merge.go
18 > return serviceerror.NewInvalidArgument("TaskQueue is not provided") merge.go
19 > }
20 if mergeInto.TaskQueue == nil {
21 mergeInto.TaskQueue = mergeFrom.GetTaskQueue()
25 }
26
27 > if _, ok := updateFields["scheduleToCloseTimeout"]; ok { merge.go
28 mergeInto.ScheduleToCloseTimeout = mergeFrom.GetScheduleToCloseTimeout()
29 }
30
31 > if _, ok := updateFields["scheduleToStartTimeout"]; ok { merge.go
32 mergeInto.ScheduleToStartTimeout = mergeFrom.GetScheduleToStartTimeout()
33 }
34
35 > if _, ok := updateFields["startToCloseTimeout"]; ok { merge.go
36 mergeInto.StartToCloseTimeout = mergeFrom.GetStartToCloseTimeout()
37 }
38
39 > if _, ok := updateFields["heartbeatTimeout"]; ok { merge.go
40 mergeInto.HeartbeatTimeout = mergeFrom.GetHeartbeatTimeout()
41 }
42
43 > if _, ok := updateFields["priority"]; ok { merge.go
44 mergeInto.Priority = mergeFrom.GetPriority()
45 }
46
47 > if _, ok := updateFields["priority.priorityKey"]; ok { merge.go
48 > if mergeFrom.GetPriority() == nil { merge.go
49 > return serviceerror.NewInvalidArgument("Priority is not provided") merge.go
50 > }
51 if mergeInto.Priority == nil {
52 mergeInto.Priority = &commonpb.Priority{}
55 }
56
57 > if _, ok := updateFields["priority.fairnessKey"]; ok { merge.go
58 > if mergeFrom.GetPriority() == nil { merge.go
59 > return serviceerror.NewInvalidArgument("Priority is not provided") merge.go
60 > }
61 if mergeInto.Priority == nil {
62 mergeInto.Priority = &commonpb.Priority{}
65 }
66
67 > if _, ok := updateFields["priority.fairnessWeight"]; ok { merge.go
68 > if mergeFrom.GetPriority() == nil { merge.go
69 > return serviceerror.NewInvalidArgument("Priority is not provided") merge.go
70 > }
71 if mergeInto.Priority == nil {
72 mergeInto.Priority = &commonpb.Priority{}
75 }
76
77 > if _, ok := updateFields["retryPolicy"]; ok { merge.go
78 > if mergeFrom.GetRetryPolicy() == nil { merge.go
79 > return serviceerror.NewInvalidArgument("RetryPolicy is not provided") merge.go
80 > }
81 mergeInto.RetryPolicy = mergeFrom.GetRetryPolicy()
82 }
83
84 > if _, ok := updateFields["retryPolicy.initialInterval"]; ok { merge.go
85 > if mergeFrom.GetRetryPolicy() == nil { merge.go
86 > return serviceerror.NewInvalidArgument("RetryPolicy is not provided") merge.go
87 > }
88 if mergeInto.RetryPolicy == nil {
89 mergeInto.RetryPolicy = &commonpb.RetryPolicy{}
92 }
93
94 > if _, ok := updateFields["retryPolicy.backoffCoefficient"]; ok { merge.go
95 > if mergeFrom.GetRetryPolicy() == nil { merge.go
96 > return serviceerror.NewInvalidArgument("RetryPolicy is not provided") merge.go
97 > }
98 if mergeInto.RetryPolicy == nil {
99 mergeInto.RetryPolicy = &commonpb.RetryPolicy{}
102 }
103
104 > if _, ok := updateFields["retryPolicy.maximumInterval"]; ok { merge.go
105 > if mergeFrom.GetRetryPolicy() == nil { merge.go
106 > return serviceerror.NewInvalidArgument("RetryPolicy is not provided") merge.go
107 > }
108 if mergeInto.RetryPolicy == nil {
109 mergeInto.RetryPolicy = &commonpb.RetryPolicy{}
112 }
113
114 > if _, ok := updateFields["retryPolicy.maximumAttempts"]; ok { merge.go
115 > if mergeFrom.GetRetryPolicy() == nil { merge.go
116 > return serviceerror.NewInvalidArgument("RetryPolicy is not provided") merge.go
117 > }
118 if mergeInto.RetryPolicy == nil {
119 mergeInto.RetryPolicy = &commonpb.RetryPolicy{}
go.temporal.io/server/common/util/proto.go 28 covered LOC · 9 ranges

Open complete file

9 )
10
11 > func ConvertPathToCamel(input string) []string { proto.go
12 > var pathParts []string
13 > for path := range strings.SplitSeq(input, ".") {
14 > // Split by "_" and convert each word to Title Case (CamelCase)
15 > var b strings.Builder
16 > j := 0
17 > for word := range strings.SplitSeq(path, "_") {
18 > if j > 0 {
19 > b.WriteString(cases.Title(language.Und).String(strings.ToLower(word))) proto.go
20 > } else { proto.go
21 > // lowercase the first letter
22 > if len(word) > 0 {
23 > b.WriteString(strings.ToLower(word[:1]))
24 > if len(word) > 1 {
25 > b.WriteString(word[1:])
26 > }
27 }
28 }
29 > j++ proto.go
30 }
31 // Join the words into a CamelCase substring
32 > pathParts = append(pathParts, b.String()) proto.go
33 }
34 // Join all CamelCase substrings back with "."
35 > return pathParts proto.go
36 }
37
38 > func ParseFieldMask(mask *fieldmaskpb.FieldMask) map[string]struct{} { proto.go
39 > fieldMaskPaths := make(map[string]struct{})
40 >
41 > for _, path := range mask.Paths {
42 > pathParts := ConvertPathToCamel(path) proto.go
43 > jsonPath := strings.Join(pathParts, ".")
44 > fieldMaskPaths[jsonPath] = struct{}{}
45 > }
46
47 > return fieldMaskPaths proto.go
48 }
49