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);
}
}