Skip to content

Commit aa86d2a

Browse files
authored
Add test for StartChildWorkflowExecutionParameters (#940)
* Add test for StartChildWorkflowExecutionParameters * simplify one assert
1 parent 26d90e1 commit aa86d2a

File tree

1 file changed

+175
-0
lines changed

1 file changed

+175
-0
lines changed
Lines changed: 175 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,175 @@
1+
/**
2+
* Copyright 2012-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
3+
*
4+
* <p>Modifications copyright (C) 2017 Uber Technologies, Inc.
5+
*
6+
* <p>Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file
7+
* except in compliance with the License. A copy of the License is located at
8+
*
9+
* <p>http://aws.amazon.com/apache2.0
10+
*
11+
* <p>or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
13+
* specific language governing permissions and limitations under the License.
14+
*/
15+
package com.uber.cadence.internal.replay;
16+
17+
import static junit.framework.TestCase.assertEquals;
18+
import static junit.framework.TestCase.assertNotNull;
19+
import static junit.framework.TestCase.assertTrue;
20+
21+
import com.uber.cadence.ParentClosePolicy;
22+
import com.uber.cadence.WorkflowIdReusePolicy;
23+
import com.uber.cadence.WorkflowType;
24+
import com.uber.cadence.internal.common.RetryParameters;
25+
import java.util.HashMap;
26+
import java.util.Map;
27+
import org.junit.Test;
28+
29+
public class StartChildWorkflowExecutionParametersTest {
30+
31+
@Test
32+
public void testBuilderAndGetters() {
33+
String domain = "testDomain";
34+
String control = "testControl";
35+
long executionTimeout = 1000L;
36+
byte[] input = {1, 2, 3};
37+
String taskList = "testTaskList";
38+
long taskTimeout = 2000L;
39+
String workflowId = "testWorkflowId";
40+
WorkflowType workflowType = new WorkflowType().setName("testWorkflowType");
41+
WorkflowIdReusePolicy reusePolicy = WorkflowIdReusePolicy.AllowDuplicate;
42+
RetryParameters retryParameters = new RetryParameters();
43+
String cronSchedule = "* * * * *";
44+
Map<String, Object> memo = new HashMap<>();
45+
memo.put("key1", "value1");
46+
Map<String, Object> searchAttributes = new HashMap<>();
47+
searchAttributes.put("key2", "value2");
48+
Map<String, byte[]> context = new HashMap<>();
49+
context.put("key3", new byte[] {4, 5, 6});
50+
ParentClosePolicy closePolicy = ParentClosePolicy.TERMINATE;
51+
52+
StartChildWorkflowExecutionParameters parameters =
53+
new StartChildWorkflowExecutionParameters.Builder()
54+
.setDomain(domain)
55+
.setControl(control)
56+
.setExecutionStartToCloseTimeoutSeconds(executionTimeout)
57+
.setInput(input)
58+
.setTaskList(taskList)
59+
.setTaskStartToCloseTimeoutSeconds(taskTimeout)
60+
.setWorkflowId(workflowId)
61+
.setWorkflowType(workflowType)
62+
.setWorkflowIdReusePolicy(reusePolicy)
63+
.setRetryParameters(retryParameters)
64+
.setCronSchedule(cronSchedule)
65+
.setMemo(memo)
66+
.setSearchAttributes(searchAttributes)
67+
.setContext(context)
68+
.setParentClosePolicy(closePolicy)
69+
.build();
70+
71+
assertEquals(domain, parameters.getDomain());
72+
assertEquals(control, parameters.getControl());
73+
assertEquals(executionTimeout, parameters.getExecutionStartToCloseTimeoutSeconds());
74+
assertEquals(taskList, parameters.getTaskList());
75+
assertEquals(taskTimeout, parameters.getTaskStartToCloseTimeoutSeconds());
76+
assertEquals(workflowId, parameters.getWorkflowId());
77+
assertEquals(workflowType, parameters.getWorkflowType());
78+
assertEquals(reusePolicy, parameters.getWorkflowIdReusePolicy());
79+
assertEquals(retryParameters, parameters.getRetryParameters());
80+
assertEquals(cronSchedule, parameters.getCronSchedule());
81+
assertEquals(memo, parameters.getMemo());
82+
assertEquals(searchAttributes, parameters.getSearchAttributes());
83+
assertEquals(context, parameters.getContext());
84+
assertEquals(closePolicy, parameters.getParentClosePolicy());
85+
assertEquals(input, parameters.getInput());
86+
}
87+
88+
@Test
89+
public void testEqualsAndHashCode() {
90+
Map<String, Object> memo = new HashMap<>();
91+
memo.put("key1", "value1");
92+
93+
RetryParameters retryParameters = new RetryParameters();
94+
retryParameters.setInitialIntervalInSeconds(10);
95+
retryParameters.setBackoffCoefficient(2.0);
96+
retryParameters.setMaximumIntervalInSeconds(100);
97+
retryParameters.setMaximumAttempts(5);
98+
99+
String cronSchedule = "0 * * * *";
100+
101+
Map<String, Object> searchAttributes = new HashMap<>();
102+
searchAttributes.put("attrKey1", "attrValue1");
103+
104+
Map<String, byte[]> context = new HashMap<>();
105+
context.put("contextKey1", new byte[] {4, 5, 6});
106+
107+
StartChildWorkflowExecutionParameters parameters1 =
108+
new StartChildWorkflowExecutionParameters.Builder()
109+
.setDomain("domain1")
110+
.setControl("control1")
111+
.setExecutionStartToCloseTimeoutSeconds(1000L)
112+
.setInput(new byte[] {1, 2, 3})
113+
.setTaskList("taskList1")
114+
.setTaskStartToCloseTimeoutSeconds(2000L)
115+
.setWorkflowId("workflowId1")
116+
.setWorkflowType(new WorkflowType().setName("workflowType1"))
117+
.setWorkflowIdReusePolicy(WorkflowIdReusePolicy.AllowDuplicate)
118+
.setRetryParameters(retryParameters)
119+
.setCronSchedule(cronSchedule)
120+
.setMemo(memo)
121+
.setSearchAttributes(searchAttributes)
122+
.setContext(context)
123+
.setParentClosePolicy(ParentClosePolicy.TERMINATE)
124+
.build();
125+
126+
StartChildWorkflowExecutionParameters parameters2 =
127+
new StartChildWorkflowExecutionParameters.Builder()
128+
.setDomain("domain1")
129+
.setControl("control1")
130+
.setExecutionStartToCloseTimeoutSeconds(1000L)
131+
.setInput(new byte[] {1, 2, 3})
132+
.setTaskList("taskList1")
133+
.setTaskStartToCloseTimeoutSeconds(2000L)
134+
.setWorkflowId("workflowId1")
135+
.setWorkflowType(new WorkflowType().setName("workflowType1"))
136+
.setWorkflowIdReusePolicy(WorkflowIdReusePolicy.AllowDuplicate)
137+
.setRetryParameters(retryParameters)
138+
.setCronSchedule(cronSchedule)
139+
.setMemo(memo)
140+
.setSearchAttributes(searchAttributes)
141+
.setContext(context)
142+
.setParentClosePolicy(ParentClosePolicy.TERMINATE)
143+
.build();
144+
145+
assertEquals(parameters1, parameters2);
146+
assertEquals(parameters1.hashCode(), parameters2.hashCode());
147+
}
148+
149+
@Test
150+
public void testToString() {
151+
StartChildWorkflowExecutionParameters parameters =
152+
new StartChildWorkflowExecutionParameters.Builder()
153+
.setDomain("testDomain")
154+
.setControl("testControl")
155+
.setExecutionStartToCloseTimeoutSeconds(1000L)
156+
.setInput(new byte[] {1, 2, 3})
157+
.setTaskList("testTaskList")
158+
.setTaskStartToCloseTimeoutSeconds(2000L)
159+
.setWorkflowId("testWorkflowId")
160+
.setWorkflowType(new WorkflowType().setName("testWorkflowType"))
161+
.setWorkflowIdReusePolicy(WorkflowIdReusePolicy.AllowDuplicate)
162+
.setRetryParameters(new RetryParameters())
163+
.setCronSchedule("* * * * *")
164+
.setMemo(new HashMap<>())
165+
.setSearchAttributes(new HashMap<>())
166+
.setContext(new HashMap<>())
167+
.setParentClosePolicy(ParentClosePolicy.TERMINATE)
168+
.build();
169+
170+
assertNotNull(parameters.toString());
171+
assertTrue(parameters.toString().contains("testDomain"));
172+
assertTrue(parameters.toString().contains("testControl"));
173+
assertTrue(parameters.toString().contains("1000"));
174+
}
175+
}

0 commit comments

Comments
 (0)