Minha Classe De Teste:
`package com.getnet.antecipacao.service.impl;
import java.util.Date;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.springframework.stereotype.Service;
import com.getnet.antecipacao.dto.AprovarFlexibilizacaoDto;
import com.getnet.antecipacao.exception.ParBusinessException;
import com.getnet.antecipacao.repository.FlexibilizacaoRepository;
import com.getnet.antecipacao.repository.Par12AntOperDiaAntecRepository;
import com.getnet.antecipacao.repository.Par13AntOperDiaAntecRepository;
import com.getnet.antecipacao.repository.Par19AntOperConsDtAntecRepository;
import com.getnet.antecipacao.repository.Par32ParamTravaTxSprdMinRepository;
import com.getnet.antecipacao.repository.Par34CanalXTravaRepository;
import com.getnet.antecipacao.repository.Par38NegociacaoRepository;
import com.getnet.antecipacao.repository.Par41AntOperTotDispVencRepository;
import com.getnet.antecipacao.service.AprovarFlexibilizacaoService;
import junit.framework.Assert;
@Service
public class AprovarFlexibilizacaoServiceImplTest implements AprovarFlexibilizacaoService {
@InjectMocks
AprovarFlexibilizacaoServiceImpl aprovarFlexibilizacaoServiceImpl;
@Mock
private Par12AntOperDiaAntecRepository par12AntOperDiaAntecRepository;
@Mock
private Par13AntOperDiaAntecRepository par13AntOperDiaAntecRepository;
@Mock
private Par19AntOperConsDtAntecRepository par19AntOperConsDtAntecRepository;
@Mock
private Par32ParamTravaTxSprdMinRepository par32ParamTravaTxSprdMinRepository;
@Mock
private Par34CanalXTravaRepository par34CanalXTravaRepository;
@Mock
private Par38NegociacaoRepository par38NegociacaoRepository;
@Mock
private Par41AntOperTotDispVencRepository par41AntOperTotDispVencRepository;
@Mock
private FlexibilizacaoRepository flexibilizacaoRepository;
@Test
public void testAprovarFlexibilizacao () {
try {
Mockito.when(par13AntOperDiaAntecRepository.obterDataAntecipacao()).thenReturn(new Date());
Mockito.when(aprovarFlexibilizacaoServiceImpl.aprovarFlexibilizacao(aprovarFlexibilizacaoDtoVazio())).thenThrow(new ParBusinessException());
AprovarFlexibilizacaoDto aprovarFlexibilizacaoDto = aprovarFlexibilizacaoServiceImpl.aprovarFlexibilizacao(aprovarFlexibilizacaoDtoVazio());
Assert.assertTrue(false);
} catch (Exception e) {
System.out.println(e.getCause());
} //catch (ParBusinessException e) {
// TODO: handle exception
//}
}
private AprovarFlexibilizacaoDto aprovarFlexibilizacaoDtoNull () {
AprovarFlexibilizacaoDto aprovarFlexibilizacaoDto = null;
return aprovarFlexibilizacaoDto;
}
private AprovarFlexibilizacaoDto aprovarFlexibilizacaoDtoVazio () {
AprovarFlexibilizacaoDto aprovarFlexibilizacaoDto = new AprovarFlexibilizacaoDto();
return aprovarFlexibilizacaoDto;
}
@Override
public AprovarFlexibilizacaoDto aprovarFlexibilizacao(AprovarFlexibilizacaoDto dto)
throws ParBusinessException, Exception {
// TODO Auto-generated method stub
return null;
}
}
`
Classe A Ser Testada:
`package com.getnet.antecipacao.service.impl;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.getnet.antecipacao.bean.Par12AntOperDiaAntec;
import com.getnet.antecipacao.bean.Par19AntOperConsDtAntec;
import com.getnet.antecipacao.bean.Par32ParamTravaTxSprdMin;
import com.getnet.antecipacao.bean.Par34CanalXTrava;
import com.getnet.antecipacao.bean.Par38Negociacao;
import com.getnet.antecipacao.dto.AprovarFlexibilizacaoDto;
import com.getnet.antecipacao.enums.CodigoBandeira;
import com.getnet.antecipacao.enums.CodigoStatusNegociacao;
import com.getnet.antecipacao.enums.CodigoStatusOperacao;
import com.getnet.antecipacao.exception.ParBusinessException;
import com.getnet.antecipacao.model.ObterDesconto;
import com.getnet.antecipacao.model.VencimentosDescontosEntrada;
import com.getnet.antecipacao.repository.FlexibilizacaoRepository;
import com.getnet.antecipacao.repository.Par12AntOperDiaAntecRepository;
import com.getnet.antecipacao.repository.Par13AntOperDiaAntecRepository;
import com.getnet.antecipacao.repository.Par19AntOperConsDtAntecRepository;
import com.getnet.antecipacao.repository.Par32ParamTravaTxSprdMinRepository;
import com.getnet.antecipacao.repository.Par34CanalXTravaRepository;
import com.getnet.antecipacao.repository.Par38NegociacaoRepository;
import com.getnet.antecipacao.repository.Par41AntOperTotDispVencRepository;
import com.getnet.antecipacao.service.AprovarFlexibilizacaoService;
import com.getnet.antecipacao.util.ObterDescontoUtils;
@Service
public class AprovarFlexibilizacaoServiceImpl implements AprovarFlexibilizacaoService {
@Autowired
private Par12AntOperDiaAntecRepository par12AntOperDiaAntecRepository;
@Autowired
private Par13AntOperDiaAntecRepository par13AntOperDiaAntecRepository;
@Autowired
private Par19AntOperConsDtAntecRepository par19AntOperConsDtAntecRepository;
@Autowired
private Par32ParamTravaTxSprdMinRepository par32ParamTravaTxSprdMinRepository;
@Autowired
private Par34CanalXTravaRepository par34CanalXTravaRepository;
@Autowired
private Par38NegociacaoRepository par38NegociacaoRepository;
@Autowired
private Par41AntOperTotDispVencRepository par41AntOperTotDispVencRepository;
@Autowired
private FlexibilizacaoRepository flexibilizacaoRepository;
private static final String INDICADOR_TOTAL_NAO = "N";
private static final String STATUS_CONSULTA = "C";
private static final int SUCESSO = 0;
private static final int APROVADO_SEM_ALTERACAO = 1;
private static final int APROVADO_COM_ALTERACAO = 2;
private static final int TAXA_INFERIOR_TRAVA_32 = 23;
private static final int SPREAD_INFERIOR_TRAVA_32 = 24;
private static final int DT_OPER_MAIOR_HOJE = 25;
private static final int OPER_NAO_ENCONTRADA = 28;
private static final int FLUXOS_DIVERGENTES = 35;
private static final int STATUS_DIF_SIMULACAO = 41;
private static final int NAO_EXISTE_NEG = 53;
private static final int NEGOCIACAO_STATUS_INVALIDO_2_3 = 54;
private static final int NEGOCIACAO_STATUS_INVALIDO_4 = 55;
@Override
public AprovarFlexibilizacaoDto aprovarFlexibilizacao (AprovarFlexibilizacaoDto dto) throws ParBusinessException, Exception {
Date dataAntecipacao = par13AntOperDiaAntecRepository.obterDataAntecipacao();
if ( dataAntecipacao.after(new Date())) {
throw new ParBusinessException(DT_OPER_MAIOR_HOJE);
}
Par12AntOperDiaAntec par12 = par12AntOperDiaAntecRepository.encontraOperacoesSeqIgual(dto.getCodigoEc(), dto.getNumeroOperacao());
if (par12 == null) {
throw new ParBusinessException(OPER_NAO_ENCONTRADA);
}
if (!par12.getOperStatusAntec().equals(CodigoStatusOperacao.SIMULACAO.getCode())) {
throw new ParBusinessException(STATUS_DIF_SIMULACAO);
}
Par38Negociacao negociacao = par38NegociacaoRepository.encontraPar38NegociacaoPorIdOperDiaAntec(par12.getIdOperDiaAntec());
if (negociacao == null) {
throw new ParBusinessException(NAO_EXISTE_NEG);
}
if (negociacao.getOperStatus().equals(CodigoStatusNegociacao.APROVADO_MESA.getCode()) || negociacao.getOperStatus().equals(CodigoStatusNegociacao.APROVADO_MESA_COM_ALTERACAO.getCode())) {
throw new ParBusinessException(NEGOCIACAO_STATUS_INVALIDO_2_3);
}
if (negociacao.getOperStatus().equals(CodigoStatusNegociacao.REPROVADO_MESA.getCode())) {
throw new ParBusinessException(NEGOCIACAO_STATUS_INVALIDO_4);
}
if (!negociacao.getOperStatus().equals(CodigoStatusNegociacao.CANCELADO.getCode())) {
if(dto.getAcao().equals(APROVADO_SEM_ALTERACAO)){
persistirFlexibilizacao(par12, dto, CodigoStatusNegociacao.APROVADO_MESA);
} else if(dto.getAcao().equals(APROVADO_COM_ALTERACAO)){
verificarTaxaSpreadMinimo(dto.getTaxaProposta(), dto.getSpreadProposto(), dataAntecipacao, dto.getCanal());
List<Par19AntOperConsDtAntec> par19List = par19AntOperConsDtAntecRepository.consultarOperacoesFluxosPorIdOperDiaAntec(par12.getIdOperDiaAntec());
if (par19List == null) {
throw new ParBusinessException(FLUXOS_DIVERGENTES);
}
List<VencimentosDescontosEntrada> fluxos = ObterDescontoUtils.convertePar19ListParaVencDescEntDtos(par19List);
ObterDesconto desconto = par41AntOperTotDispVencRepository.obterDesconto(
dto.getCanal(),
STATUS_CONSULTA,
dto.getCodigoEc(),
par12.getOperVlBrutoAntec(),
dto.getTaxaProposta(),
dto.getSpreadProposto(),
CodigoBandeira.BANDEIRA999.getCode(),
INDICADOR_TOTAL_NAO,
fluxos,
dto.getUsuario(),
Long.valueOf(fluxos.size()));
ObterDescontoUtils.validaRetornoObterDescontoFlexibilizacao(desconto);
persistirFlexibilizacaoAlteracaoTaxa(par12, desconto, dto);
}
}
dto.setCodigoRetorno(SUCESSO);
return dto;
}
private void persistirFlexibilizacao(Par12AntOperDiaAntec par12,
AprovarFlexibilizacaoDto dto, CodigoStatusNegociacao codStatusNeg) throws ParBusinessException {
int status = flexibilizacaoRepository.procAtualizarFlexibilizacao(par12.getIdOperDiaAntec(),
codStatusNeg.getCode(),
dto.getTaxaProposta(),
dto.getSpreadProposto(),
dto.getUsuario(),
dto.getTextoDefesa());
if(status != 0){
throw new ParBusinessException(status);
}
}
private void persistirFlexibilizacaoAlteracaoTaxa(Par12AntOperDiaAntec par12, ObterDesconto desconto, AprovarFlexibilizacaoDto dto) throws ParBusinessException {
int status = flexibilizacaoRepository.procAprovarSolicitacaoAlteracaoTaxa(par12.getIdOperDiaAntec(),
desconto.getValorDescontoTotal(), desconto.getValorLiquidoTotal(), desconto.getTaxaOperacao(),
desconto.getTaxaEfetiva(), dto.getTaxaProposta(), desconto.getSpreadOperacao(),
desconto.getSpreadEfetivo(), dto.getSpreadProposto(), desconto.getCustoOperacao(),
desconto.getCustoEfetivo(), dto.getUsuario(), dto.getTextoDefesa(),
desconto.getListaVencimentoDesconto());
if (status != 0) {
throw new ParBusinessException(status);
}
}
private void verificarTaxaSpreadMinimo(BigDecimal taxaProposta, BigDecimal spreadProposto, Date dataAntecipacao, Long canal)
throws ParBusinessException {
Par32ParamTravaTxSprdMin travaTaxaSpread = par32ParamTravaTxSprdMinRepository.obterTaxaSpreadMínimo(dataAntecipacao);
if(travaTaxaSpread != null){
Par34CanalXTrava bypass = par34CanalXTravaRepository.pesquisarCanalXTraxaExistente(travaTaxaSpread.getIdParamTravaTxSprdMin(), canal);
if(bypass == null){
if(taxaProposta != null && taxaProposta.compareTo(travaTaxaSpread.getParamTxMinima()) < 0 ){
throw new ParBusinessException(TAXA_INFERIOR_TRAVA_32);
}
if(spreadProposto != null && spreadProposto.compareTo(travaTaxaSpread.getParamSpreadMinimo()) < 0 ){
throw new ParBusinessException(SPREAD_INFERIOR_TRAVA_32);
}
}
}
}
}
`
Bom minha dificuldade é como testar essa classe, estou tentando fazer dessa forma e só estou recebendo NULL nem entra na classe aonde do tentando testar, já tentei procurar na internet mais não achei nada parecido com essa classe que preciso testar, estou usando o Mockito junto com o JUnit mais não precisa ser exatamente com Mockito se algúem souber só usando o JUnit já vai me ajudar bastante.