I am having trouble creating tests with Mockito. During debugging with Eclipse, I got null from Restrictions.eq , I took every step to create a static layout with Restrictions :
@RunWith(PowerMockRunner.class) @PrepareForTest({ RequisicaoList.class, StatusMessages.class, FacesMessages.class, Restrictions.class }) public class RequisicaoListTest { ... @SuppressWarnings("unchecked") public String criteriaContigencia() { Criteria criteria = criarCriteria(Requisicao.class); criteria.createAlias("produto", "prod"); criteria.add(Restrictions.eq("prod.ar",arSelecionada)); if (getExemplo().getNrProtocolo() != null) criteria.add(Restrictions.eq("nrProtocolo", getExemplo() .getNrProtocolo())); situacoesPesquisa.clear(); situacoesPesquisa.add(SituacaoRequisicao.PENDENTE_PAGAMENTO); situacoesPesquisa.add(SituacaoRequisicao.PENDENTE_AGENDAMENTO); if (!situacoesPesquisa.isEmpty()) { criteria.add(Restrictions.in("situacao", situacoesPesquisa)); } if (getExemplo().getResponsavel() != null && StringUtils.isNotBlank(getExemplo().getResponsavel().getCpf())) { criteria = criteria.createCriteria("responsavel"); criteria = criteria.add(Restrictions.eq("cpf", getExemplo().getResponsavel().getCpf())); } resultado = Collections.checkedList(criteria.list(),Requisicao.class); return null; }
My code mixes managedBean with persistence level, I cannot change it, but I have to create tests for this project.
The problem is to mock
Restrictions.eq("cpf", getExemplo().getResponsavel().getCpf())
because even i do:
SimpleExpression simpleExpressionEq = mock(SimpleExpression.class); PowerMockito.mockStatic(Restrictions.class); when(Restrictions.eq("cpf", "00000000091")).thenReturn(simpleExpressionEq);
then I still get a null return from Restriction.eq , even passing spectral values. But during debugging, if I express an expression in an expression view,
Restrictions.eq("cpf", "00000000091"))
It works fine and returns the mock SimpleExpression
source share