У меня есть одно требование для установки значений в итерационном списке, получая значение из карты. Для этого кода я должен написать контрольные примеры, используя Junit и mockito.
public void setAccountIdToAccountOrders(List<OrderLine> orderLineList, Map<Integer,
AccountFlexView> acctMap) {
orderLineList.forEach(orderLineList-> {
AccountFlexView accountFlexView = acctMap.get(orderLineList.getAcctKey());
orderLineList.setAccountId(accountFlexView.getAccountId());
orderLineList.setInternalLeadAccountId(accountFlexView.getAccountKey());
});
}
Ниже в моем тестовом примере, но с использованием итератора, который не насмехается над кодом внутри forEach l oop, который фактически использует лямбда-выражение.
@Test
public void testSetAccountIdToPrismAccountOrders(){
when(approvedOrderLineList.iterator()).thenReturn(iteratOrderLine);
when(iteratOrderLine.hasNext()).thenReturn(true, false);
when(iteratOrderLine.next()).thenReturn(orderLine);
when(prismAccountsFlexViewMap.get(any())).thenReturn(accountFlexView);
when(orderLine.getAcctKey()).thenReturn(accountKey);
when(accountFlexView.getAccountId()).thenReturn(DTF_LEAD_INTRNL_AC_ID);
when(accountFlexView.getAccountKey()).thenReturn(accountKey);
dashBoardServiceImpl.setAccountIdToPrismAccountOrders(approvedOrderLineList,
prismAccountsFlexViewMap);
}
Если у кого-то есть идея как написать контрольный пример для этого. Заранее спасибо.