0

I want to mockup the result from this SQL query:

   public List<RiskFilters> findRiskFiltersByTerminalIdAndType(int terminal_id, String filter_class) {
        String hql = "....";  
        TypedQuery<RiskFilters> query = entityManager.createQuery(hql, RiskFilters.class)....;
        List<RiskFilters> riskFilters = query.getResultList();
        return riskFilters;
    }

I tried this mockup configuration:

List<RiskFilters> riskFiltersList = new ArrayList<RiskFilters>();
        riskFiltersList.add(new RiskFilters()); 

        when(riskFilterService.findRiskFiltersByTerminalIdAndType(anyInt(), anyString())).thenReturn(riskFiltersList);

But I get NPE here:

List<RiskFilters> filter_list = riskFilterService.findRiskFiltersByTerminalIdAndType(11, "BinCountryCheckFilter");

Looks like the params of the mock are not correct. Do you know how to properly implement this?

Peter Penzov
  • 1,126
  • 134
  • 430
  • 808

2 Answers2

1

I think need to given(...).willReturn(...).

refer to https://www.baeldung.com/bdd-mockito

WonChul Heo
  • 242
  • 1
  • 12
0

It seems like riskFilterService is not mocked, in the test class you have to annotate RiskFilterService with @Mock, the class being tested with @InjectMocks and make sure you init all mocks, somthing like https://www.baeldung.com/mockito-junit-5-extension and How to use Mockito with JUnit5

JorgeB
  • 103
  • 2
  • 9