Skip to content

Commit 6aa8dad

Browse files
committed
Implemented validate() method and covered with tests
1 parent 4f45b64 commit 6aa8dad

File tree

2 files changed

+32
-2
lines changed

2 files changed

+32
-2
lines changed

logstash-core/src/main/java/org/logstash/settings/BytesSetting.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,5 +83,10 @@ public Number coerce(Object obj) {
8383
return coerceToNumber(obj);
8484
}
8585

86-
// TODO missed validate redefinition
86+
@Override
87+
public void validate(Number input) throws IllegalArgumentException {
88+
if (!isValid(input)) {
89+
throw new IllegalArgumentException("Invalid byte value \"" + input + "\".");
90+
}
91+
}
8792
}

logstash-core/src/test/java/org/logstash/settings/BytesSettingTest.java

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
import static org.junit.Assert.assertEquals;
2828
import static org.junit.Assert.assertThrows;
2929

30-
public class BytesSettingTest/* extends RubyTestBase*/ {
30+
public class BytesSettingTest {
3131

3232
@Test
3333
public void givenValidStringDefaultValue_whenInstantiated_thenParsesCorrectly() {
@@ -115,4 +115,29 @@ public void testCaseInsensitiveUnits() {
115115
BytesSetting setting2 = new BytesSetting("test.bytes", "64mb");
116116
assertEquals(setting1.value(), setting2.value());
117117
}
118+
119+
@Test
120+
public void givenValidInputNumberValidateSucceed() {
121+
BytesSetting setting = new BytesSetting("test.bytes", "1mb");
122+
// Should not throw - validation passes for positive values
123+
setting.validate(1024L);
124+
}
125+
126+
@Test
127+
public void givenNullInputValidateThrowsWithSpecificMessage() {
128+
BytesSetting setting = new BytesSetting("test.bytes", "1mb");
129+
IllegalArgumentException ex = assertThrows(IllegalArgumentException.class, () -> {
130+
setting.validate(null);
131+
});
132+
assertThat(ex.getMessage()).isEqualTo("Invalid byte value \"null\".");
133+
}
134+
135+
@Test
136+
public void givenNegativeNumberThenValidateThrowsWithSpecificMessage() {
137+
BytesSetting setting = new BytesSetting("test.bytes", "1mb");
138+
IllegalArgumentException ex = assertThrows(IllegalArgumentException.class, () -> {
139+
setting.validate(-100L);
140+
});
141+
assertThat(ex.getMessage()).isEqualTo("Invalid byte value \"-100\".");
142+
}
118143
}

0 commit comments

Comments
 (0)