Как смоделировать метод void с помощью Functional Interface в методе dao? - PullRequest
0 голосов
/ 26 марта 2020

Я хотел бы смоделировать метод 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"));
...