直接帖代码了
这个是测试类
import java.util.HashMap;
import java.util.Map;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import com.google.gson.Gson;
public class OperateShopCouponServiceImplTest {
@InjectMocks
private OperateShopCouponServiceImpl operateShopCouponServiceImpl;
@Mock
private UserInfoService userInfoService;
@Mock
private PromotionBaseService promotionBaseService;
@Mock
private ShopCouponTemplateSendService shopCouponTemplateSendService;
@Mock
private CouponAccountService couponAccountService;
@Mock
private ShopFavoriteCommonService shopFavoriteCommonService;
@Mock
private OperateShopCouponExportService operateShopCouponExportService;
@Mock
private ShopFavoriteGiftService shopFavoriteGiftService;
@Mock
private PageShardingDalClient dalClient;
@SuppressWarnings("unchecked")
@DataProvider
public Object[][] dp1() {
String reqJsonStr = "{'pageCode':'111','pageName':'222','pageChannel':'31'}";
Map<String, Object> reqMap = new Gson().fromJson(reqJsonStr, Map.class);
return new Object[][] { { reqMap } };
}
@BeforeClass
public void beforeClass() {
// 自动将依赖的类注入待测类
MockitoAnnotations.initMocks(this);
}
// 品牌商保存测试
@SuppressWarnings("unchecked")
@Test(dataProvider = "dp1", groups = "exectest")
public void insertPromotionInfoTestP(Map<String, Object> inputMap) {
Mockito.reset(promotionBaseService);
// 构造请求参数
Map<String, Object> paramMap = Mockito.anyMap();
paramMap.put("showRegion", "1");
paramMap.put("baseAmount", "1");
paramMap.put("couponType", "1");
paramMap.put("assignedRole", "03");
paramMap.put("rewardAmount", 112222);
paramMap.put("activityTimesLimit", 1000000000);
// 执行特定方法,构造返回值
Map<String, Object> newParamMap = new HashMap<String, Object>();
newParamMap.put("sendFlag", "");
newParamMap.put("activityCode", "");
newParamMap.put("excludeProduct", "");
newParamMap.put("donationFlag", "");
newParamMap.put("operationType", "");
newParamMap.put("showRegion", "");
newParamMap.put("activityStatus", "");
newParamMap.put("activityType", "");
Map<String, Object> supplyInfoMap = new HashMap<String, Object>();
supplyInfoMap.put("supplierType", "K");
Mockito.when(userInfoService.getSupplyinfoByCode(newParamMap))
.thenReturn(supplyInfoMap);
CouponAccountBean couponAccountBean1 = new CouponAccountBean();
couponAccountBean1.setReceiveFlag("F");
Mockito.when(
couponAccountService.activeCreateAddStop(Mockito
.any(CouponAccountBean.class))).thenReturn(
couponAccountBean1);
// 调用接口
operateShopCouponServiceImpl.insertPromotionInfoP(paramMap);
}
@SuppressWarnings("unchecked")
@Test(dataProvider = "dp1", groups = "exectest")
public void insertPromotionInfoTestP1(Map<String, Object> inputMap) {
Mockito.reset(promotionBaseService);
// 构造请求参数
Map<String, Object> paramMap = Mockito.anyMap();
paramMap.put("baseAmount", "");
paramMap.put("channelInfo", "22");
paramMap.put("assignedRole", "03");
paramMap.put("rewardAmount", 112222);
paramMap.put("productCode", "3335526");
paramMap.put("supplierType", "P");
paramMap.put("activityTimesLimit", 1000000000);
// 执行特定方法,构造返回值
Map<String, Object> newParamMap = new HashMap<String, Object>();
newParamMap.put("sendFlag", "");
newParamMap.put("activityCode", "");
newParamMap.put("excludeProduct", "");
newParamMap.put("donationFlag", "");
newParamMap.put("operationType", "");
newParamMap.put("showRegion", "");
newParamMap.put("activityStatus", "");
newParamMap.put("activityType", "");
Map<String, Object> supplyInfoMap = new HashMap<String, Object>();
supplyInfoMap.put("supplierType", "K");
Mockito.when(userInfoService.getSupplyinfoByCode(newParamMap))
.thenReturn(supplyInfoMap);
CouponAccountBean couponAccountBean1 = new CouponAccountBean();
couponAccountBean1.setReceiveFlag("S");
CouponAccountBean couponAccountBean3 = new CouponAccountBean();
couponAccountBean3.setReceiveFlag("S");
Mockito.when(
couponAccountService.activeCreateAddStop(Mockito
.any(CouponAccountBean.class)))
.thenReturn(couponAccountBean1).thenReturn(couponAccountBean3);
Mockito.when(
operateShopCouponExportService.createOrModifyShopCouponInfoP(
paramMap, "1")).thenReturn("XXX");
Map<String, Object> responseMap = new HashMap<String, Object>();
responseMap.put("flag", "1");
Mockito.when(operateShopCouponExportService.send(Mockito.anyString()))
.thenReturn(responseMap);
CouponAccountBean ticketRuleIdNoticeBean = new CouponAccountBean();
ticketRuleIdNoticeBean.setReceiveFlag("F");
Mockito.when(
couponAccountService.ticketRuleIdNotice(Mockito.anyString(),
Mockito.anyString(), Mockito.anyString())).thenReturn(
ticketRuleIdNoticeBean);
// 调用接口
operateShopCouponServiceImpl.insertPromotionInfoP(paramMap);
}
@SuppressWarnings("unchecked")
@Test(dataProvider = "dp1", groups = "exectest")
public void insertPromotionInfoTestP11(Map<String, Object> inputMap) {
Mockito.reset(promotionBaseService);
// 构造请求参数
Map<String, Object> paramMap = Mockito.anyMap();
paramMap.put("baseAmount", "1213415");
paramMap.put("assignedRole", "03");
paramMap.put("rewardAmount", 112222);
paramMap.put("activityTimesLimit", 1000000000);
String[] showRegion = { "33", "22" };
paramMap.put("showRegion", showRegion);
String[] channelInfo = { "21", "32" };
paramMap.put("channelInfo", channelInfo);
String[] productCode = { "21223355", "3253565" };
paramMap.put("productCode", productCode);
// 执行特定方法,构造返回值
Map<String, Object> newParamMap = new HashMap<String, Object>();
newParamMap.put("sendFlag", "");
newParamMap.put("activityCode", "");
newParamMap.put("excludeProduct", "");
newParamMap.put("donationFlag", "");
newParamMap.put("operationType", "");
newParamMap.put("showRegion", showRegion);
newParamMap.put("activityStatus", "");
newParamMap.put("activityType", "");
Map<String, Object> supplyInfoMap = new HashMap<String, Object>();
supplyInfoMap.put("supplierType", "S");
Mockito.when(userInfoService.getSupplyinfoByCode(newParamMap))
.thenReturn(supplyInfoMap);
CouponAccountBean couponAccountBean1 = new CouponAccountBean();
couponAccountBean1.setReceiveFlag("S");
CouponAccountBean couponAccountBean3 = new CouponAccountBean();
couponAccountBean3.setReceiveFlag("S");
Mockito.when(
couponAccountService.activeCreateAddStop(Mockito
.any(CouponAccountBean.class)))
.thenReturn(couponAccountBean1).thenReturn(couponAccountBean3);
Mockito.when(
operateShopCouponExportService.createOrModifyShopCouponInfoP(
paramMap, "1")).thenReturn("XXX");
Map<String, Object> responseMap = new HashMap<String, Object>();
responseMap.put("flag", "0");
Mockito.when(operateShopCouponExportService.send(Mockito.anyString()))
.thenReturn(responseMap);
CouponAccountBean ticketRuleIdNoticeBean = new CouponAccountBean();
ticketRuleIdNoticeBean.setReceiveFlag("F");
Mockito.when(
couponAccountService.ticketRuleIdNotice(Mockito.anyString(),
Mockito.anyString(), Mockito.anyString())).thenReturn(
ticketRuleIdNoticeBean);
// 调用接口
operateShopCouponServiceImpl.insertPromotionInfoP(paramMap);
}
@SuppressWarnings("unchecked")
@Test(dataProvider = "dp1", groups = "exectest")
public void insertPromotionInfoTestP111(Map<String, Object> inputMap) {
Mockito.reset(promotionBaseService);
// 构造请求参数
Map<String, Object> paramMap = Mockito.anyMap();
paramMap.put("baseAmount", "");
paramMap.put("assignedRole", "03");
paramMap.put("rewardAmount", 112222);
paramMap.put("activityTimesLimit", 1000000000);
paramMap.put("startTime", "2017-04-12");
String[] showRegion = { "66", "55" };
paramMap.put("showRegion", showRegion);
String[] channelInfo = { "21", "32" };
paramMap.put("channelInfo", channelInfo);
String[] productCode = { "21223355", "3253565" };
paramMap.put("productCode", productCode);
Map<String, Object> supplyInfoMap = new HashMap<String, Object>();
supplyInfoMap.put("supplierType", "K");
Mockito.when(userInfoService.getSupplyinfoByCode(paramMap))
.thenReturn(supplyInfoMap);
CouponAccountBean couponAccountBean1 = new CouponAccountBean();
couponAccountBean1.setReceiveFlag("S");
CouponAccountBean couponAccountBean3 = new CouponAccountBean();
couponAccountBean3.setReceiveFlag("F");
Mockito.when(
couponAccountService.activeCreateAddStop(Mockito
.any(CouponAccountBean.class)))
.thenReturn(couponAccountBean1).thenReturn(couponAccountBean3);
Mockito.when(
operateShopCouponExportService.createOrModifyShopCouponInfoP(
paramMap, "1")).thenReturn("XXX");
Map<String, Object> responseMap = new HashMap<String, Object>();
Mockito.when(operateShopCouponExportService.send(Mockito.anyString()))
.thenReturn(responseMap);
// 调用接口
operateShopCouponServiceImpl.insertPromotionInfoP(paramMap);
}
@SuppressWarnings("unchecked")
@Test(dataProvider = "dp1", groups = "exectest")
public void updatePromotionBasePTest(Map<String, Object> inputMap) {
Mockito.reset(promotionBaseService);
// 构造请求参数
Map<String, Object> paramMap = Mockito.anyMap();
paramMap.put("baseAmount", "");
paramMap.put("assignedRole", "03");
paramMap.put("operateAmount", 10000000);
paramMap.put("rewardAmount", 112222);
paramMap.put("activityTimesLimit", 1000000000);
paramMap.put("startTime", "2017-04-12");
Map<String, Object> supplyInfoMap = new HashMap<String, Object>();
supplyInfoMap.put("supplierType", "K");
Mockito.when(userInfoService.getSupplyinfoByCode(paramMap))
.thenReturn(supplyInfoMap);
CouponAccountBean couponAccountBean1 = new CouponAccountBean();
couponAccountBean1.setReceiveFlag("S");
CouponAccountBean couponAccountBean3 = new CouponAccountBean();
couponAccountBean3.setReceiveFlag("F");
Mockito.when(
couponAccountService.activeCreateAddStop(Mockito
.any(CouponAccountBean.class)))
.thenReturn(couponAccountBean1).thenReturn(couponAccountBean3);
Mockito.when(
operateShopCouponExportService.createOrModifyShopCouponInfoP(
paramMap, "1")).thenReturn("XXX");
Map<String, Object> responseMap = new HashMap<String, Object>();
Mockito.when(operateShopCouponExportService.send(Mockito.anyString()))
.thenReturn(responseMap);
// 调用接口
operateShopCouponServiceImpl.updatePromotionBaseP(paramMap);
}
@SuppressWarnings("unchecked")
@Test(dataProvider = "dp1", groups = "exectest")
public void updatePromotionBasePTest1(Map<String, Object> inputMap) {
Mockito.reset(promotionBaseService);
// 构造请求参数
Map<String, Object> paramMap = Mockito.anyMap();
paramMap.put("baseAmount", "");
paramMap.put("assignedRole", "03");
paramMap.put("operateAmount", 10000000);
paramMap.put("rewardAmount", 112222);
paramMap.put("activityTimesLimit", 1000000000);
paramMap.put("startTime", "2017-04-12");
Map<String, Object> supplyInfoMap = new HashMap<String, Object>();
supplyInfoMap.put("supplierType", "K");
Mockito.when(userInfoService.getSupplyinfoByCode(paramMap))
.thenReturn(supplyInfoMap);
CouponAccountBean couponAccountBean1 = new CouponAccountBean();
couponAccountBean1.setReceiveFlag("F");
Mockito.when(
couponAccountService.activeCreateAddStop(Mockito
.any(CouponAccountBean.class)))
.thenReturn(couponAccountBean1);
// 调用接口
operateShopCouponServiceImpl.updatePromotionBaseP(paramMap);
}
@SuppressWarnings("unchecked")
@Test(dataProvider = "dp1", groups = "exectest")
public void updatePromotionBasePTest11(Map<String, Object> inputMap) {
Mockito.reset(promotionBaseService);
// 构造请求参数
Map<String, Object> paramMap = Mockito.anyMap();
paramMap.put("baseAmount", "");
paramMap.put("assignedRole", "03");
paramMap.put("operateAmount", 10000000);
paramMap.put("rewardAmount", 112222);
paramMap.put("activityTimesLimit", 1000000000);
paramMap.put("startTime", "2017-04-12");
Map<String, Object> supplyInfoMap = new HashMap<String, Object>();
supplyInfoMap.put("supplierType", "K");
Mockito.when(userInfoService.getSupplyinfoByCode(paramMap))
.thenReturn(supplyInfoMap);
CouponAccountBean couponAccountBean1 = new CouponAccountBean();
couponAccountBean1.setReceiveFlag("S");
CouponAccountBean couponAccountBean3 = new CouponAccountBean();
couponAccountBean3.setReceiveFlag("S");
Mockito.when(
couponAccountService.activeCreateAddStop(Mockito
.any(CouponAccountBean.class)))
.thenReturn(couponAccountBean1).thenReturn(couponAccountBean3);
Mockito.when(
operateShopCouponExportService.createOrModifyShopCouponInfoP(
paramMap, "2")).thenReturn("XXX");
Map<String, Object> responseMap = new HashMap<String, Object>();
responseMap.put("flag", "1");
Mockito.when(operateShopCouponExportService.send(Mockito.anyString()))
.thenReturn(responseMap);
// 调用接口
operateShopCouponServiceImpl.updatePromotionBaseP(paramMap);
}
更新测试
@SuppressWarnings("unchecked")
@Test(dataProvider = "dp1", groups = "exectest")
public void updatePromotionBasePTest111(Map<String, Object> inputMap) {
Mockito.reset(promotionBaseService);
// 构造请求参数
Map<String, Object> paramMap = Mockito.anyMap();
paramMap.put("baseAmount", "");
paramMap.put("assignedRole", "03");
paramMap.put("operateAmount", 10000000);
paramMap.put("rewardAmount", 112222);
paramMap.put("activityTimesLimit", 1000000000);
paramMap.put("startTime", "2017-04-12");
Map<String, Object> supplyInfoMap = new HashMap<String, Object>();
supplyInfoMap.put("supplierType", "K");
Mockito.when(userInfoService.getSupplyinfoByCode(paramMap))
.thenReturn(supplyInfoMap);
CouponAccountBean couponAccountBean1 = new CouponAccountBean();
couponAccountBean1.setReceiveFlag("S");
CouponAccountBean couponAccountBean3 = new CouponAccountBean();
couponAccountBean3.setReceiveFlag("S");
Mockito.when(
couponAccountService.activeCreateAddStop(Mockito
.any(CouponAccountBean.class)))
.thenReturn(couponAccountBean1).thenReturn(couponAccountBean3);
Mockito.when(
operateShopCouponExportService.createOrModifyShopCouponInfoP(
paramMap, "2")).thenReturn("XXX");
Map<String, Object> responseMap = new HashMap<String, Object>();
responseMap.put("flag", "0");
Mockito.when(operateShopCouponExportService.send(Mockito.anyString()))
.thenReturn(responseMap);
// 调用接口
operateShopCouponServiceImpl.updatePromotionBaseP(paramMap);
}
异常测试
@SuppressWarnings("unchecked")
@Test(expectedExceptions = MpmsSystemException.class)
public void insertPromotionInfoRuntimeExceptionTestP() {
// 构造请求参数
Map<String, Object> paramMap = Mockito.anyMap();
paramMap.put("showRegion", "3");
paramMap.put("baseAmount", "");
paramMap.put("assignedRole", "03");
paramMap.put("rewardAmount", 112222);
paramMap.put("activityTimesLimit", 1000000000);
paramMap.put("startTime", "2017-04-12");
// 执行特定方法,构造返回值
Map<String, Object> newParamMap = new HashMap<String, Object>();
newParamMap.put("sendFlag", "");
newParamMap.put("activityCode", "");
newParamMap.put("excludeProduct", "");
newParamMap.put("donationFlag", "");
newParamMap.put("operationType", "");
newParamMap.put("showRegion", "");
newParamMap.put("activityStatus", "");
newParamMap.put("activityType", "");
Map<String, Object> supplyInfoMap = new HashMap<String, Object>();
supplyInfoMap.put("supplierType", "C");
Mockito.when(userInfoService.getSupplyinfoByCode(newParamMap))
.thenReturn(supplyInfoMap);
Mockito.when(userInfoService.getSupplyinfoByCode(newParamMap))
.thenReturn(supplyInfoMap);
Mockito.doThrow(RuntimeException.class).when(promotionBaseService)
.savePromotionBaseP((Map[]) Mockito.anyVararg());
operateShopCouponServiceImpl.insertPromotionInfoP(paramMap);
}
@SuppressWarnings("unchecked")
@Test(dataProvider = "dp1", groups = "exectest")
public void insertPromotionInfoTest(Map<String, Object> inputMap) {
// 构造请求参数
Map<String, Object> paramMap = Mockito.anyMap();
paramMap.put("showRegion", "1");
paramMap.put("baseAmount", "1");
paramMap.put("assignedRole", "03");
// 执行特定方法,构造返回值
Map<String, Object> newParamMap = new HashMap<String, Object>();
newParamMap.put("sendFlag", "");
newParamMap.put("activityCode", "");
newParamMap.put("excludeProduct", "");
newParamMap.put("donationFlag", "");
newParamMap.put("operationType", "");
newParamMap.put("showRegion", "");
newParamMap.put("activityStatus", "");
newParamMap.put("activityType", "");
Map<String, Object> supplyInfoMap = new HashMap<String, Object>();
supplyInfoMap.put("supplierType", "K");
Mockito.when(userInfoService.getSupplyinfoByCode(newParamMap