Ver Fonte

test: job 租户单元测试

gaibu há 2 anos atrás
pai
commit
b54c5eaa45

+ 2 - 2
yudao-framework/yudao-spring-boot-starter-biz-tenant/pom.xml

@@ -52,8 +52,8 @@
 
         <!-- Test 测试相关 -->
         <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-test</artifactId>
+            <groupId>cn.iocoder.boot</groupId>
+            <artifactId>yudao-spring-boot-starter-test</artifactId>
             <scope>test</scope>
         </dependency>
 

+ 39 - 0
yudao-framework/yudao-spring-boot-starter-biz-tenant/src/test/java/cn/iocoder/yudao/framework/tenant/core/job/TenantJobTest.java

@@ -0,0 +1,39 @@
+package cn.iocoder.yudao.framework.tenant.core.job;
+
+import cn.iocoder.yudao.framework.tenant.core.service.TenantFrameworkService;
+import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest;
+import com.google.common.collect.Lists;
+import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
+import org.mockito.Spy;
+
+import java.util.List;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+/**
+ * 验证 job 租户逻辑
+ * {@link TenantJobHandlerDecorator}
+ *
+ * @author gaibu
+ */
+public class TenantJobTest extends BaseMockitoUnitTest {
+    @Spy
+    TenantFrameworkService tenantFrameworkService;
+
+    @Test
+    public void test() throws Exception {
+        // 准备测试租户 id
+        List<Long> tenantIds = Lists.newArrayList(1L, 2L, 3L);
+        // mock 数据
+        Mockito.doReturn(tenantIds).when(tenantFrameworkService).getTenantIds();
+        // 准备测试任务
+        TestJob testJob = new TestJob();
+        // 创建任务装饰器
+        TenantJobHandlerDecorator tenantJobHandlerDecorator = new TenantJobHandlerDecorator(tenantFrameworkService, testJob);
+        // 执行任务
+        tenantJobHandlerDecorator.execute(null);
+        // 断言返回值
+        assertEquals(testJob.getTenantIds(), tenantIds);
+    }
+}

+ 26 - 0
yudao-framework/yudao-spring-boot-starter-biz-tenant/src/test/java/cn/iocoder/yudao/framework/tenant/core/job/TestJob.java

@@ -0,0 +1,26 @@
+package cn.iocoder.yudao.framework.tenant.core.job;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler;
+import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.concurrent.CopyOnWriteArrayList;
+
+@Component
+@TenantJob // 标记多租户
+public class TestJob implements JobHandler {
+    private final List<Long> tenantIds = new CopyOnWriteArrayList<>();
+
+    @Override
+    public String execute(String param) throws Exception {
+        tenantIds.add(TenantContextHolder.getTenantId());
+        return "success";
+    }
+
+    public List<Long> getTenantIds() {
+        CollUtil.sort(tenantIds, Long::compareTo);
+        return tenantIds;
+    }
+}