Im trying to mock NamedParameterJdbcTemplate inside LaAttributeRepo Calss having below method findFieldByItemId
SqlParameterSource param = new MapSqlParameterSource("laIds", laIds);
List < LaAttributes > laAttributes = jdbcTemplate.query("Select_query", param,
(rs, rowNum) -> new LaAttributes(rs.getString("cloumn1"), rs.getString("cloumn2")));
//jdbcTemplate is NamedParameterJdbcTemplate
I need to mock it in test class below
@Test
public void findFieldsByItemId() {
List < String > itemsId = new ArrayList < > ();
itemsId.add("VZ203");
//NamedParameterJdbcTemplate is mocked.
Mockito.when(mockedNamedParameterJdbcTemplate.query(Mockito.anyString,
Mockito.any(MapSqlParameterSource.class), Mockito.any(ResultSetExtractor.class))).thenAnswer(
(invocationOnMock) -> {
ResultSetExtractor < List < LaAttributes >> resultSetExtractor = invocationOnMock.getArgument(2);
ResultSet rs = Mockito.mock(ResultSet.class);
Mockito.when(rs.getString(ArgumentMatchers.eq("column1")))
.thenReturn("column1");
Mockito.when(rs.getString(ArgumentMatchers.eq("column2")))
.thenReturn("column2");
return resultSetExtractor.extractData(rs);
});
List < LaAttributes > laAttributes = laAttributeRepo.findFieldByItemId(ItemsId);
Assert.assertEquals("column1", laAttributes.get(0).getColumnOne());
}
I am getting list as null for laAttributeRepo.findFieldByItemId(ItemId)
Not sure what to do. Can anyone help ?