Возвращение метода "ContractService" является возвращаемым значением метода "checkPgwContract". Я уже высмеиваю класс ContractService и класс ContractServiceManager, но метод checkPgwContract всегда проходил в моем модульном тесте.
ContractServiceImpl
@Override
public List getListOfContractBy(String contractNo) {
List<OasysContract> oasysContractList = oasysContractRepository.findByContractNumber(contractNo);
if (!oasysContractList.isEmpty()) {
return oasysContractList;
} else {
List<Contract> pgwContractList = contractRepository.findContractsByContractNumber(contractNo);
if (!pgwContractList.isEmpty()) {
return contractServiceManager.checkPgwContract(pgwContractList);
}
}
return new ArrayList();
}
ContractServiceManagerImpl
private boolean checkHCP(String contractNumber) {
return contractRepository.findContractByExpiredDate(contractNumber) != null ? true : false;
}
private String checkIsFullyPaid(String contractNumber) {
return contractRepository.getFullyPaid(contractNumber);
}
@Override
public List<Contract> checkPgwContract(List<Contract> contractList) {
for (Contract contract : contractList) {
//check paymentType
if (contract.getPaymentType() != null &&
contract.getPaymentType().equals(PAYMENT_TYPE_HCP)) {
if (checkHCP(contract.getContractNumber())) {
//check isFullyPaid
if (checkIsFullyPaid(contract.getContractNumber()).equals(FLAG_YES)) {
return new ArrayList<>();
}
} else {
return new ArrayList<>();
}
}
}
return contractList;
}
UnitTest
@InjectMocks
@Spy
private ContractServiceImpl service;
@Mock
ContractRepository contractRepository;
@Mock
OasysContractRepository oasysContractRepository;
@Mock
ContractServiceManager serviceManager;
public static final String contractNumber = "3900006835";
@Test
public void getListOfContractBy_hcp_success() {
List<OasysContract> oasysContractList = new ArrayList<>();
oasysContractList.isEmpty();
List<Contract> contractList = new ArrayList<>();
contractList.add(BuildUtil.buildContract());
//mock
Mockito.doReturn(oasysContractList).when(oasysContractRepository).findByContractNumber(contractNumber);
Mockito.doReturn(BuildUtil.buildContractList()).when(contractRepository).findContractsByContractNumber(contractNumber);
Mockito.doReturn(contractList).when(serviceManager).checkPgwContract(contractList);
Mockito.doReturn(BuildUtil.buildContract()).when(contractRepository).findContractByExpiredDate(contractNumber);
Mockito.doReturn("N").when(contractRepository).getFullyPaid(contractNumber);
//test
List<Contract> contracts = service.getListOfContractBy(contractNumber);
System.out.println(contracts);
assert(!contracts.isEmpty());
}
Теперь значение параметра контрактов пусто. Должен быть возвращен contractList. Я думаю, потому что макет метода checkPgwContract игнорируется.
Мой тест все равно будет проходить, что, очевидно, неправильно, так как мне это проверить?