### Question:
InitStateMapper implements DataMapper<InitState, InitStateDto> { @Override public Collection<InitStateDto> mapEntitiesToDtos(Collection<InitState> input) { return input.stream().map(this::mapEntityToDto).collect(Collectors.toList()); }  @Override InitState mapDtoToEntity(InitStateDto input); @Override InitStateDto mapEntityToDto(InitState input); @Override Collection<InitState> mapDtosToEntities(Collection<InitStateDto> input); @Override Collection<InitStateDto> mapEntitiesToDtos(Collection<InitState> input);  }### Answer:
@Test public void mapEntitiesToDtos_expectEmptyList() { Collection<InitState> initStates = new ArrayList<>(); Collection<InitStateDto> initStateDtos = initStateMapper.mapEntitiesToDtos(initStates); assertTrue(initStateDtos.isEmpty()); }
@Test public void mapEntitiesToDtos_expectAllMapped() { InitState initState1 = new InitState(); initState1.setId(1L); initState1.setInitState(InitStateName.CREATE_USER); InitState initState2 = new InitState(); initState2.setId(2L); initState2.setInitState(InitStateName.INITIALIZED); Collection<InitState> initStates = Arrays.asList(initState1, initState2); Collection<InitStateDto> initStateDtos = initStateMapper.mapEntitiesToDtos(initStates); assertEquals(initStates.size(), initStateDtos.size()); Optional<InitStateDto> firstInitStateDto = initStateDtos.stream().findFirst(); Optional<InitStateDto> secondInitStateDto = initStateDtos.stream().skip(1).findFirst(); if (firstInitStateDto.isPresent() && secondInitStateDto.isPresent()) { assertEquals(initState1.getInitState(), firstInitStateDto.get().getInitState()); assertEquals(initState2.getInitState(), secondInitStateDto.get().getInitState()); } else { Assert.fail(); } }