Skip to content

Commit f2a1ac3

Browse files
committed
add unit tests
1 parent 4a03c93 commit f2a1ac3

1 file changed

Lines changed: 190 additions & 0 deletions

File tree

Lines changed: 190 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,190 @@
1+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2+
// SPDX-License-Identifier: Apache-2.0
3+
package software.amazon.lambda.durable;
4+
5+
import static org.junit.jupiter.api.Assertions.assertEquals;
6+
import static org.junit.jupiter.api.Assertions.assertNotNull;
7+
import static org.junit.jupiter.api.Assertions.assertNull;
8+
9+
import java.time.Duration;
10+
import org.junit.jupiter.api.Test;
11+
import software.amazon.lambda.durable.retry.RetryStrategies;
12+
import software.amazon.lambda.durable.serde.JacksonSerDes;
13+
14+
class WaitForCallbackConfigTest {
15+
16+
@Test
17+
void testBuilderWithDefaultValues() {
18+
var config = WaitForCallbackConfig.builder().build();
19+
20+
assertNotNull(config.stepConfig());
21+
assertNotNull(config.callbackConfig());
22+
}
23+
24+
@Test
25+
void testBuilderWithCustomStepConfig() {
26+
var stepConfig = StepConfig.builder()
27+
.retryStrategy(RetryStrategies.Presets.NO_RETRY)
28+
.build();
29+
30+
var config = WaitForCallbackConfig.builder().stepConfig(stepConfig).build();
31+
32+
assertEquals(stepConfig, config.stepConfig());
33+
assertNotNull(config.callbackConfig());
34+
}
35+
36+
@Test
37+
void testBuilderWithCustomCallbackConfig() {
38+
var callbackConfig =
39+
CallbackConfig.builder().timeout(Duration.ofMinutes(10)).build();
40+
41+
var config =
42+
WaitForCallbackConfig.builder().callbackConfig(callbackConfig).build();
43+
44+
assertNotNull(config.stepConfig());
45+
assertEquals(callbackConfig, config.callbackConfig());
46+
}
47+
48+
@Test
49+
void testBuilderWithBothConfigs() {
50+
var stepConfig = StepConfig.builder()
51+
.retryStrategy(RetryStrategies.Presets.DEFAULT)
52+
.semantics(StepSemantics.AT_MOST_ONCE_PER_RETRY)
53+
.build();
54+
var callbackConfig = CallbackConfig.builder()
55+
.timeout(Duration.ofMinutes(5))
56+
.heartbeatTimeout(Duration.ofSeconds(30))
57+
.build();
58+
59+
var config = WaitForCallbackConfig.builder()
60+
.stepConfig(stepConfig)
61+
.callbackConfig(callbackConfig)
62+
.build();
63+
64+
assertEquals(stepConfig, config.stepConfig());
65+
assertEquals(callbackConfig, config.callbackConfig());
66+
}
67+
68+
@Test
69+
void testBuilderWithNullStepConfig() {
70+
var config = WaitForCallbackConfig.builder().stepConfig(null).build();
71+
72+
assertNotNull(config.stepConfig());
73+
assertNotNull(config.callbackConfig());
74+
}
75+
76+
@Test
77+
void testBuilderWithNullCallbackConfig() {
78+
var config = WaitForCallbackConfig.builder().callbackConfig(null).build();
79+
80+
assertNotNull(config.stepConfig());
81+
assertNotNull(config.callbackConfig());
82+
}
83+
84+
@Test
85+
void testBuilderChaining() {
86+
var stepConfig = StepConfig.builder()
87+
.retryStrategy(RetryStrategies.Presets.DEFAULT)
88+
.build();
89+
var callbackConfig =
90+
CallbackConfig.builder().timeout(Duration.ofMinutes(15)).build();
91+
92+
var config = WaitForCallbackConfig.builder()
93+
.stepConfig(stepConfig)
94+
.callbackConfig(callbackConfig)
95+
.build();
96+
97+
assertEquals(stepConfig, config.stepConfig());
98+
assertEquals(callbackConfig, config.callbackConfig());
99+
}
100+
101+
@Test
102+
void testToBuilder() {
103+
var stepConfig = StepConfig.builder()
104+
.retryStrategy(RetryStrategies.Presets.NO_RETRY)
105+
.build();
106+
var callbackConfig =
107+
CallbackConfig.builder().timeout(Duration.ofMinutes(20)).build();
108+
109+
var originalConfig = WaitForCallbackConfig.builder()
110+
.stepConfig(stepConfig)
111+
.callbackConfig(callbackConfig)
112+
.build();
113+
114+
var newConfig = originalConfig.toBuilder().build();
115+
116+
assertEquals(originalConfig.stepConfig(), newConfig.stepConfig());
117+
assertEquals(originalConfig.callbackConfig(), newConfig.callbackConfig());
118+
}
119+
120+
@Test
121+
void testToBuilderWithModifications() {
122+
var originalStepConfig = StepConfig.builder()
123+
.retryStrategy(RetryStrategies.Presets.DEFAULT)
124+
.build();
125+
var originalCallbackConfig =
126+
CallbackConfig.builder().timeout(Duration.ofMinutes(5)).build();
127+
128+
var originalConfig = WaitForCallbackConfig.builder()
129+
.stepConfig(originalStepConfig)
130+
.callbackConfig(originalCallbackConfig)
131+
.build();
132+
133+
var newStepConfig = StepConfig.builder()
134+
.retryStrategy(RetryStrategies.Presets.NO_RETRY)
135+
.build();
136+
137+
var modifiedConfig =
138+
originalConfig.toBuilder().stepConfig(newStepConfig).build();
139+
140+
assertEquals(newStepConfig, modifiedConfig.stepConfig());
141+
assertEquals(originalCallbackConfig, modifiedConfig.callbackConfig());
142+
}
143+
144+
@Test
145+
void testBuilderWithAllOptions() {
146+
var customSerDes = new JacksonSerDes();
147+
var stepConfig = StepConfig.builder()
148+
.retryStrategy(RetryStrategies.Presets.DEFAULT)
149+
.semantics(StepSemantics.AT_MOST_ONCE_PER_RETRY)
150+
.serDes(customSerDes)
151+
.build();
152+
var callbackConfig = CallbackConfig.builder()
153+
.timeout(Duration.ofMinutes(10))
154+
.heartbeatTimeout(Duration.ofMinutes(2))
155+
.serDes(customSerDes)
156+
.build();
157+
158+
var config = WaitForCallbackConfig.builder()
159+
.stepConfig(stepConfig)
160+
.callbackConfig(callbackConfig)
161+
.build();
162+
163+
assertEquals(stepConfig, config.stepConfig());
164+
assertEquals(callbackConfig, config.callbackConfig());
165+
assertEquals(RetryStrategies.Presets.DEFAULT, config.stepConfig().retryStrategy());
166+
assertEquals(StepSemantics.AT_MOST_ONCE_PER_RETRY, config.stepConfig().semantics());
167+
assertEquals(Duration.ofMinutes(10), config.callbackConfig().timeout());
168+
assertEquals(Duration.ofMinutes(2), config.callbackConfig().heartbeatTimeout());
169+
}
170+
171+
@Test
172+
void testStepConfigDefaultsWhenNull() {
173+
var config = WaitForCallbackConfig.builder().stepConfig(null).build();
174+
175+
assertNotNull(config.stepConfig());
176+
assertEquals(RetryStrategies.Presets.DEFAULT, config.stepConfig().retryStrategy());
177+
assertEquals(StepSemantics.AT_LEAST_ONCE_PER_RETRY, config.stepConfig().semantics());
178+
assertNull(config.stepConfig().serDes());
179+
}
180+
181+
@Test
182+
void testCallbackConfigDefaultsWhenNull() {
183+
var config = WaitForCallbackConfig.builder().callbackConfig(null).build();
184+
185+
assertNotNull(config.callbackConfig());
186+
assertNull(config.callbackConfig().timeout());
187+
assertNull(config.callbackConfig().heartbeatTimeout());
188+
assertNull(config.callbackConfig().serDes());
189+
}
190+
}

0 commit comments

Comments
 (0)