@Test public void testAddWordUnknown() throws SpellCheckerInvalidParameterException { LanguageRepository languageRepositoryMock = Mockito.mock(LanguageRepository.class); Mockito.when(languageRepositoryMock.findByShortCode(KNOWN_LANGUAGE)).thenReturn(enLanguage); spellCheckerService.setLanguageRepository(languageRepositoryMock); WordRepository wordRepositoryMock = Mockito.mock(WordRepository.class); Mockito.when(wordRepositoryMock.findByLanguageAndName(enLanguage, UNKNOWN_WORD)) .thenReturn(null); spellCheckerService.setWordRepository(wordRepositoryMock); Boolean isAdded = spellCheckerService.addWord(KNOWN_LANGUAGE, UNKNOWN_WORD); assertThat(isAdded).isEqualTo(true); }
@Test public void testAddWordWithNullName() { SpellCheckerInvalidParameterException exception = null; LanguageRepository languageRepositoryMock = Mockito.mock(LanguageRepository.class); Mockito.when(languageRepositoryMock.findByShortCode(KNOWN_LANGUAGE)).thenReturn(enLanguage); spellCheckerService.setLanguageRepository(languageRepositoryMock); try { spellCheckerService.addWord(KNOWN_LANGUAGE, null); } catch (SpellCheckerInvalidParameterException e) { exception = e; } Assert.assertNotNull(exception); Assert.assertEquals( SpellCheckerExceptionStatus.INVALID_WORD.toString(), exception.getMessage()); }
@Test public void testAddWordWithNewLanguage() { Language newLanguage = new Language(UNKNOWN_LANGUAGE); Word word = new Word(KNOWN_WORD, newLanguage); LanguageRepository languageRepositoryMock = Mockito.mock(LanguageRepository.class); Mockito.when(languageRepositoryMock.findByShortCode(UNKNOWN_LANGUAGE)).thenReturn(null); spellCheckerService.setLanguageRepository(languageRepositoryMock); WordRepository wordRepositoryMock = Mockito.mock(WordRepository.class); Mockito.when(wordRepositoryMock.findByLanguageAndName(newLanguage, KNOWN_WORD)) .thenReturn(word); spellCheckerService.setWordRepository(wordRepositoryMock); Boolean isAdded = spellCheckerService.addWord(UNKNOWN_LANGUAGE, UNKNOWN_WORD); assertThat(isAdded).isNotNull(); assertThat(isAdded).isEqualTo(true); verify(languageRepositoryMock, times(1)).save(Mockito.any(Language.class)); verify(wordRepositoryMock, times(1)).save(Mockito.any(Word.class)); }