Improve DataSize to support negative values

Issue: SPR-17154
This commit is contained in:
Stephane Nicoll
2018-08-10 18:21:09 +02:00
parent aef39e8954
commit f931a3fb59
2 changed files with 81 additions and 7 deletions

View File

@@ -107,46 +107,111 @@ public class DataSizeTests {
assertEquals(DataSize.ofKiloBytes(1), DataSize.parse("1024"));
}
@Test
public void parseNegativeNumberWithDefaultUnitUsesBytes() {
assertEquals(DataSize.ofBytes(-1), DataSize.parse("-1"));
}
@Test
public void parseWithNullDefaultUnitUsesBytes() {
assertEquals(DataSize.ofKiloBytes(1), DataSize.parse("1024", null));
}
@Test
public void parseNegativeNumberWithNullDefaultUnitUsesBytes() {
assertEquals(DataSize.ofKiloBytes(-1), DataSize.parse("-1024", null));
}
@Test
public void parseWithCustomDefaultUnit() {
assertEquals(DataSize.ofKiloBytes(1), DataSize.parse("1", DataUnit.KILOBYTES));
}
@Test
public void parseNegativeNumberWithCustomDefaultUnit() {
assertEquals(DataSize.ofKiloBytes(-1), DataSize.parse("-1", DataUnit.KILOBYTES));
}
@Test
public void parseWithBytes() {
assertEquals(DataSize.ofKiloBytes(1), DataSize.parse("1024B"));
}
@Test
public void parseWithNegativeBytes() {
assertEquals(DataSize.ofKiloBytes(-1), DataSize.parse("-1024B"));
}
@Test
public void parseWithPostivieBytes() {
assertEquals(DataSize.ofKiloBytes(1), DataSize.parse("+1024B"));
}
@Test
public void parseWithKiloBytes() {
assertEquals(DataSize.ofBytes(1024), DataSize.parse("1KB"));
}
@Test
public void parseWithNegativeKiloBytes() {
assertEquals(DataSize.ofBytes(-1024), DataSize.parse("-1KB"));
}
@Test
public void parseWithMegaBytes() {
assertEquals(DataSize.ofMegaBytes(4), DataSize.parse("4MB"));
}
@Test
public void parseWithNegativeMegaBytes() {
assertEquals(DataSize.ofMegaBytes(-4), DataSize.parse("-4MB"));
}
@Test
public void parseWithGigaBytes() {
assertEquals(DataSize.ofMegaBytes(1024), DataSize.parse("1GB"));
}
@Test
public void parseWithNegativeGigaBytes() {
assertEquals(DataSize.ofMegaBytes(-1024), DataSize.parse("-1GB"));
}
@Test
public void parseWithTeraBytes() {
assertEquals(DataSize.ofTeraBytes(1), DataSize.parse("1TB"));
}
@Test
public void parseWithNegativeTeraBytes() {
assertEquals(DataSize.ofTeraBytes(-1), DataSize.parse("-1TB"));
}
@Test
public void isNegativeWithPositive() {
assertFalse(DataSize.ofBytes(50).isNegative());
}
@Test
public void isNegativeWithZero() {
assertFalse(DataSize.ofBytes(0).isNegative());
}
@Test
public void isNegativeWithNegative() {
assertTrue(DataSize.ofBytes(-1).isNegative());
}
@Test
public void toStringUsesBytes() {
assertEquals("1024B", DataSize.ofKiloBytes(1).toString());
}
@Test
public void toStringWithNegativeBytes() {
assertEquals("-1024B", DataSize.ofKiloBytes(-1).toString());
}
@Test
public void parseWithUnsupportedUnit() {
this.thrown.expect(IllegalArgumentException.class);