### Question:
InitStateMapper implements DataMapper<InitState, InitStateDto> { @Override public Collection<InitState> mapDtosToEntities(Collection<InitStateDto> input) { return input.stream().map(this::mapDtoToEntity).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 mapDtosToEntities_expectEmptyList() { Collection<InitStateDto> initStateDtos = new ArrayList<>(); Collection<InitState> initStates = initStateMapper.mapDtosToEntities(initStateDtos); assertTrue(initStates.isEmpty()); }
@Test public void mapDtosToEntities_expectAllMapped() { InitStateDto initStateDto1 = new InitStateDto(); initStateDto1.setInitState(InitStateName.CREATE_USER); InitStateDto initStateDto2 = new InitStateDto(); initStateDto2.setInitState(InitStateName.INITIALIZED); Collection<InitStateDto> initStateDtos = Arrays.asList(initStateDto1, initStateDto2); Collection<InitState> initStates = initStateMapper.mapDtosToEntities(initStateDtos); assertEquals(initStateDtos.size(), initStates.size()); Optional<InitState> firstInitState = initStates.stream().findFirst(); Optional<InitState> secondInitState = initStates.stream().skip(1).findFirst(); if (firstInitState.isPresent() && secondInitState.isPresent()) { assertEquals(initStateDto1.getInitState(), firstInitState.get().getInitState()); assertEquals(initStateDto2.getInitState(), secondInitState.get().getInitState()); } else { Assert.fail(); } }