Skip to content

Commit 328f379

Browse files
authored
Add tests for invalid and edge cases in DurationValidator (#7287)
DurationValidator validates externally supplied duration configuration values. Existing tests cover only successful parsing scenarios. This change adds tests for several invalid and boundary inputs: - blank values - malformed duration strings - missing units - invalid units - invalid ISO8601 durations - null values These tests improve coverage of validation paths and help prevent regressions in configuration parsing. Signed-off-by: Joowon-Seo <tjwndnjs1998@gmail.com>
1 parent f7c95b6 commit 328f379

1 file changed

Lines changed: 32 additions & 0 deletions

File tree

micrometer-core/src/test/java/io/micrometer/core/instrument/config/DurationValidatorTest.java

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,36 @@ void parseIso8601Duration() {
5353
.isEqualByComparingTo(Duration.ofDays(2).plus(Duration.ofHours(3)).plus(Duration.ofMinutes(4)));
5454
}
5555

56+
@Test
57+
void blankValueIsInvalid() {
58+
assertThat(validate("dur", " ").isInvalid()).isTrue();
59+
assertThat(validate("dur", "").isInvalid()).isTrue();
60+
}
61+
62+
@Test
63+
void malformedDurationIsInvalid() {
64+
assertThat(validate("dur", "not-a-duration").isInvalid()).isTrue();
65+
}
66+
67+
@Test
68+
void missingUnitIsInvalid() {
69+
assertThat(validate("dur", "42").isInvalid()).isTrue();
70+
}
71+
72+
@Test
73+
void invalidUnitIsInvalid() {
74+
assertThat(validate("dur", "10xy").isInvalid()).isTrue();
75+
}
76+
77+
@Test
78+
void invalidIsoDurationIsInvalid() {
79+
assertThat(validate("dur", "PT10X").isInvalid()).isTrue();
80+
}
81+
82+
@Test
83+
void nullValueIsValid() {
84+
assertThat(validate("dur", null).isValid()).isTrue();
85+
assertThat(validate("dur", null).get()).isNull();
86+
}
87+
5688
}

0 commit comments

Comments
 (0)