diff --git a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/listener/missionListenerFix/AccountAgeInsertListener.java b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/listener/missingListenerFix/AccountAgeInsertListener.java similarity index 86% rename from mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/listener/missionListenerFix/AccountAgeInsertListener.java rename to mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/listener/missingListenerFix/AccountAgeInsertListener.java index f1be67b4..9f7665b8 100644 --- a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/listener/missionListenerFix/AccountAgeInsertListener.java +++ b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/listener/missingListenerFix/AccountAgeInsertListener.java @@ -1,4 +1,4 @@ -package com.mybatisflex.test.listener.missionListenerFix; +package com.mybatisflex.test.listener.missingListenerFix; import com.mybatisflex.annotation.InsertListener; import com.mybatisflex.test.model.AccountMissingListenerTestModel; diff --git a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/listener/missingListenerFix/AccountAgeInsertListenerFlag.java b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/listener/missingListenerFix/AccountAgeInsertListenerFlag.java new file mode 100644 index 00000000..beafa880 --- /dev/null +++ b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/listener/missingListenerFix/AccountAgeInsertListenerFlag.java @@ -0,0 +1,5 @@ +package com.mybatisflex.test.listener.missingListenerFix; + +public interface AccountAgeInsertListenerFlag { + +} diff --git a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/listener/missionListenerFix/AccountTableAnnoInsertListener.java b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/listener/missingListenerFix/AccountTableAnnoInsertListener.java similarity index 87% rename from mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/listener/missionListenerFix/AccountTableAnnoInsertListener.java rename to mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/listener/missingListenerFix/AccountTableAnnoInsertListener.java index 211c956f..de80c242 100644 --- a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/listener/missionListenerFix/AccountTableAnnoInsertListener.java +++ b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/listener/missingListenerFix/AccountTableAnnoInsertListener.java @@ -1,4 +1,4 @@ -package com.mybatisflex.test.listener.missionListenerFix; +package com.mybatisflex.test.listener.missingListenerFix; import com.mybatisflex.annotation.InsertListener; import com.mybatisflex.test.model.AccountMissingListenerTestModel; diff --git a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/listener/missionListenerFix/BaseLogicDelete.java b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/listener/missingListenerFix/BaseLogicDelete.java similarity index 84% rename from mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/listener/missionListenerFix/BaseLogicDelete.java rename to mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/listener/missingListenerFix/BaseLogicDelete.java index edbe1775..0a63b4cf 100644 --- a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/listener/missionListenerFix/BaseLogicDelete.java +++ b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/listener/missingListenerFix/BaseLogicDelete.java @@ -1,4 +1,4 @@ -package com.mybatisflex.test.listener.missionListenerFix; +package com.mybatisflex.test.listener.missingListenerFix; import com.mybatisflex.annotation.Column; diff --git a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/listener/missionListenerFix/LogicDeleteInsertListener.java b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/listener/missingListenerFix/LogicDeleteInsertListener.java similarity index 83% rename from mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/listener/missionListenerFix/LogicDeleteInsertListener.java rename to mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/listener/missingListenerFix/LogicDeleteInsertListener.java index 8ea4f327..513576e1 100644 --- a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/listener/missionListenerFix/LogicDeleteInsertListener.java +++ b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/listener/missingListenerFix/LogicDeleteInsertListener.java @@ -1,4 +1,4 @@ -package com.mybatisflex.test.listener.missionListenerFix; +package com.mybatisflex.test.listener.missingListenerFix; import com.mybatisflex.annotation.InsertListener; diff --git a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/listener/missingListenerFix/LogicDeleteInsertListenerFlag.java b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/listener/missingListenerFix/LogicDeleteInsertListenerFlag.java new file mode 100644 index 00000000..b7f2bb98 --- /dev/null +++ b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/listener/missingListenerFix/LogicDeleteInsertListenerFlag.java @@ -0,0 +1,5 @@ +package com.mybatisflex.test.listener.missingListenerFix; + +public interface LogicDeleteInsertListenerFlag { + +} diff --git a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/listener/missionListenerFix/AccountAgeInsertListenerFlag.java b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/listener/missionListenerFix/AccountAgeInsertListenerFlag.java deleted file mode 100644 index 3ad58d0a..00000000 --- a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/listener/missionListenerFix/AccountAgeInsertListenerFlag.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.mybatisflex.test.listener.missionListenerFix; - -public interface AccountAgeInsertListenerFlag { - -} diff --git a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/listener/missionListenerFix/LogicDeleteInsertListenerFlag.java b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/listener/missionListenerFix/LogicDeleteInsertListenerFlag.java deleted file mode 100644 index 48e1a2a5..00000000 --- a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/listener/missionListenerFix/LogicDeleteInsertListenerFlag.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.mybatisflex.test.listener.missionListenerFix; - -public interface LogicDeleteInsertListenerFlag { - -} diff --git a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/model/AccountMissingListenerTestModel.java b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/model/AccountMissingListenerTestModel.java index 12c48bee..a17ef6ba 100644 --- a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/model/AccountMissingListenerTestModel.java +++ b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/model/AccountMissingListenerTestModel.java @@ -1,7 +1,11 @@ package com.mybatisflex.test.model; import com.mybatisflex.annotation.*; -import com.mybatisflex.test.listener.missionListenerFix.*; +import com.mybatisflex.test.listener.missingListenerFix.AccountAgeInsertListenerFlag; +import com.mybatisflex.test.listener.missingListenerFix.AccountTableAnnoInsertListener; +import com.mybatisflex.test.listener.missingListenerFix.BaseLogicDelete; + +import java.util.Objects; /** * 缺失的监听器测试 @@ -46,6 +50,28 @@ public class AccountMissingListenerTestModel extends BaseLogicDelete implements this.age = age; } + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + AccountMissingListenerTestModel that = (AccountMissingListenerTestModel) o; + return Objects.equals(id, that.id) && Objects.equals(userName, that.userName) && Objects.equals(age, that.age) && Objects.equals(getDelete(), that.getDelete()); + } + + @Override + public int hashCode() { + return Objects.hash(id, userName, age, getDelete()); + } + + @Override + public String toString() { + return "AccountMissingListenerTestModel{" + + "id=" + id + + ", userName='" + userName + '\'' + + ", age=" + age + + ", isDelete=" + getDelete() + + '}'; + } } diff --git a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/test/java/com/mybatisflex/test/common/ListenerTest.java b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/test/java/com/mybatisflex/test/common/ListenerTest.java index f2d3338a..028128a6 100644 --- a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/test/java/com/mybatisflex/test/common/ListenerTest.java +++ b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/test/java/com/mybatisflex/test/common/ListenerTest.java @@ -3,16 +3,14 @@ package com.mybatisflex.test.common; import com.mybatisflex.annotation.InsertListener; import com.mybatisflex.core.BaseMapper; import com.mybatisflex.core.FlexGlobalConfig; -import com.mybatisflex.core.exception.FlexAssert; -import com.mybatisflex.core.exception.FlexExceptions; -import com.mybatisflex.core.exception.locale.LocalizedFormats; import com.mybatisflex.core.mybatis.Mappers; import com.mybatisflex.core.table.TableInfo; import com.mybatisflex.core.table.TableInfoFactory; import com.mybatisflex.core.util.CollectionUtil; -import com.mybatisflex.test.listener.missionListenerFix.*; +import com.mybatisflex.test.listener.missingListenerFix.*; import com.mybatisflex.test.model.AccountMissingListenerTestModel; import org.apache.ibatis.util.MapUtil; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; @@ -45,7 +43,6 @@ class ListenerTest { TableInfo tableInfo = TableInfoFactory.ofEntityClass(AccountMissingListenerTestModel.class); //执行测试 ===> Listener列表比对 - Map, List> tempOnInsertListenerMap = new ConcurrentHashMap<>();//替代原本的缓存Map List insertListeners = MapUtil.computeIfAbsent(tempOnInsertListenerMap, AccountMissingListenerTestModel.class, aClass -> { @@ -56,29 +53,35 @@ class ListenerTest { return allListeners; }); - List> resolvedInsertListeners = insertListeners.stream().map(insertListener -> insertListener.getClass()).collect(Collectors.toList()); - for (Class clazz : CollectionUtil.newArrayList(LogicDeleteInsertListener.class, AccountAgeInsertListener.class, AccountTableAnnoInsertListener.class)) { - if (!resolvedInsertListeners.contains(clazz)) { - throw FlexExceptions.wrap("缺失的InsertListener【%s】", clazz.getSimpleName()); - } - } + List> resolvedInsertListeners = insertListeners.stream().map(InsertListener::getClass).collect(Collectors.toList()); + List> expectedInsertListeners = CollectionUtil.newArrayList(LogicDeleteInsertListener.class, AccountAgeInsertListener.class, AccountTableAnnoInsertListener.class); + + Assertions.assertTrue( + () -> { + for (Class clazz : expectedInsertListeners) { + if (!resolvedInsertListeners.contains(clazz)) { + return false; + } + } + return true; + }, + String.format("InsertListener与预期结果不一致\n预期Listener列表:%s\n实际Listener列表:%s", expectedInsertListeners, resolvedInsertListeners) + ); //执行测试 ===> 插入结果比对 BaseMapper baseMapper = Mappers.ofEntityClass(accountMissingListenerTestModel.getClass()); baseMapper.insert(accountMissingListenerTestModel); + //实际执行结果 AccountMissingListenerTestModel dbData = (AccountMissingListenerTestModel) baseMapper.selectOneById(accountMissingListenerTestModel.getId()); - if (dbData.getDelete() == null || dbData.getDelete() != false) { - throw FlexExceptions.wrap("缺失的InsertListener【%s】", LogicDeleteInsertListener.class.getSimpleName()); - } + //预期数据 + AccountMissingListenerTestModel expectedData = new AccountMissingListenerTestModel(); + expectedData.setId(dbData.getId()); + expectedData.setUserName("测试缺失的监听器-userName"); + expectedData.setAge(18); + expectedData.setDelete(false); - if (dbData.getAge() == null || dbData.getAge() != 18) { - throw FlexExceptions.wrap("缺失的InsertListener【%s】", AccountAgeInsertListener.class.getSimpleName()); - } - - if (dbData.getUserName() == null || !dbData.getUserName().equals("测试缺失的监听器-userName")) { - throw FlexExceptions.wrap("缺失的InsertListener【%s】", AccountTableAnnoInsertListener.class.getSimpleName()); - } + Assertions.assertEquals(expectedData, dbData); } }