fix methods

This commit is contained in:
Looly
2022-08-11 20:21:22 +08:00
parent 719b5a226d
commit 62e8deed90
8 changed files with 219 additions and 205 deletions

View File

@@ -9,6 +9,9 @@ import cn.hutool.core.map.MapUtil;
import cn.hutool.core.text.StrUtil;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import org.junit.Assert;
import org.junit.Test;
@@ -27,6 +30,7 @@ import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.SortedSet;
import java.util.function.Function;
/**
* 集合工具类单元测试
@@ -35,6 +39,21 @@ import java.util.SortedSet;
*/
public class CollUtilTest {
@Test
public void defaultIfEmpty() {
ArrayList<String> strings = CollUtil.defaultIfEmpty(ListUtil.of(), ListUtil.of("1"));
Assert.assertEquals(ListUtil.of("1"), strings);
strings = CollUtil.defaultIfEmpty(null, ListUtil.of("1"));
Assert.assertEquals(ListUtil.of("1"), strings);
}
@Test
public void defaultIfEmpty2() {
ArrayList<String> strings = CollUtil.defaultIfEmpty(ListUtil.of(), Function.identity(), () -> ListUtil.of("1"));
Assert.assertEquals(ListUtil.of("1"), strings);
}
@Test
public void testPredicateContains() {
final ArrayList<String> list = ListUtil.of("bbbbb", "aaaaa", "ccccc");
@@ -974,4 +993,39 @@ public class CollUtilTest {
final Collection<String> collection = CollUtil.intersectionDistinct(list1, list2, list3);
Assert.assertNotNull(collection);
}
@Test
public void addIfAbsentTest() {
// 为false的情况
Assert.assertFalse(CollUtil.addIfAbsent(null, null));
Assert.assertFalse(CollUtil.addIfAbsent(ListUtil.of(), null));
Assert.assertFalse(CollUtil.addIfAbsent(null, "123"));
Assert.assertFalse(CollUtil.addIfAbsent(ListUtil.of("123"), "123"));
Assert.assertFalse(CollUtil.addIfAbsent(ListUtil.of(new Animal("jack", 20)),
new Animal("jack", 20)));
// 正常情况
Assert.assertTrue(CollUtil.addIfAbsent(ListUtil.of("456"), "123"));
Assert.assertTrue(CollUtil.addIfAbsent(ListUtil.of(new Animal("jack", 20)),
new Dog("jack", 20)));
Assert.assertTrue(CollUtil.addIfAbsent(ListUtil.of(new Animal("jack", 20)),
new Animal("tom", 20)));
}
@Data
@AllArgsConstructor
@NoArgsConstructor
static class Animal {
private String name;
private Integer age;
}
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@Data
static class Dog extends Animal {
public Dog(String name, Integer age) {
super(name, age);
}
}
}

View File

@@ -1,9 +1,12 @@
package cn.hutool.core.text;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.CharsetUtil;
import org.junit.Assert;
import org.junit.Test;
import java.time.Instant;
import java.util.regex.Pattern;
public class CharSequenceUtilTest {
@@ -166,4 +169,30 @@ public class CharSequenceUtilTest {
final String a = "2142342422423423";
Assert.assertTrue(StrUtil.containsAll(a, "214", "234"));
}
@Test
public void defaultIfEmptyTest() {
final String emptyValue = "";
final Instant result1 = CharSequenceUtil.defaultIfEmpty(emptyValue,
(v) -> DateUtil.parse(v, DatePattern.NORM_DATETIME_PATTERN).toInstant(), Instant::now);
Assert.assertNotNull(result1);
final String dateStr = "2020-10-23 15:12:30";
final Instant result2 = CharSequenceUtil.defaultIfEmpty(dateStr,
(v) -> DateUtil.parse(v, DatePattern.NORM_DATETIME_PATTERN).toInstant(), Instant::now);
Assert.assertNotNull(result2);
}
@Test
public void defaultIfBlankTest() {
final String emptyValue = " ";
final Instant result1 = CharSequenceUtil.defaultIfBlank(emptyValue,
(v) -> DateUtil.parse(v, DatePattern.NORM_DATETIME_PATTERN).toInstant(), Instant::now);
Assert.assertNotNull(result1);
final String dateStr = "2020-10-23 15:12:30";
final Instant result2 = CharSequenceUtil.defaultIfBlank(dateStr,
(v) -> DateUtil.parse(v, DatePattern.NORM_DATETIME_PATTERN).toInstant(), Instant::now);
Assert.assertNotNull(result2);
}
}

View File

@@ -99,25 +99,14 @@ public class ObjUtilTest {
@Test
public void defaultIfNullTest() {
final String nullValue = null;
final String dateStr = "2020-10-23 15:12:30";
final Instant result1 = ObjUtil.defaultIfNull(dateStr,
() -> DateUtil.parse(dateStr, DatePattern.NORM_DATETIME_PATTERN).toInstant(), Instant.now());
(v) -> DateUtil.parse(v.toString(), DatePattern.NORM_DATETIME_PATTERN).toInstant(), Instant::now);
Assert.assertNotNull(result1);
final Instant result2 = ObjUtil.defaultIfNull(nullValue,
() -> DateUtil.parse(nullValue, DatePattern.NORM_DATETIME_PATTERN).toInstant(), Instant.now());
Assert.assertNotNull(result2);
}
@Test
public void defaultIfEmptyTest() {
final String emptyValue = "";
final String dateStr = "2020-10-23 15:12:30";
final Instant result1 = ObjUtil.defaultIfEmpty(emptyValue,
() -> DateUtil.parse(emptyValue, DatePattern.NORM_DATETIME_PATTERN).toInstant(), Instant.now());
Assert.assertNotNull(result1);
final Instant result2 = ObjUtil.defaultIfEmpty(dateStr,
() -> DateUtil.parse(dateStr, DatePattern.NORM_DATETIME_PATTERN).toInstant(), Instant.now());
final String nullValue = null;
final Instant result2 = ObjUtil.defaultIfNull(nullValue,
(v) -> DateUtil.parse(v.toString(), DatePattern.NORM_DATETIME_PATTERN).toInstant(), Instant::now);
Assert.assertNotNull(result2);
}