Atlas › Test

Top-level_fields_with_snake_case

Exact test identity: go.temporal.io/server/common/activityoptions/TestMergeActivityOptionsAcceptance/Top-level_fields_with_snake_case

Package
go.temporal.io/server/common/activityoptions
Suite / test hierarchy
TestMergeActivityOptionsAcceptance/Top-level_fields_with_snake_case
Test
Top-level_fields_with_snake_case
Introduced at
Top-level_fields_with_snake_case Frontier kind: Test frontier
Covered ranges
36
Covered lines
61
Covered files
2

Covered source

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

go.temporal.io/server/common/activityoptions/merge.go 33 covered LOC · 27 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")
19 }
20 > if mergeInto.TaskQueue == nil { merge.go
21 > mergeInto.TaskQueue = mergeFrom.GetTaskQueue() merge.go
22 > } else { merge.go
23 mergeInto.TaskQueue.Name = mergeFrom.GetTaskQueue().GetName()
24 }
25 }
26
27 > if _, ok := updateFields["scheduleToCloseTimeout"]; ok { merge.go
28 > mergeInto.ScheduleToCloseTimeout = mergeFrom.GetScheduleToCloseTimeout() merge.go
29 > }
30
31 > if _, ok := updateFields["scheduleToStartTimeout"]; ok { merge.go
32 > mergeInto.ScheduleToStartTimeout = mergeFrom.GetScheduleToStartTimeout() merge.go
33 > }
34
35 > if _, ok := updateFields["startToCloseTimeout"]; ok { merge.go
36 > mergeInto.StartToCloseTimeout = mergeFrom.GetStartToCloseTimeout() merge.go
37 > }
38
39 > if _, ok := updateFields["heartbeatTimeout"]; ok { merge.go
40 > mergeInto.HeartbeatTimeout = mergeFrom.GetHeartbeatTimeout() merge.go
41 > }
42
43 > if _, ok := updateFields["priority"]; ok { merge.go
44 > mergeInto.Priority = mergeFrom.GetPriority() merge.go
45 > }
46
47 > if _, ok := updateFields["priority.priorityKey"]; ok { merge.go
48 if mergeFrom.GetPriority() == nil {
49 return serviceerror.NewInvalidArgument("Priority is not provided")
55 }
56
57 > if _, ok := updateFields["priority.fairnessKey"]; ok { merge.go
58 if mergeFrom.GetPriority() == nil {
59 return serviceerror.NewInvalidArgument("Priority is not provided")
65 }
66
67 > if _, ok := updateFields["priority.fairnessWeight"]; ok { merge.go
68 if mergeFrom.GetPriority() == nil {
69 return serviceerror.NewInvalidArgument("Priority is not provided")
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")
80 }
81 > mergeInto.RetryPolicy = mergeFrom.GetRetryPolicy() merge.go
82 }
83
84 > if _, ok := updateFields["retryPolicy.initialInterval"]; ok { merge.go
85 if mergeFrom.GetRetryPolicy() == nil {
86 return serviceerror.NewInvalidArgument("RetryPolicy is not provided")
92 }
93
94 > if _, ok := updateFields["retryPolicy.backoffCoefficient"]; ok { merge.go
95 if mergeFrom.GetRetryPolicy() == nil {
96 return serviceerror.NewInvalidArgument("RetryPolicy is not provided")
102 }
103
104 > if _, ok := updateFields["retryPolicy.maximumInterval"]; ok { merge.go
105 if mergeFrom.GetRetryPolicy() == nil {
106 return serviceerror.NewInvalidArgument("RetryPolicy is not provided")
112 }
113
114 > if _, ok := updateFields["retryPolicy.maximumAttempts"]; ok { merge.go
115 if mergeFrom.GetRetryPolicy() == nil {
116 return serviceerror.NewInvalidArgument("RetryPolicy is not provided")
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