package com.constellio.model.services.parser;
import static org.assertj.core.api.Assertions.assertThat;
import org.junit.Before;
import org.junit.Test;
import com.constellio.model.services.parser.LanguageDetectionServicesRuntimeException.LanguageDetectionManagerRuntimeException_CannotDetectLanguage;
import com.constellio.sdk.tests.ConstellioTest;
public class LanguageDetectionManagerAcceptTest extends ConstellioTest {
LanguageDetectionManager languageDetectionManager;
@Before
public void setUp()
throws Exception {
languageDetectionManager = getModelLayerFactory().getLanguageDetectionManager();
}
@Test
public void whenDetectingFrenchContentThenFrenchLanguageIsReturned()
throws Exception {
assertThatDetectedLanguageOfTextIs("Bonjour princesse", "fr");
assertThatDetectedLanguageOfTextIs("C'est de l'intimidation!", "fr");
assertThatDetectedLanguageOfTextIs("Francis est ici", "fr");
assertThatDetectedLanguageOfTextIs("Le Squatre novembre au soir", "fr");
assertThatDetectedLanguageOfTextIs("Le Squatre novembre au soir", "fr");
assertThatDetectedLanguageOfTextIs("L'indien Dakota est un grand parmi les grands", "fr");
assertThatDetectedLanguageOfTextIs("Dakota est grand", "fr");
assertThatDetectedLanguageOfTextIs("Botte la balle Sandy. Parfait Tom", "fr");
assertThatDetectedLanguageOfTextIs("Je suis Gandalf le blanc", "fr");
}
@Test
public void whenDetectingEnglishContentThenEnglishLanguageIsReturned()
throws Exception {
assertThatDetectedLanguageOfTextIs("The last show was awesome", "en");
assertThatDetectedLanguageOfTextIs("Nice, it is working", "en");
assertThatDetectedLanguageOfTextIs("Chuck Norris", "en");
assertThatDetectedLanguageOfTextIs("The legend of Bob", "en");
assertThatDetectedLanguageOfTextIs("Gandalf the white", "en");
}
@Test(expected = LanguageDetectionManagerRuntimeException_CannotDetectLanguage.class)
public void givenNoTextThenThrowException()
throws Exception {
languageDetectionManager.detectLanguage("");
}
private void assertThatDetectedLanguageOfTextIs(String text, String language) {
for (int i = 0; i < 1000; i++) {
assertThat(languageDetectionManager.detectLanguage(text)).isEqualTo(language);
}
}
}