Commit b54c5eaa45e96ceebcaa1b3466c635781fd488e0
1 parent
467170d3
test: job 租户单元测试
Showing
3 changed files
with
67 additions
and
2 deletions
yudao-framework/yudao-spring-boot-starter-biz-tenant/pom.xml
| @@ -52,8 +52,8 @@ | @@ -52,8 +52,8 @@ | ||
| 52 | 52 | ||
| 53 | <!-- Test 测试相关 --> | 53 | <!-- Test 测试相关 --> |
| 54 | <dependency> | 54 | <dependency> |
| 55 | - <groupId>org.springframework.boot</groupId> | ||
| 56 | - <artifactId>spring-boot-starter-test</artifactId> | 55 | + <groupId>cn.iocoder.boot</groupId> |
| 56 | + <artifactId>yudao-spring-boot-starter-test</artifactId> | ||
| 57 | <scope>test</scope> | 57 | <scope>test</scope> |
| 58 | </dependency> | 58 | </dependency> |
| 59 | 59 |
yudao-framework/yudao-spring-boot-starter-biz-tenant/src/test/java/cn/iocoder/yudao/framework/tenant/core/job/TenantJobTest.java
0 → 100644
| 1 | +package cn.iocoder.yudao.framework.tenant.core.job; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.tenant.core.service.TenantFrameworkService; | ||
| 4 | +import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest; | ||
| 5 | +import com.google.common.collect.Lists; | ||
| 6 | +import org.junit.jupiter.api.Test; | ||
| 7 | +import org.mockito.Mockito; | ||
| 8 | +import org.mockito.Spy; | ||
| 9 | + | ||
| 10 | +import java.util.List; | ||
| 11 | + | ||
| 12 | +import static org.junit.jupiter.api.Assertions.assertEquals; | ||
| 13 | + | ||
| 14 | +/** | ||
| 15 | + * 验证 job 租户逻辑 | ||
| 16 | + * {@link TenantJobHandlerDecorator} | ||
| 17 | + * | ||
| 18 | + * @author gaibu | ||
| 19 | + */ | ||
| 20 | +public class TenantJobTest extends BaseMockitoUnitTest { | ||
| 21 | + @Spy | ||
| 22 | + TenantFrameworkService tenantFrameworkService; | ||
| 23 | + | ||
| 24 | + @Test | ||
| 25 | + public void test() throws Exception { | ||
| 26 | + // 准备测试租户 id | ||
| 27 | + List<Long> tenantIds = Lists.newArrayList(1L, 2L, 3L); | ||
| 28 | + // mock 数据 | ||
| 29 | + Mockito.doReturn(tenantIds).when(tenantFrameworkService).getTenantIds(); | ||
| 30 | + // 准备测试任务 | ||
| 31 | + TestJob testJob = new TestJob(); | ||
| 32 | + // 创建任务装饰器 | ||
| 33 | + TenantJobHandlerDecorator tenantJobHandlerDecorator = new TenantJobHandlerDecorator(tenantFrameworkService, testJob); | ||
| 34 | + // 执行任务 | ||
| 35 | + tenantJobHandlerDecorator.execute(null); | ||
| 36 | + // 断言返回值 | ||
| 37 | + assertEquals(testJob.getTenantIds(), tenantIds); | ||
| 38 | + } | ||
| 39 | +} |
yudao-framework/yudao-spring-boot-starter-biz-tenant/src/test/java/cn/iocoder/yudao/framework/tenant/core/job/TestJob.java
0 → 100644
| 1 | +package cn.iocoder.yudao.framework.tenant.core.job; | ||
| 2 | + | ||
| 3 | +import cn.hutool.core.collection.CollUtil; | ||
| 4 | +import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler; | ||
| 5 | +import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; | ||
| 6 | +import org.springframework.stereotype.Component; | ||
| 7 | + | ||
| 8 | +import java.util.List; | ||
| 9 | +import java.util.concurrent.CopyOnWriteArrayList; | ||
| 10 | + | ||
| 11 | +@Component | ||
| 12 | +@TenantJob // 标记多租户 | ||
| 13 | +public class TestJob implements JobHandler { | ||
| 14 | + private final List<Long> tenantIds = new CopyOnWriteArrayList<>(); | ||
| 15 | + | ||
| 16 | + @Override | ||
| 17 | + public String execute(String param) throws Exception { | ||
| 18 | + tenantIds.add(TenantContextHolder.getTenantId()); | ||
| 19 | + return "success"; | ||
| 20 | + } | ||
| 21 | + | ||
| 22 | + public List<Long> getTenantIds() { | ||
| 23 | + CollUtil.sort(tenantIds, Long::compareTo); | ||
| 24 | + return tenantIds; | ||
| 25 | + } | ||
| 26 | +} |