mirror of
https://gitee.com/hhyykk/ipms-sjy.git
synced 2025-08-11 00:31:52 +08:00
product:优化管理后台相关的接口
area:增加地区列表界面
This commit is contained in:
@@ -19,11 +19,12 @@ import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
|
||||
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
|
||||
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
|
||||
import static cn.iocoder.yudao.module.product.enums.ErrorCodeConstants.SKU_NOT_EXISTS;
|
||||
import static cn.iocoder.yudao.module.product.enums.ErrorCodeConstants.SKU_STOCK_NOT_ENOUGH;
|
||||
import static java.util.Collections.singletonList;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertNotEquals;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
import static org.mockito.ArgumentMatchers.argThat;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
@@ -145,4 +146,26 @@ public class ProductSkuServiceTest extends BaseDbUnitTest {
|
||||
SKU_STOCK_NOT_ENOUGH);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteSku_success() {
|
||||
// mock 数据
|
||||
ProductSkuDO dbSku = randomPojo(ProductSkuDO.class);
|
||||
productSkuMapper.insert(dbSku);// @Sql: 先插入出一条存在的数据
|
||||
// 准备参数
|
||||
Long id = dbSku.getId();
|
||||
|
||||
// 调用
|
||||
productSkuService.deleteSku(id);
|
||||
// 校验数据不存在了
|
||||
assertNull(productSkuMapper.selectById(id));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteSku_notExists() {
|
||||
// 准备参数
|
||||
Long id = 1L;
|
||||
|
||||
// 调用, 并断言异常
|
||||
assertServiceException(() -> productSkuService.deleteSku(id), SKU_NOT_EXISTS);
|
||||
}
|
||||
}
|
||||
|
@@ -1,56 +0,0 @@
|
||||
package cn.iocoder.yudao.module.product.service.sku;
|
||||
|
||||
import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
|
||||
import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO;
|
||||
import cn.iocoder.yudao.module.product.dal.mysql.sku.ProductSkuMapper;
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.context.annotation.Import;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
|
||||
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
|
||||
import static cn.iocoder.yudao.module.product.enums.ErrorCodeConstants.SKU_NOT_EXISTS;
|
||||
import static org.junit.jupiter.api.Assertions.assertNull;
|
||||
|
||||
// TODO 芋艿:整合到 {@link ProductSkuServiceTest} 中
|
||||
/**
|
||||
* {@link ProductSkuServiceImpl} 的单元测试类
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@Import(ProductSkuServiceImpl.class)
|
||||
@Disabled // TODO 芋艿:临时去掉
|
||||
public class SkuServiceImplTest extends BaseDbUnitTest {
|
||||
|
||||
@Resource
|
||||
private ProductSkuServiceImpl ProductSkuService;
|
||||
|
||||
@Resource
|
||||
private ProductSkuMapper ProductSkuMapper;
|
||||
|
||||
@Test
|
||||
public void testDeleteSku_success() {
|
||||
// mock 数据
|
||||
ProductSkuDO dbSku = randomPojo(ProductSkuDO.class);
|
||||
ProductSkuMapper.insert(dbSku);// @Sql: 先插入出一条存在的数据
|
||||
// 准备参数
|
||||
Long id = dbSku.getId();
|
||||
|
||||
// 调用
|
||||
ProductSkuService.deleteSku(id);
|
||||
// 校验数据不存在了
|
||||
assertNull(ProductSkuMapper.selectById(id));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteSku_notExists() {
|
||||
// 准备参数
|
||||
Long id = 1L;
|
||||
|
||||
// 调用, 并断言异常
|
||||
assertServiceException(() -> ProductSkuService.deleteSku(id), SKU_NOT_EXISTS);
|
||||
}
|
||||
|
||||
}
|
@@ -8,10 +8,11 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
|
||||
import cn.iocoder.yudao.framework.common.util.collection.SetUtils;
|
||||
import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
|
||||
import cn.iocoder.yudao.module.product.controller.admin.property.vo.property.ProductPropertyRespVO;
|
||||
import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValueRespVO;
|
||||
import cn.iocoder.yudao.module.product.controller.admin.sku.vo.ProductSkuCreateOrUpdateReqVO;
|
||||
import cn.iocoder.yudao.module.product.controller.admin.spu.vo.*;
|
||||
import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuCreateReqVO;
|
||||
import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuPageReqVO;
|
||||
import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuRespVO;
|
||||
import cn.iocoder.yudao.module.product.controller.admin.spu.vo.ProductSpuUpdateReqVO;
|
||||
import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppProductSpuPageReqVO;
|
||||
import cn.iocoder.yudao.module.product.convert.spu.ProductSpuConvert;
|
||||
import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO;
|
||||
@@ -148,53 +149,6 @@ public class ProductSpuServiceImplTest extends BaseDbUnitTest {
|
||||
Assertions.assertNull(productSpuMapper.selectById(createReqVO.getId()));
|
||||
}
|
||||
|
||||
@Test
|
||||
void getSpuDetail() {
|
||||
// 准备spu参数
|
||||
ProductSpuDO createReqVO = randomPojo(ProductSpuDO.class, o -> {
|
||||
o.setSpecType(ProductSpuSpecTypeEnum.DISABLE.getType());
|
||||
});
|
||||
productSpuMapper.insert(createReqVO);
|
||||
|
||||
// 创建两个属性
|
||||
ArrayList<ProductPropertyRespVO> productPropertyRespVOS = Lists.newArrayList(
|
||||
randomPojo(ProductPropertyRespVO.class),
|
||||
randomPojo(ProductPropertyRespVO.class));
|
||||
|
||||
// 所有属性值
|
||||
ArrayList<ProductPropertyValueRespVO> productPropertyValueRespVO = new ArrayList<>();
|
||||
|
||||
// 每个属性创建属性值
|
||||
productPropertyRespVOS.forEach(v -> {
|
||||
ProductPropertyValueRespVO productPropertyValueRespVO1 = randomPojo(ProductPropertyValueRespVO.class, o -> o.setPropertyId(v.getId()));
|
||||
productPropertyValueRespVO.add(productPropertyValueRespVO1);
|
||||
});
|
||||
|
||||
// 属性值建立笛卡尔积
|
||||
Map<Long, List<ProductPropertyValueRespVO>> collect = productPropertyValueRespVO.stream().collect(Collectors.groupingBy(ProductPropertyValueRespVO::getPropertyId));
|
||||
List<List<ProductPropertyValueRespVO>> lists = cartesianProduct(Lists.newArrayList(collect.values()));
|
||||
|
||||
// 准备sku参数
|
||||
ArrayList<ProductSkuDO> productSkuDOS = Lists.newArrayList();
|
||||
lists.forEach(pp -> {
|
||||
List<ProductSkuDO.Property> property = pp.stream().map(ppv -> new ProductSkuDO.Property(ppv.getPropertyId(), ppv.getId())).collect(Collectors.toList());
|
||||
ProductSkuDO productSkuDO = randomPojo(ProductSkuDO.class, o -> {
|
||||
o.setProperties(property);
|
||||
});
|
||||
productSkuDOS.add(productSkuDO);
|
||||
|
||||
});
|
||||
|
||||
Mockito.when(productSkuService.getSkuListBySpuId(createReqVO.getId())).thenReturn(productSkuDOS);
|
||||
// Mockito.when(productPropertyValueService.getPropertyValueListByPropertyId(new ArrayList<>(collect.keySet()))).thenReturn(productPropertyValueRespVO);
|
||||
// Mockito.when(productPropertyService.getPropertyVOList(new ArrayList<>(collect.keySet()))).thenReturn(productPropertyRespVOS);
|
||||
//
|
||||
// 调用
|
||||
ProductSpuDetailRespVO spuDetail = productSpuService.getSpuDetail(createReqVO.getId());
|
||||
|
||||
assertPojoEquals(createReqVO, spuDetail);
|
||||
}
|
||||
|
||||
@Test
|
||||
void getSpu() {
|
||||
// 准备参数
|
||||
@@ -222,7 +176,7 @@ public class ProductSpuServiceImplTest extends BaseDbUnitTest {
|
||||
ProductSpuPageReqVO productSpuPageReqVO = new ProductSpuPageReqVO();
|
||||
productSpuPageReqVO.setAlarmStock(true);
|
||||
|
||||
PageResult<ProductSpuRespVO> spuPage = productSpuService.getSpuPage(productSpuPageReqVO);
|
||||
PageResult<ProductSpuDO> spuPage = productSpuService.getSpuPage(productSpuPageReqVO);
|
||||
|
||||
PageResult<Object> result = PageResult.empty();
|
||||
Assertions.assertIterableEquals(result.getList(), spuPage.getList());
|
||||
@@ -271,7 +225,7 @@ public class ProductSpuServiceImplTest extends BaseDbUnitTest {
|
||||
// 调用
|
||||
ProductSpuPageReqVO productSpuPageReqVO = new ProductSpuPageReqVO();
|
||||
productSpuPageReqVO.setAlarmStock(true);
|
||||
PageResult<ProductSpuRespVO> spuPage = productSpuService.getSpuPage(productSpuPageReqVO);
|
||||
PageResult<ProductSpuDO> spuPage = productSpuService.getSpuPage(productSpuPageReqVO);
|
||||
|
||||
PageResult<ProductSpuRespVO> result = ProductSpuConvert.INSTANCE.convertPage(productSpuMapper.selectPage(productSpuPageReqVO, alarmStockSpuIds));
|
||||
Assertions.assertIterableEquals(result.getList(), spuPage.getList());
|
||||
@@ -323,7 +277,7 @@ public class ProductSpuServiceImplTest extends BaseDbUnitTest {
|
||||
productSpuPageReqVO.setStatus(ProductSpuStatusEnum.ENABLE.getStatus());
|
||||
productSpuPageReqVO.setCategoryId(categoryId);
|
||||
|
||||
PageResult<ProductSpuRespVO> spuPage = productSpuService.getSpuPage(productSpuPageReqVO);
|
||||
PageResult<ProductSpuDO> spuPage = productSpuService.getSpuPage(productSpuPageReqVO);
|
||||
|
||||
PageResult<ProductSpuRespVO> result = ProductSpuConvert.INSTANCE.convertPage(productSpuMapper.selectPage(productSpuPageReqVO, (Set<Long>) null));
|
||||
assertEquals(result, spuPage);
|
||||
|
Reference in New Issue
Block a user