Тестовый набор JUnit для Java 8 forEach с лямбда-выражением - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть одно требование для установки значений в итерационном списке, получая значение из карты. Для этого кода я должен написать контрольные примеры, используя 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);
     }

Если у кого-то есть идея как написать контрольный пример для этого. Заранее спасибо.

...