|
@@ -1,21 +1,23 @@
|
|
|
package cn.iocoder.yudao.module.promotion.service.reward;
|
|
|
|
|
|
+import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
|
import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
|
|
|
+import cn.iocoder.yudao.module.promotion.api.reward.dto.RewardActivityMatchRespDTO;
|
|
|
import cn.iocoder.yudao.module.promotion.controller.admin.reward.vo.RewardActivityCreateReqVO;
|
|
|
import cn.iocoder.yudao.module.promotion.controller.admin.reward.vo.RewardActivityPageReqVO;
|
|
|
import cn.iocoder.yudao.module.promotion.controller.admin.reward.vo.RewardActivityUpdateReqVO;
|
|
|
import cn.iocoder.yudao.module.promotion.dal.dataobject.reward.RewardActivityDO;
|
|
|
import cn.iocoder.yudao.module.promotion.dal.mysql.reward.RewardActivityMapper;
|
|
|
-import cn.iocoder.yudao.module.promotion.enums.common.PromotionActivityStatusEnum;
|
|
|
import cn.iocoder.yudao.module.promotion.enums.common.PromotionConditionTypeEnum;
|
|
|
import cn.iocoder.yudao.module.promotion.enums.common.PromotionProductScopeEnum;
|
|
|
+import jakarta.annotation.Resource;
|
|
|
import org.junit.jupiter.api.Disabled;
|
|
|
import org.junit.jupiter.api.Test;
|
|
|
import org.springframework.context.annotation.Import;
|
|
|
|
|
|
-import jakarta.annotation.Resource;
|
|
|
import java.time.Duration;
|
|
|
+import java.util.List;
|
|
|
import java.util.Set;
|
|
|
|
|
|
import static cn.hutool.core.util.RandomUtil.randomEle;
|
|
@@ -27,15 +29,15 @@ import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServic
|
|
|
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId;
|
|
|
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
|
|
|
import static cn.iocoder.yudao.module.promotion.enums.ErrorCodeConstants.REWARD_ACTIVITY_NOT_EXISTS;
|
|
|
-import static java.util.Arrays.asList;
|
|
|
+import static com.google.common.primitives.Longs.asList;
|
|
|
import static java.util.Collections.singletonList;
|
|
|
import static org.junit.jupiter.api.Assertions.*;
|
|
|
|
|
|
/**
|
|
|
-* {@link RewardActivityServiceImpl} 的单元测试类
|
|
|
-*
|
|
|
-* @author 芋道源码
|
|
|
-*/
|
|
|
+ * {@link RewardActivityServiceImpl} 的单元测试类
|
|
|
+ *
|
|
|
+ * @author 芋道源码
|
|
|
+ */
|
|
|
@Disabled // TODO 芋艿:后续 fix 补充的单测
|
|
|
@Import(RewardActivityServiceImpl.class)
|
|
|
public class RewardActivityServiceImplTest extends BaseDbUnitTest {
|
|
@@ -63,7 +65,7 @@ public class RewardActivityServiceImplTest extends BaseDbUnitTest {
|
|
|
// 校验记录的属性是否正确
|
|
|
RewardActivityDO rewardActivity = rewardActivityMapper.selectById(rewardActivityId);
|
|
|
assertPojoEquals(reqVO, rewardActivity, "rules");
|
|
|
- assertEquals(rewardActivity.getStatus(), PromotionActivityStatusEnum.WAIT.getStatus());
|
|
|
+ assertEquals(rewardActivity.getStatus(), CommonStatusEnum.DISABLE.getStatus());
|
|
|
for (int i = 0; i < reqVO.getRules().size(); i++) {
|
|
|
assertPojoEquals(reqVO.getRules().get(i), rewardActivity.getRules().get(i));
|
|
|
}
|
|
@@ -72,7 +74,7 @@ public class RewardActivityServiceImplTest extends BaseDbUnitTest {
|
|
|
@Test
|
|
|
public void testUpdateRewardActivity_success() {
|
|
|
// mock 数据
|
|
|
- RewardActivityDO dbRewardActivity = randomPojo(RewardActivityDO.class, o -> o.setStatus(PromotionActivityStatusEnum.WAIT.getStatus()));
|
|
|
+ RewardActivityDO dbRewardActivity = randomPojo(RewardActivityDO.class, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()));
|
|
|
rewardActivityMapper.insert(dbRewardActivity);// @Sql: 先插入出一条存在的数据
|
|
|
// 准备参数
|
|
|
RewardActivityUpdateReqVO reqVO = randomPojo(RewardActivityUpdateReqVO.class, o -> {
|
|
@@ -88,7 +90,7 @@ public class RewardActivityServiceImplTest extends BaseDbUnitTest {
|
|
|
// 校验是否更新正确
|
|
|
RewardActivityDO rewardActivity = rewardActivityMapper.selectById(reqVO.getId()); // 获取最新的
|
|
|
assertPojoEquals(reqVO, rewardActivity, "rules");
|
|
|
- assertEquals(rewardActivity.getStatus(), PromotionActivityStatusEnum.WAIT.getStatus());
|
|
|
+ assertEquals(rewardActivity.getStatus(), CommonStatusEnum.DISABLE.getStatus());
|
|
|
for (int i = 0; i < reqVO.getRules().size(); i++) {
|
|
|
assertPojoEquals(reqVO.getRules().get(i), rewardActivity.getRules().get(i));
|
|
|
}
|
|
@@ -97,7 +99,7 @@ public class RewardActivityServiceImplTest extends BaseDbUnitTest {
|
|
|
@Test
|
|
|
public void testCloseRewardActivity() {
|
|
|
// mock 数据
|
|
|
- RewardActivityDO dbRewardActivity = randomPojo(RewardActivityDO.class, o -> o.setStatus(PromotionActivityStatusEnum.WAIT.getStatus()));
|
|
|
+ RewardActivityDO dbRewardActivity = randomPojo(RewardActivityDO.class, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()));
|
|
|
rewardActivityMapper.insert(dbRewardActivity);// @Sql: 先插入出一条存在的数据
|
|
|
// 准备参数
|
|
|
Long id = dbRewardActivity.getId();
|
|
@@ -106,7 +108,7 @@ public class RewardActivityServiceImplTest extends BaseDbUnitTest {
|
|
|
rewardActivityService.closeRewardActivity(id);
|
|
|
// 校验状态
|
|
|
RewardActivityDO rewardActivity = rewardActivityMapper.selectById(id);
|
|
|
- assertEquals(rewardActivity.getStatus(), PromotionActivityStatusEnum.CLOSE.getStatus());
|
|
|
+ assertEquals(rewardActivity.getStatus(), CommonStatusEnum.DISABLE.getStatus());
|
|
|
}
|
|
|
|
|
|
@Test
|
|
@@ -121,15 +123,15 @@ public class RewardActivityServiceImplTest extends BaseDbUnitTest {
|
|
|
@Test
|
|
|
public void testDeleteRewardActivity_success() {
|
|
|
// mock 数据
|
|
|
- RewardActivityDO dbRewardActivity = randomPojo(RewardActivityDO.class, o -> o.setStatus(PromotionActivityStatusEnum.CLOSE.getStatus()));
|
|
|
+ RewardActivityDO dbRewardActivity = randomPojo(RewardActivityDO.class, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()));
|
|
|
rewardActivityMapper.insert(dbRewardActivity);// @Sql: 先插入出一条存在的数据
|
|
|
// 准备参数
|
|
|
Long id = dbRewardActivity.getId();
|
|
|
|
|
|
// 调用
|
|
|
rewardActivityService.deleteRewardActivity(id);
|
|
|
- // 校验数据不存在了
|
|
|
- assertNull(rewardActivityMapper.selectById(id));
|
|
|
+ // 校验数据不存在了
|
|
|
+ assertNull(rewardActivityMapper.selectById(id));
|
|
|
}
|
|
|
|
|
|
@Test
|
|
@@ -143,78 +145,82 @@ public class RewardActivityServiceImplTest extends BaseDbUnitTest {
|
|
|
|
|
|
@Test
|
|
|
public void testGetRewardActivityPage() {
|
|
|
- // mock 数据
|
|
|
- RewardActivityDO dbRewardActivity = randomPojo(RewardActivityDO.class, o -> { // 等会查询到
|
|
|
- o.setName("芋艿");
|
|
|
- o.setStatus(PromotionActivityStatusEnum.CLOSE.getStatus());
|
|
|
- });
|
|
|
- rewardActivityMapper.insert(dbRewardActivity);
|
|
|
- // 测试 name 不匹配
|
|
|
- rewardActivityMapper.insert(cloneIgnoreId(dbRewardActivity, o -> o.setName("土豆")));
|
|
|
- // 测试 status 不匹配
|
|
|
- rewardActivityMapper.insert(cloneIgnoreId(dbRewardActivity, o -> o.setStatus(PromotionActivityStatusEnum.RUN.getStatus())));
|
|
|
- // 准备参数
|
|
|
- RewardActivityPageReqVO reqVO = new RewardActivityPageReqVO();
|
|
|
- reqVO.setName("芋艿");
|
|
|
- reqVO.setStatus(PromotionActivityStatusEnum.CLOSE.getStatus());
|
|
|
-
|
|
|
- // 调用
|
|
|
- PageResult<RewardActivityDO> pageResult = rewardActivityService.getRewardActivityPage(reqVO);
|
|
|
- // 断言
|
|
|
- assertEquals(1, pageResult.getTotal());
|
|
|
- assertEquals(1, pageResult.getList().size());
|
|
|
- assertPojoEquals(dbRewardActivity, pageResult.getList().get(0), "rules");
|
|
|
+ // mock 数据
|
|
|
+ RewardActivityDO dbRewardActivity = randomPojo(RewardActivityDO.class, o -> { // 等会查询到
|
|
|
+ o.setName("芋艿");
|
|
|
+ o.setStatus(CommonStatusEnum.DISABLE.getStatus());
|
|
|
+ });
|
|
|
+ rewardActivityMapper.insert(dbRewardActivity);
|
|
|
+ // 测试 name 不匹配
|
|
|
+ rewardActivityMapper.insert(cloneIgnoreId(dbRewardActivity, o -> o.setName("土豆")));
|
|
|
+ // 测试 status 不匹配
|
|
|
+ rewardActivityMapper.insert(cloneIgnoreId(dbRewardActivity, o -> o.setStatus(CommonStatusEnum.ENABLE.getStatus())));
|
|
|
+ // 准备参数
|
|
|
+ RewardActivityPageReqVO reqVO = new RewardActivityPageReqVO();
|
|
|
+ reqVO.setName("芋艿");
|
|
|
+ reqVO.setStatus(CommonStatusEnum.DISABLE.getStatus());
|
|
|
+
|
|
|
+ // 调用
|
|
|
+ PageResult<RewardActivityDO> pageResult = rewardActivityService.getRewardActivityPage(reqVO);
|
|
|
+ // 断言
|
|
|
+ assertEquals(1, pageResult.getTotal());
|
|
|
+ assertEquals(1, pageResult.getList().size());
|
|
|
+ assertPojoEquals(dbRewardActivity, pageResult.getList().get(0), "rules");
|
|
|
}
|
|
|
|
|
|
@Test
|
|
|
public void testGetRewardActivities_all() {
|
|
|
// mock 数据
|
|
|
- RewardActivityDO allActivity = randomPojo(RewardActivityDO.class, o -> o.setStatus(PromotionActivityStatusEnum.RUN.getStatus())
|
|
|
+ RewardActivityDO allActivity = randomPojo(RewardActivityDO.class, o -> o.setStatus(CommonStatusEnum.ENABLE.getStatus())
|
|
|
.setProductScope(PromotionProductScopeEnum.ALL.getScope()));
|
|
|
rewardActivityMapper.insert(allActivity);
|
|
|
- RewardActivityDO productActivity = randomPojo(RewardActivityDO.class, o -> o.setStatus(PromotionActivityStatusEnum.RUN.getStatus())
|
|
|
- .setProductScope(PromotionProductScopeEnum.SPU.getScope()).setProductSpuIds(asList(1L, 2L)));
|
|
|
+ RewardActivityDO productActivity = randomPojo(RewardActivityDO.class, o -> o.setStatus(CommonStatusEnum.ENABLE.getStatus())
|
|
|
+ .setProductScope(PromotionProductScopeEnum.SPU.getScope()).setProductScopeValues(asList(1L, 2L)));
|
|
|
rewardActivityMapper.insert(productActivity);
|
|
|
// 准备参数
|
|
|
Set<Long> spuIds = asSet(1L, 2L);
|
|
|
|
|
|
// 调用 TODO getMatchRewardActivities 没有这个方法,但是找到了 getMatchRewardActivityList
|
|
|
- //Map<RewardActivityDO, Set<Long>> matchRewardActivities = rewardActivityService.getMatchRewardActivities(spuIds);
|
|
|
+ List<RewardActivityMatchRespDTO> matchRewardActivityList = rewardActivityService.getMatchRewardActivityList(spuIds);
|
|
|
// 断言
|
|
|
- //assertEquals(matchRewardActivities.size(), 1);
|
|
|
- //Map.Entry<RewardActivityDO, Set<Long>> next = matchRewardActivities.entrySet().iterator().next();
|
|
|
- //assertPojoEquals(next.getKey(), allActivity);
|
|
|
- //assertEquals(next.getValue(), spuIds);
|
|
|
+ assertEquals(matchRewardActivityList.size(), 1);
|
|
|
+ matchRewardActivityList.forEach((activity) -> {
|
|
|
+ if (activity.getId().equals(productActivity.getId())) {
|
|
|
+ assertPojoEquals(activity, productActivity);
|
|
|
+ assertEquals(activity.getProductScopeValues(), asList(1L, 2L));
|
|
|
+ } else {
|
|
|
+ fail();
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
@Test
|
|
|
public void testGetRewardActivities_product() {
|
|
|
// mock 数据
|
|
|
- // TODO @puhui999:有单测的问题,也一起瞅瞅
|
|
|
- RewardActivityDO productActivity01 = randomPojo(RewardActivityDO.class, o -> o.setStatus(PromotionActivityStatusEnum.RUN.getStatus())
|
|
|
- .setProductScope(PromotionProductScopeEnum.SPU.getScope()).setProductSpuIds(asList(1L, 2L)));
|
|
|
+ RewardActivityDO productActivity01 = randomPojo(RewardActivityDO.class, o -> o.setStatus(CommonStatusEnum.ENABLE.getStatus())
|
|
|
+ .setProductScope(PromotionProductScopeEnum.SPU.getScope()).setProductScopeValues(asList(1L, 2L)));
|
|
|
rewardActivityMapper.insert(productActivity01);
|
|
|
- RewardActivityDO productActivity02 = randomPojo(RewardActivityDO.class, o -> o.setStatus(PromotionActivityStatusEnum.RUN.getStatus())
|
|
|
- .setProductScope(PromotionProductScopeEnum.SPU.getScope()).setProductSpuIds(singletonList(3L)));
|
|
|
+ RewardActivityDO productActivity02 = randomPojo(RewardActivityDO.class, o -> o.setStatus(CommonStatusEnum.ENABLE.getStatus())
|
|
|
+ .setProductScope(PromotionProductScopeEnum.SPU.getScope()).setProductScopeValues(singletonList(3L)));
|
|
|
rewardActivityMapper.insert(productActivity02);
|
|
|
// 准备参数
|
|
|
Set<Long> spuIds = asSet(1L, 2L, 3L);
|
|
|
|
|
|
// 调用 TODO getMatchRewardActivities 没有这个方法,但是找到了 getMatchRewardActivityList
|
|
|
- //Map<RewardActivityDO, Set<Long>> matchRewardActivities = rewardActivityService.getMatchRewardActivities(spuIds);
|
|
|
+ List<RewardActivityMatchRespDTO> matchRewardActivityList = rewardActivityService.getMatchRewardActivityList(spuIds);
|
|
|
// 断言
|
|
|
- //assertEquals(matchRewardActivities.size(), 2);
|
|
|
- //matchRewardActivities.forEach((activity, activitySpuIds) -> {
|
|
|
- // if (activity.getId().equals(productActivity01.getId())) {
|
|
|
- // assertPojoEquals(activity, productActivity01);
|
|
|
- // assertEquals(activitySpuIds, asSet(1L, 2L));
|
|
|
- // } else if (activity.getId().equals(productActivity02.getId())) {
|
|
|
- // assertPojoEquals(activity, productActivity02);
|
|
|
- // assertEquals(activitySpuIds, asSet(3L));
|
|
|
- // } else {
|
|
|
- // fail();
|
|
|
- // }
|
|
|
- //});
|
|
|
+ assertEquals(matchRewardActivityList.size(), 2);
|
|
|
+ matchRewardActivityList.forEach((activity) -> {
|
|
|
+ if (activity.getId().equals(productActivity01.getId())) {
|
|
|
+ assertPojoEquals(activity, productActivity01);
|
|
|
+ assertEquals(activity.getProductScopeValues(), asList(1L, 2L));
|
|
|
+ } else if (activity.getId().equals(productActivity02.getId())) {
|
|
|
+ assertPojoEquals(activity, productActivity02);
|
|
|
+ assertEquals(activity.getProductScopeValues(), singletonList(3L));
|
|
|
+ } else {
|
|
|
+ fail();
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
}
|