Skip to content

Commit 7b06dc6

Browse files
committed
test: add test for addDimension exception
1 parent 08a05b1 commit 7b06dc6

2 files changed

Lines changed: 27 additions & 1 deletion

File tree

src/main/java/uk/gov/di/ipv/cri/common/library/util/EventProbe.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ public EventProbe addJourneyIdToLoggingContext(String journeyId) {
8787

8888
public void addDimensions(Map<String, String> dimensions) {
8989
if (dimensions != null) {
90-
DimensionSet dimensionSet = new DimensionSet();
90+
DimensionSet dimensionSet = newDimensionSet();
9191
dimensions.forEach(
9292
(key, value) -> {
9393
try {
@@ -165,4 +165,8 @@ private static String removePrefixedColons(String value) {
165165
private static boolean isAsciiPrintable(final char ch) {
166166
return ch >= 32 && ch < 127;
167167
}
168+
169+
public DimensionSet newDimensionSet() {
170+
return new DimensionSet();
171+
}
168172
}

src/test/java/uk/gov/di/ipv/cri/common/library/util/EventProbeTest.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,12 @@
3030
import static org.junit.jupiter.api.Assertions.assertSame;
3131
import static org.junit.jupiter.api.Assertions.assertTrue;
3232
import static org.mockito.ArgumentMatchers.any;
33+
import static org.mockito.ArgumentMatchers.anyString;
34+
import static org.mockito.Mockito.doReturn;
3335
import static org.mockito.Mockito.doThrow;
36+
import static org.mockito.Mockito.mock;
3437
import static org.mockito.Mockito.never;
38+
import static org.mockito.Mockito.spy;
3539
import static org.mockito.Mockito.verify;
3640

3741
@ExtendWith(MockitoExtension.class)
@@ -263,4 +267,22 @@ void counterMetricWithValueHandlesExceptionGracefully() {
263267
verify(mockMetrics).addMetric("bad-metric-2", 42d);
264268
assertSame(eventProbe, result);
265269
}
270+
271+
@Test
272+
void addDimensionsHandlesExceptionsGracefully() {
273+
DimensionSet mockSet = mock(DimensionSet.class);
274+
275+
doThrow(new RuntimeException("error")).when(mockSet).addDimension(anyString(), anyString());
276+
277+
EventProbe spyProbe = spy(new EventProbe(mockMetrics));
278+
doReturn(mockSet).when(spyProbe).newDimensionSet();
279+
280+
doThrow(new RuntimeException("error"))
281+
.when(mockMetrics)
282+
.addDimension(any(DimensionSet.class));
283+
284+
assertDoesNotThrow(() -> spyProbe.addDimensions(Map.of("bad Key", "bad Value")));
285+
286+
verify(mockMetrics).addDimension(mockSet);
287+
}
266288
}

0 commit comments

Comments
 (0)