!747 Validator工具类增加4个验证方法

Merge pull request !747 from hellozrh/v6-dev
This commit is contained in:
Looly
2022-08-09 13:45:42 +00:00
committed by Gitee
2 changed files with 111 additions and 0 deletions

View File

@@ -1,11 +1,16 @@
package cn.hutool.core.lang;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.exceptions.ValidateException;
import cn.hutool.core.lang.id.IdUtil;
import cn.hutool.core.regex.PatternPool;
import cn.hutool.core.text.StrUtil;
import cn.hutool.core.util.CharsetUtil;
import org.junit.Assert;
import org.junit.Test;
import java.util.Date;
/**
* 验证器单元测试
*
@@ -248,6 +253,44 @@ public class ValidatorTest {
Assert.assertTrue(Validator.isMatchRegex(PatternPool.URL_HTTP, content));
}
@Test
public void validateBetweenTest(){
Date value = DateUtil.parse("2022-08-09 21:22:00");
final Date start = DateUtil.parse("2022-08-01 21:22:00");
final Date end = DateUtil.parse("2022-09-09 21:22:00");
Validator.validateBetween(value, start, end, "您选择的日期超出规定范围!");
Assert.assertTrue(true);
final Date value2 = DateUtil.parse("2023-08-09 21:22:00");
Assert.assertThrows(ValidateException.class, ()->
Validator.validateBetween(value2, start, end, "您选择的日期超出规定范围!")
);
}
@Test
public void validateLengthTest() {
String s1 = "abc";
Assert.assertThrows(ValidateException.class, ()->
Validator.validateLength(s1, 6, 8, "请输入6到8位的字符"));
}
@Test
public void validateByteLengthTest() {
String s1 = "abc";
int len1 = StrUtil.byteLength(s1, CharsetUtil.UTF_8);
Assert.assertEquals(len1, 3);
String s2 = "我ab";
int len2 = StrUtil.byteLength(s2, CharsetUtil.UTF_8);
Assert.assertEquals(len2, 5);
//一个汉字在utf-8编码下占3个字节。
Assert.assertThrows(ValidateException.class, ()->
Validator.validateByteLength(s2, 1, 3, "您输入的字符串长度超出限制!")
);
}
@Test
public void isChineseNameTest(){
Assert.assertTrue(Validator.isChineseName("阿卜杜尼亚孜·毛力尼亚孜"));