package jnpf.dmsMapper; import org.apache.ibatis.mapping.MappedStatement; import org.apache.ibatis.session.Configuration; import org.junit.jupiter.api.Test; import java.util.HashMap; import java.util.Map; import static org.junit.jupiter.api.Assertions.assertTrue; class DmsPrintOperationLogMapperSqlTest { @Test void parentNameRequiresClosestMarkedAncestorOfEntryMenu() { Configuration configuration = new Configuration(); configuration.addMapper(DmsPrintOperationLogMapper.class); MappedStatement statement = configuration.getMappedStatement( DmsPrintOperationLogMapper.class.getName() + ".selectParentBizModuleName"); Map parameters = new HashMap<>(); parameters.put("menuId", "menu-1"); parameters.put("parentId", "parent-1"); String sql = statement.getBoundSql(parameters).getSql().replaceAll("\\s+", " "); assertTrue(sql.contains("WITH RECURSIVE ancestors")); assertTrue(sql.contains("parent.f_id = child.f_parent_id")); assertTrue(sql.contains("parent.f_system_id = child.f_system_id")); assertTrue(sql.contains("parent.f_category = child.f_category")); assertTrue(sql.contains("f_type = 1 AND f_is_parent_biz_module = 1")); assertTrue(sql.contains("f_id = ? AND depth = (SELECT MIN(depth)")); } }