### Question:
HabitFactServiceImpl implements HabitFactService { @Override public HabitFactDTO getHabitFactByName(String language, String name) { return modelMapper.map(factTranslationRepo.findFactTranslationByLanguage_CodeAndHabitFact(language, name) .orElseThrow(() -> new NotFoundException(ErrorMessage.HABIT_FACT_NOT_FOUND_BY_ID + name)), HabitFactDTO.class); } @Autowired  HabitFactServiceImpl(ModelMapper modelMapper, HabitFactRepo habitFactRepo,
                                HabitDictionaryRepo habitDictionaryRepo, FactTranslationRepo factTranslationRepo); @Override List<LanguageTranslationDTO> getAllHabitFacts(); @Override LanguageTranslationDTO getRandomHabitFactByHabitIdAndLanguage(Long id, String language); @Override HabitFactDTO getHabitFactById(Long id); @Override HabitFactDTO getHabitFactByName(String language, String name); @Override HabitFact save(HabitFactPostDTO fact); @Override HabitFact update(HabitFactPostDTO fact, Long id); @Override Long delete(Long id);  }### Answer:
@Test public void getHabitFactByName() { when(factTranslationRepo.findFactTranslationByLanguage_CodeAndHabitFact("en", "test")).thenReturn(Optional.of(factTranslation)); when(modelMapper.map(factTranslation, HabitFactDTO.class)).thenReturn(habitFactDTO); assertEquals(habitFactDTO, habitFactService.getHabitFactByName("en", "test")); }
@Test(expected = NotFoundException.class) public void getHabitFactByNameFailed() { habitFactService.getHabitFactByName("en", "test"); }