package net.formio.validation.constraints;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import org.junit.Test;
/**
* @author Karel Stefan
*/
public class MaxFileSizeTest {
@Test
public void testMaxFileSize() {
long b = 1024L;
assertFalse("should not be valid", MaxFileSizeValidation.isValid(30, "11B"));
assertFalse("should not be valid", MaxFileSizeValidation.isValid(11 * b + 1, "11KB"));
assertFalse("should not be valid", MaxFileSizeValidation.isValid(11 * b * b + 1, "11MB"));
assertFalse("should not be valid", MaxFileSizeValidation.isValid(11 * b * b * b + 1, "11GB"));
assertTrue("should be valid", MaxFileSizeValidation.isValid(10, "11.2B"));
assertTrue("should be valid", MaxFileSizeValidation.isValid(10 * b, "11.23KB"));
assertTrue("should be valid", MaxFileSizeValidation.isValid(15, "11.23MB"));
assertTrue("should be valid", MaxFileSizeValidation.isValid(0, "11GB"));
assertTrue("should be valid", MaxFileSizeValidation.isValid(5 * b, "5KB"));
assertTrue("should be valid", MaxFileSizeValidation.isValid(1, "1B"));
assertParseException(213, "");
assertParseException(213, null);
assertParseException(213, "fdf");
assertParseException(213, "1");
assertParseException(213, "1.2");
assertParseException(213, "1.2GBx");
}
private void assertParseException(long fileSize, String maxFileSize) {
try {
MaxFileSizeValidation.isValid(fileSize, maxFileSize);
fail("should throw parse exception");
} catch (IllegalArgumentException e) {
// ignored
}
}
}