package com.taobao.ju.c2b.facade.manager.impl;
import com.taobao.ju.common.manager.ManagerException;
import com.taobao.ump.client.meta.TargetDef;
import com.taobao.ump.client.result.ResultSupport;
import com.taobao.ump.core.service.client.MarketingActivityTopServiceClient;
import com.taobao.ump.marketing.*;
import com.taobao.ump.marketing.internal.InternalMarketingBuilder;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import java.lang.reflect.Field;
import java.util.Collection;
import java.util.Date;
@RunWith(PowerMockRunner.class)
@PrepareForTest({UmpDetailManagerImpl.class, InternalMarketingBuilder.class, MarketingActivityTopServiceClient.class})
public class UmpDetailManagerImplTest {
private static final MarketingDetail marketingDetail = new MarketingDetail(){
@Override
public MarketingActivity getMarketingActivity() {
return null;
}
@Override
public Long getDetailId() {
return detailId;
}
@Override
public Date getStartTime() {
return null;
}
@Override
public Date getEndTime() {
return null;
}
@Override
public DetailStatus getStatus() {
return null;
}
@Override
public MarketingDetail setStartTime(Date startTime) {
return null;
}
@Override
public MarketingDetail setEndTime(Date endTime) {
return null;
}
@Override
public MarketingDetail setStatus(DetailStatus status) {
return null;
}
@Override
public void setRange(ParticipateType participateType, Long participateId) {
}
@Override
public ParticipateType getParticipateType() {
return null;
}
@Override
public Long getParticipateId() {
return null;
}
@Override
public void define(String paramId, Object value) {
}
@Override
public void undefine(String paramId) {
}
@Override
public Collection<ParameterValue> getMustDefineParameters() {
return null;
}
@Override
public Collection<ParameterValue> getDefinedParameters() {
return null;
}
@Override
public Collection<ParameterValue> getDefinableParameters() {
return null;
}
@Override
public boolean isAllDefined() {
return false;
}
};
private static final MarketingActivity marketingActivity = new MarketingActivity(){
@Override
public MarketingTool getMarketingTool() {
return null;
}
@Override
public Long getActivityId() {
return null;
}
@Override
public String getName() {
return null;
}
@Override
public String getDescription() {
return null;
}
@Override
public ActivityType getType() {
return null;
}
@Override
public ParticipateRange getParticipateRange() {
return null;
}
@Override
public Date getStartTime() {
return null;
}
@Override
public Date getEndTime() {
return null;
}
@Override
public ActivityStatus getStatus() {
return null;
}
@Override
public MetaData<TargetDef> getTargetMeta() {
return null;
}
@Override
public MarketingActivity setName(String name) {
return null;
}
@Override
public MarketingActivity setDescription(String description) {
return null;
}
@Override
public MarketingActivity setType(ActivityType type) {
return null;
}
@Override
public MarketingActivity setParticipateRange(ParticipateRange participateRange) {
return null;
}
@Override
public MarketingActivity setStartTime(Date startTime) {
return null;
}
@Override
public MarketingActivity setEndTime(Date endTime) {
return null;
}
@Override
public MarketingActivity setStatus(ActivityStatus status) {
return null;
}
@Override
public Short getOptions() {
return null;
}
@Override
public MarketingActivity setTargetMeta(MetaData<TargetDef> target) {
return null;
}
@Override
public MarketingActivity setOneOffPromotion(boolean isOneOffPromotion) {
return null;
}
@Override
public boolean isOneOffPromotion() {
return false;
}
@Override
public MarketingActivity setMultipleLayerPromotion(boolean isMultipleLayerPromotion) {
return null;
}
@Override
public boolean isMultipleLayerPromotion() {
return false;
}
@Override
public void define(String paramId, Object value) {
}
@Override
public void undefine(String paramId) {
}
@Override
public Collection<ParameterValue> getMustDefineParameters() {
return null;
}
@Override
public Collection<ParameterValue> getDefinedParameters() {
return null;
}
@Override
public Collection<ParameterValue> getDefinableParameters() {
return null;
}
@Override
public boolean isAllDefined() {
return false;
}
};
private UmpDetailManagerImpl umpDetailManager = PowerMockito.spy(new UmpDetailManagerImpl());
private InternalMarketingBuilder internalMarketingBuilder = PowerMockito.spy(new InternalMarketingBuilder());
private MarketingActivityTopServiceClient marketingActivityTopServiceClient = PowerMockito.spy(new MarketingActivityTopServiceClient());
private static final String content = "content";
private static final Long activityId = 2012l,sellerId = 2013l,detailId = 2014l;
@Before
public void setUp() throws Exception{
Field field = UmpDetailManagerImpl.class.getDeclaredField("internalMarketingBuilder");
field.setAccessible(true);
field.set(umpDetailManager,internalMarketingBuilder);
field = UmpDetailManagerImpl.class.getDeclaredField("marketingActivityTopServiceClient");
field.setAccessible(true);
field.set(umpDetailManager,marketingActivityTopServiceClient);
}
@Test
public void testCreateMarketingDetail() throws Exception {
PowerMockito.doReturn(marketingDetail).when(internalMarketingBuilder,"createMarketingDetail",marketingActivity);
Assert.assertTrue(umpDetailManager.createMarketingDetail(marketingActivity).getDetailId() == detailId);
}
@Test(expected = ManagerException.class)
public void testCreateMarketingDetail_Exception() throws Exception {
PowerMockito.doThrow(new RuntimeException("test")).when(internalMarketingBuilder, "createMarketingDetail", marketingActivity);
Assert.assertTrue(umpDetailManager.createMarketingDetail(marketingActivity).getDetailId() == detailId);
}
@Test(expected = ManagerException.class)
public void testCreateMarketingDetail_Exception2() throws Exception {
umpDetailManager.createMarketingDetail(null);
}
@Test
public void testAddMarketingDetail() throws Exception {
PowerMockito.doReturn(content).when(internalMarketingBuilder,"build",marketingDetail);
PowerMockito.doReturn(prepareResultSupport()).when(marketingActivityTopServiceClient,"addMarketingDetail",activityId,content,sellerId);
Assert.assertEquals(umpDetailManager.addMarketingDetail(activityId,marketingDetail,sellerId).getDefaultModel(),detailId);
}
@Test(expected = ManagerException.class)
public void testAddMarketingDetail_Exception() throws Exception {
PowerMockito.doReturn(content).when(internalMarketingBuilder,"build",marketingDetail);
PowerMockito.doThrow(new RuntimeException("test")).when(marketingActivityTopServiceClient,"addMarketingDetail",activityId,content,sellerId);
umpDetailManager.addMarketingDetail(activityId,marketingDetail,sellerId);
}
@Test
public void testDeleteMarketingDetail() throws Exception {
PowerMockito.doReturn(prepareResultSupport2()).when(marketingActivityTopServiceClient,"deleteMarketingDetail",detailId,sellerId);
Assert.assertFalse(umpDetailManager.deleteMarketingDetail(detailId,sellerId).isSuccess());
}
@Test(expected = ManagerException.class)
public void testDeleteMarketingDetail_Exception() throws Exception {
PowerMockito.doThrow(new RuntimeException("test")).when(marketingActivityTopServiceClient,"deleteMarketingDetail",detailId,sellerId);
Assert.assertFalse(umpDetailManager.deleteMarketingDetail(detailId,sellerId).isSuccess());
}
@Test
public void testUpdateMarketingActivityDetail() throws Exception {
PowerMockito.doReturn(content).when(internalMarketingBuilder,"build",marketingDetail);
PowerMockito.doReturn(prepareResultSupport2()).when(marketingActivityTopServiceClient,"updateMarketingDetail",detailId,content,sellerId);
Assert.assertFalse(umpDetailManager.updateMarketingActivityDetail(detailId,marketingDetail,sellerId).isSuccess());
}
@Test(expected = ManagerException.class)
public void testUpdateMarketingActivityDetail_Exception() throws Exception {
PowerMockito.doReturn(content).when(internalMarketingBuilder,"build",marketingDetail);
PowerMockito.doThrow(new RuntimeException("test")).when(marketingActivityTopServiceClient,"updateMarketingDetail",detailId,content,sellerId);
Assert.assertFalse(umpDetailManager.updateMarketingActivityDetail(detailId,marketingDetail,sellerId).isSuccess());
}
private ResultSupport prepareResultSupport(){
ResultSupport resultSupport = new ResultSupport(false);
resultSupport.setDefaultModel(detailId);
return resultSupport;
}
private ResultSupport prepareResultSupport2(){
ResultSupport resultSupport = new ResultSupport(false);
resultSupport.setDefaultModel(Boolean.TRUE);
return resultSupport;
}
}
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>1.4.10</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito</artifactId>
<version>1.4.10</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4-common</artifactId>
<version>1.4.10</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-core</artifactId>
<version>1.4.10</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-reflect</artifactId>
<version>1.4.10</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-support</artifactId>
<version>1.4.10</version>
<scope>test</scope>
</dependency>
分享到:
相关推荐
vbscript example vbscript example vbscript example vbscript example
MiniDao-example1.2MiniDao-example1.2MiniDao-example1.2MiniDao-example1.2MiniDao-example1.2MiniDao-example1.2MiniDao-example1.2MiniDao-example1.2MiniDao-example1.2MiniDao-example1.2MiniDao-example1.2...
OpenCV3 By Example PDF电子书 C++版本 Enhance your understanding of Computer Vision and image processing by developing real-world projects in opencv3
unix shell by example perl by example 英文版
Unix Shell by Example.zip Unix Shell by Example.zip
VHDL例程源码 example_confiVHDL例程源码 example_confiVHDL例程源码 example_confiVHDL例程源码 example_confiVHDL例程源码 example_confiVHDL例程源码 example_confiVHDL例程源码 example_confiVHDL例程源码 ...
SAS Programming By Example
Django By Example中文_目录_精排_2017_文字版,彩色 Django By Example中文_目录_精排_2017
以上命令的路径我写的是绝对路径:/complie2/wangwei/svn_8880_r95/android/android-4.2.1_r1/out/target/common/obj/APPS/jni_example_intermediates/classes 下面的com.example.jni_example.MainActivity ...
Node.js By Example epub + code
Django by Example 1.8兼容1.10 英文版+代码
example2 example2 example2 example2 example2
高清彩版 _NET Core 2.0 By Example
example.com
Hibernate中Example的用法
JavaEE源代码 Example_StrutsJavaEE源代码 Example_StrutsJavaEE源代码 Example_StrutsJavaEE源代码 Example_StrutsJavaEE源代码 Example_StrutsJavaEE源代码 Example_StrutsJavaEE源代码 Example_StrutsJavaEE源...
cplex java example
逆向工程Example方法使用说明,使用逆向工程的Example方法使用说明,设置方法对应的SQL,对应的含义
pv example for studing。光伏发电系统的并网,扰动法
Go By Example 中文版 Go By Example 中文版 Go By Example 中文版