Atlas › Test

Sub-fields

Exact test identity: go.temporal.io/server/common/activityoptions/TestMergeActivityOptionsAcceptance/Sub-fields

Package
go.temporal.io/server/common/activityoptions
Suite / test hierarchy
TestMergeActivityOptionsAcceptance/Sub-fields
Test
Sub-fields
Introduced at
Sub-fields Frontier kind: Test frontier
Covered ranges
46
Covered lines
66
Covered files
2

Covered source

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

go.temporal.io/server/common/activityoptions/merge.go 38 covered LOC · 37 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 {
18 return serviceerror.NewInvalidArgument("TaskQueue is not provided")
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")
50 }
51 > if mergeInto.Priority == nil { merge.go
52 mergeInto.Priority = &commonpb.Priority{}
53 }
54 > mergeInto.Priority.PriorityKey = mergeFrom.GetPriority().GetPriorityKey() merge.go
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")
60 }
61 > if mergeInto.Priority == nil { merge.go
62 mergeInto.Priority = &commonpb.Priority{}
63 }
64 > mergeInto.Priority.FairnessKey = mergeFrom.GetPriority().GetFairnessKey() merge.go
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")
70 }
71 > if mergeInto.Priority == nil { merge.go
72 mergeInto.Priority = &commonpb.Priority{}
73 }
74 > mergeInto.Priority.FairnessWeight = mergeFrom.GetPriority().GetFairnessWeight() merge.go
75 }
76
77 > if _, ok := updateFields["retryPolicy"]; ok { merge.go
78 if mergeFrom.GetRetryPolicy() == nil {
79 return serviceerror.NewInvalidArgument("RetryPolicy is not provided")
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")
87 }
88 > if mergeInto.RetryPolicy == nil { merge.go
89 mergeInto.RetryPolicy = &commonpb.RetryPolicy{}
90 }
91 > mergeInto.RetryPolicy.InitialInterval = mergeFrom.GetRetryPolicy().GetInitialInterval() merge.go
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")
97 }
98 > if mergeInto.RetryPolicy == nil { merge.go
99 mergeInto.RetryPolicy = &commonpb.RetryPolicy{}
100 }
101 > mergeInto.RetryPolicy.BackoffCoefficient = mergeFrom.GetRetryPolicy().GetBackoffCoefficient() merge.go
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")
107 }
108 > if mergeInto.RetryPolicy == nil { merge.go
109 mergeInto.RetryPolicy = &commonpb.RetryPolicy{}
110 }
111 > mergeInto.RetryPolicy.MaximumInterval = mergeFrom.GetRetryPolicy().GetMaximumInterval() merge.go
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")
117 }
118 > if mergeInto.RetryPolicy == nil { merge.go
119 mergeInto.RetryPolicy = &commonpb.RetryPolicy{}
120 }
121 > mergeInto.RetryPolicy.MaximumAttempts = mergeFrom.GetRetryPolicy().GetMaximumAttempts() merge.go
122 }
123
124 > if _, ok := updateFields["startDelay"]; ok { merge.go
125 mergeInto.StartDelay = mergeFrom.GetStartDelay()
126 }
127
128 > return nil merge.go
129 }
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