Я хотел бы смоделировать метод void с помощью Functional Interface в методе dao. Каким-то образом я не мог принять примеры. Код (более или менее) выглядит следующим образом:
...
public interface StreamNode {
void nodeInit (StreamRecord record);
void nodeProcess (StreamRecord record);
void nodeControl (StreamRecord record);
void nodeCommit (StreamRecord record);
void nodeRollback(StreamRecord record);
}
private final JdbcDao processDao;
...
processDao.downloadSplittedStreamRecords (sqlStatement2,
paramMap,
instNum,
templateRecord,
consumerScale,
"SOLUTION",
tempSolutionsSet,
colToRecNameMap,
new StreamRecordForwarder() { // Functional interface object
public void forwardRecord(StreamRecord record) {
record.putS(Fields.YEAR_S, record.getS(Fields.SELECTABLEYEARMONTH_S).substring(0,4));
record.putS(Fields.TTCLOSEDYEARMONTH_S, record.getS(Fields.SELECTABLEYEARMONTH_S));
nextNode.nodeProcess(record);
}
});
Test Code
@Mock
EttsYearlyAggregatorNode ettsYearlyAggregatorNode;
...
Mockito.doNothing().when(processDao).downloadSplittedStreamRecords(ArgumentMatchers.anyString(),....);
...
verify(ettsYearlyAggregatorNode,times(1)).nodeProcess( refEq(expectedRecord,"recordNum"));