Jmock测试

import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import org.hamcrest.CoreMatchers;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.experimental.theories.DataPoint;
import org.junit.experimental.theories.DataPoints;
import org.junit.experimental.theories.Theories;
import org.junit.experimental.theories.Theory;
import org.junit.runner.JUnitCore;
import org.junit.runner.Request;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.mockito.*;


import javax.annotation.Resource;


import java.util.Map;
import java.util.Set;
import java.util.UUID;


import org.junit.Assert;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;


import static org.hamcrest.CoreMatchers.is;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyObject;
import static org.mockito.Mockito.*;






public class CreditFacadeImplTest extends  BaseTest{


    @Spy
    public CreditBizImpl creditBiz;


    @InjectMocks
    public CreditFacadeImpl creditFacade;




    @Before
    public void before() throws Exception {
        MockitoAnnotations.initMocks(this);
    }


    /**
     * queryCredit(CreditQueryRequestDto requestDto)
     */
    @Test
    public void testQueryCredit() throws Exception {


        CreditQueryResponseDto responseDto1 = creditFacade.queryCredit(null);
        Assert.assertThat(responseDto1.getReturnCode(), is(CreditException.INVALID_PARAMETER.getCode()));


        CreditQueryRequestDto requestDto2 = new CreditQueryRequestDto();
        requestDto2.setTradeNo(null);
        CreditQueryResponseDto responseDto2 = creditFacade.queryCredit(requestDto2);
        Assert.assertThat(responseDto2.getReturnCode(), is(CreditException.INVALID_PARAMETER.getCode()));


        CreditQueryRequestDto requestDto3 = new CreditQueryRequestDto();
        requestDto3.setTradeNo("123456");
        requestDto3.setCreditQueryMap(null);
        CreditQueryResponseDto responseDto3 = creditFacade.queryCredit(requestDto3);
        Assert.assertThat(responseDto3.getReturnCode(), is(CreditException.INVALID_PARAMETER.getCode()));


        CreditQueryRequestDto requestDto4 = new CreditQueryRequestDto();
        requestDto4.setTradeNo("123456");
        Map<String, Set<CharacterQueryInfo>> creditQueryMap4 = Maps.newHashMap();
        requestDto4.setCreditQueryMap(creditQueryMap4);
        CreditQueryResponseDto responseDto4 = creditFacade.queryCredit(requestDto4);
        Assert.assertThat(responseDto4.getReturnCode(), is(CreditException.INVALID_PARAMETER.getCode()));


        CreditQueryRequestDto requestDto5 = new CreditQueryRequestDto();
        requestDto5.setTradeNo("123456");
        Map<String, Set<CharacterQueryInfo>> creditQueryMap5 = Maps.newHashMap();
        creditQueryMap5.put(null, null);
        requestDto5.setCreditQueryMap(creditQueryMap5);
        CreditQueryResponseDto responseDto5 = creditFacade.queryCredit(requestDto5);
        Assert.assertThat(responseDto5.getReturnCode(), is(CreditException.INVALID_PARAMETER.getCode()));


        CreditQueryRequestDto requestDto6 = new CreditQueryRequestDto();
        requestDto6.setTradeNo("123456");
        Map<String, Set<CharacterQueryInfo>> creditQueryMap6 = Maps.newHashMap();
        Set<CharacterQueryInfo> sets = Sets.newHashSet();
        sets.add(null);
        CharacterQueryInfo info = new CharacterQueryInfo();
        info.setCharacterCode("001001");
        sets.add(info);
        creditQueryMap6.put("merchant01", sets);
        requestDto6.setCreditQueryMap(creditQueryMap6);
        CreditQueryResponseDto responseDto6 = creditFacade.queryCredit(requestDto6);
        Assert.assertThat(responseDto6.getReturnCode(), is(CreditException.INVALID_PARAMETER.getCode()));


        CreditQueryRequestDto requestDto7 = new CreditQueryRequestDto();
        requestDto7.setTradeNo("123456");
        Map<String, Set<CharacterQueryInfo>> creditQueryMap7 = Maps.newHashMap();
        Set<CharacterQueryInfo> sets7 = Sets.newHashSet();
        sets7.add(null);
        CharacterQueryInfo info7 = new CharacterQueryInfo();
        Set<String> tppSet = Sets.newHashSet();
        tppSet.add("kaola");
        info7.setTppSet(tppSet);
        sets7.add(info7);
        creditQueryMap7.put("merchant01", sets7);
        requestDto7.setCreditQueryMap(creditQueryMap7);
        CreditQueryResponseDto responseDto7 = creditFacade.queryCredit(requestDto7);
        Assert.assertThat(responseDto7.getReturnCode(), is(CreditException.INVALID_PARAMETER.getCode()));




        doThrow(new CreditException("000001")).
                when(creditBiz).queryCredit(any(CreditQueryRequestDto.class), any(CreditQueryResponseDto.class));
        CreditQueryRequestDto requestDto8 = new CreditQueryRequestDto();
        requestDto8.setTradeNo("123456");
        Map<String, Set<CharacterQueryInfo>> creditQueryMap8 = Maps.newHashMap();
        Set<CharacterQueryInfo> sets8 = Sets.newHashSet();
        sets8.add(null);
        CharacterQueryInfo info8 = new CharacterQueryInfo();
        Set<String> tppSet8 = Sets.newHashSet();
        tppSet8.add("kaola");
        info8.setTppSet(tppSet8);
        info8.setCharacterCode("001001");
        sets8.add(info8);
        creditQueryMap8.put("merchant01", sets8);
        requestDto8.setCreditQueryMap(creditQueryMap8);
        CreditQueryResponseDto responseDto8 = creditFacade.queryCredit(requestDto8);
        Assert.assertThat(responseDto8.getReturnCode(), CoreMatchers.not("000000"));
        verify(creditBiz,times(1)).queryCredit(any(CreditQueryRequestDto.class), any(CreditQueryResponseDto.class));


        doAnswer(new Answer() {
            @Override
            public Object answer(InvocationOnMock invocationOnMock) throws Throwable {
                CreditQueryResponseDto response = (CreditQueryResponseDto) invocationOnMock.getArguments()[1];
                response.setReturnCode(CreditException.SERVER_ERROR.getCode());
                throw new Exception("mock系统异常");
            }
        }).when(creditBiz).queryCredit((CreditQueryRequestDto) anyObject(), (CreditQueryResponseDto) anyObject());
        CreditQueryRequestDto requestDto9 = new CreditQueryRequestDto();
        requestDto9.setTradeNo("123456");
        Map<String, Set<CharacterQueryInfo>> creditQueryMap9 = Maps.newHashMap();
        Set<CharacterQueryInfo> sets9 = Sets.newHashSet();
        sets9.add(null);
        CharacterQueryInfo info9 = new CharacterQueryInfo();
        Set<String> tppSet9 = Sets.newHashSet();
        tppSet9.add("kaola");
        info9.setTppSet(tppSet9);
        info9.setCharacterCode("001001");
        sets9.add(info9);
        creditQueryMap9.put("merchant01", sets9);
        requestDto9.setCreditQueryMap(creditQueryMap9);
        CreditQueryResponseDto responseDto9 = creditFacade.queryCredit(requestDto9);
        Assert.assertThat(responseDto9.getReturnCode(), CoreMatchers.is(CreditException.SERVER_ERROR.getCode()));
        verify(creditBiz,times(2)).queryCredit(any(CreditQueryRequestDto.class), any(CreditQueryResponseDto.class));


        doAnswer(new Answer() {
            @Override
            public Object answer(InvocationOnMock invocationOnMock) throws Throwable {
                CreditQueryResponseDto response = (CreditQueryResponseDto) invocationOnMock.getArguments()[1];
                response.setReturnCode(CreditException.CREDIT_SUCCESS.getCode());
                return response;
            }
        }).when(creditBiz).queryCredit((CreditQueryRequestDto) anyObject(), (CreditQueryResponseDto) anyObject());
        CreditQueryRequestDto requestDto10 = new CreditQueryRequestDto();
        requestDto10.setTradeNo("123456");
        Map<String, Set<CharacterQueryInfo>> creditQueryMap10 = Maps.newHashMap();
        Set<CharacterQueryInfo> sets10 = Sets.newHashSet();
        sets10.add(null);
        CharacterQueryInfo info10 = new CharacterQueryInfo();
        Set<String> tppSet10 = Sets.newHashSet();
        tppSet10.add("kaola");
        info10.setTppSet(tppSet10);
        info10.setCharacterCode("001001");
        sets10.add(info10);
        creditQueryMap10.put("merchant01", sets10);
        requestDto10.setCreditQueryMap(creditQueryMap10);
        CreditQueryResponseDto responseDto10 = creditFacade.queryCredit(requestDto10);
        Assert.assertThat(responseDto10.getReturnCode(), CoreMatchers.is(CreditException.CREDIT_SUCCESS.getCode()));
        verify(creditBiz,times(3)).queryCredit(any(CreditQueryRequestDto.class), any(CreditQueryResponseDto.class));


        Mockito.reset(creditBiz);


        CreditQueryRequestDto requestDto11 = new CreditQueryRequestDto();
        requestDto11.setTradeNo("123456");
        Map<String, Set<CharacterQueryInfo>> creditQueryMap11 = Maps.newHashMap();
        Set<CharacterQueryInfo> sets11 = Sets.newHashSet();
        sets11.add(null);
        CharacterQueryInfo info11 = new CharacterQueryInfo();
        Set<String> tppSet11 = Sets.newHashSet();
        tppSet11.add("kaola");
        info11.setTppSet(tppSet11);
        info11.setCharacterCode("001001");
        sets11.add(info11);
        creditQueryMap11.put("merchant01", sets11);
        requestDto11.setCreditQueryMap(creditQueryMap11);
        CreditQueryResponseDto responseDto11 = creditFacade.queryCredit(requestDto11);
        Assert.assertThat(responseDto11.getReturnCode(), CoreMatchers.is(CreditException.CREDIT_SUCCESS.getCode()));
        verify(creditBiz,times(3)).queryCredit(any(CreditQueryRequestDto.class), any(CreditQueryResponseDto.class));
        System.out.println("------10个用例全部完成-------");


    }




}

import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.springframework.beans.factory.annotation.Autowired;

import static org.mockito.Mockito.when;


public class IousQmqInfoBizTest extends BaseContext {
    @Mock
    public Message message;

    @Autowired
    IousQmqInfoBiz iousQmqInfoBiz;


    @Before
    public void before() throws Exception {
        MockitoAnnotations.initMocks(this);
    }

 
    @Test
    public  void credit(){
        when(message.getStringProperty(ConstantsEnum.CREDIT_RESULT.name())).thenReturn(
                "{" +"\"tppCode\":\"BAIDULOAN\"," +
                        "\"creditNo\":\"CREDIT2015121401351733510\"," +
                        "\"servCreditNo\":\"IOUS_PC2015121401351733599\"," +
                        "\"rate\":\"0.75\"," +
                        "\"status\":\"1\"," +
                        "\"creditAmt\":\"12000.00\"," +
                        "\"userId\":136972232," +
                        "\"finishTime\":\"2015-12-14 14:21:05\"," +
                        "\"userName\":\"秘志坚\"," +
                        "\"qcreditNo\":\"QCREDIT2015121401351733597\""
                        +
                        "}"
        );
        iousQmqInfoBiz.iousQmqinfoHandler(OrderTypeEnum.CREDIT,message);
    }



}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值