From 34981c30a78e8bbd7791131059a9210f9928b62c Mon Sep 17 00:00:00 2001
From: 刘光辉 <347230014@qq.com>
Date: 星期四, 17 九月 2026 09:24:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into master
---
jnpf-dms/jnpf-dms-biz/src/test/java/jnpf/dmsMapper/DmsFilePermissionMapperSqlTest.java | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 59 insertions(+), 0 deletions(-)
diff --git a/jnpf-dms/jnpf-dms-biz/src/test/java/jnpf/dmsMapper/DmsFilePermissionMapperSqlTest.java b/jnpf-dms/jnpf-dms-biz/src/test/java/jnpf/dmsMapper/DmsFilePermissionMapperSqlTest.java
new file mode 100644
index 0000000..fd1291d
--- /dev/null
+++ b/jnpf-dms/jnpf-dms-biz/src/test/java/jnpf/dmsMapper/DmsFilePermissionMapperSqlTest.java
@@ -0,0 +1,59 @@
+package jnpf.dmsMapper;
+
+import jnpf.dmsDatabase.DmsUuidTypeHandler;
+import org.apache.ibatis.mapping.BoundSql;
+import org.apache.ibatis.mapping.MappedStatement;
+import org.apache.ibatis.session.Configuration;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+class DmsFilePermissionMapperSqlTest {
+ private Configuration configuration;
+
+ @BeforeEach
+ void setUp() {
+ configuration = new Configuration();
+ configuration.getTypeHandlerRegistry().register(UUID.class, DmsUuidTypeHandler.class);
+ configuration.addMapper(DmsFilePermissionMapper.class);
+ }
+
+ @Test
+ void rendersMixedActionsAndResourcesAsOneCandidateQuery() {
+ Map<String, Object> parameters = new HashMap<>();
+ parameters.put("tenantId", "tenant-1");
+ parameters.put("actionCodes", Arrays.asList("READ", "UPDATE"));
+ parameters.put("resourceIds", Arrays.asList(UUID.randomUUID(), UUID.randomUUID()));
+
+ String sql = sql("selectCandidates", parameters);
+
+ assertTrue(sql.startsWith("SELECT id, tenant_id"));
+ assertTrue(sql.contains("action_code IN ( ? , ? )"));
+ assertTrue(sql.contains("resource_id IN ( ? , ? )"));
+ assertEquals(1, occurrences(sql, "FROM public.dms_file_permissions"));
+ }
+
+ private String sql(String method, Map<String, Object> parameters) {
+ MappedStatement statement = configuration.getMappedStatement(
+ DmsFilePermissionMapper.class.getName() + "." + method);
+ BoundSql boundSql = statement.getBoundSql(parameters);
+ return boundSql.getSql().replaceAll("\\s+", " ").trim();
+ }
+
+ private int occurrences(String value, String token) {
+ int result = 0;
+ int offset = 0;
+ while ((offset = value.indexOf(token, offset)) >= 0) {
+ result++;
+ offset += token.length();
+ }
+ return result;
+ }
+}
--
Gitblit v1.8.0