|
27 | 27 | import static org.junit.Assert.assertEquals; |
28 | 28 | import static org.junit.Assert.assertThrows; |
29 | 29 |
|
30 | | -public class BytesSettingTest/* extends RubyTestBase*/ { |
| 30 | +public class BytesSettingTest { |
31 | 31 |
|
32 | 32 | @Test |
33 | 33 | public void givenValidStringDefaultValue_whenInstantiated_thenParsesCorrectly() { |
@@ -115,4 +115,29 @@ public void testCaseInsensitiveUnits() { |
115 | 115 | BytesSetting setting2 = new BytesSetting("test.bytes", "64mb"); |
116 | 116 | assertEquals(setting1.value(), setting2.value()); |
117 | 117 | } |
| 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 | + } |
118 | 143 | } |
0 commit comments