package wikokit.base.wikt.multi.en;
import wikokit.base.wikt.multi.en.WTranslationEntryEn;
import wikokit.base.wikt.util.WikiText;
import wikokit.base.wikt.util.WikiWord;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;
import wikokit.base.wikt.word.WTranslationEntry;
public class WTranslationEntryEnTest {
public WTranslationEntryEnTest() {
}
@BeforeClass
public static void setUpClass() throws Exception {
}
@AfterClass
public static void tearDownClass() throws Exception {
}
@Before
public void setUp() {
}
@After
public void tearDown() {
}
// [[Datiwuy]] - wikified_language_name
@Test
public void testParse_wikified_language_name() {
System.out.println("parameters_wikified_language_name");
String page_title = "butterfly";
String text = "*[[Datiwuy]]: {{t|duj|buurnba}}";
WTranslationEntry result = WTranslationEntryEn.parse(page_title, text);
assertEquals(1, result.getWikiPhrases().length);
WikiText[] phrases = result.getWikiPhrases();
assertTrue(phrases[0].getVisibleText().equalsIgnoreCase( "buurnba" ) );
WikiWord[] ww0 = phrases[0].getWikiWords();
assertEquals(1, ww0.length);
assertTrue(ww0[0].getWordVisible().equalsIgnoreCase( "buurnba" ) );
assertTrue(ww0[0].getWordLink(). equalsIgnoreCase( "buurnba" ) );
}
// Latin - non_wikified_language_name
@Test
public void testParse_non_wikified_language_name() {
System.out.println("parameters_non_wikified_language_name");
String page_title = "butterfly";
String text = "*Latin: {{t-|la|papilio|alt=pāpíliō}}";
WTranslationEntry result = WTranslationEntryEn.parse(page_title, text);
assertEquals(1, result.getWikiPhrases().length);
WikiText[] phrases = result.getWikiPhrases();
assertTrue(phrases[0].getVisibleText().equalsIgnoreCase( "papilio" ) );
WikiWord[] ww0 = phrases[0].getWikiWords();
assertEquals(1, ww0.length);
assertTrue(ww0[0].getWordVisible().equalsIgnoreCase( "papilio" ) );
assertTrue(ww0[0].getWordLink(). equalsIgnoreCase( "papilio" ) );
}
// Empty translation
@Test
public void testParse_Empty_translation() {
System.out.println("parameters_Empty_translation");
String page_title = "butterfly";
// 1. ": "
String text = "*Latin: ";
WTranslationEntry result = WTranslationEntryEn.parse(page_title, text);
assertNull(result);
// 2. ":"
text = "*Latin:";
result = WTranslationEntryEn.parse(page_title, text);
assertNull(result);
}
// Error test: one line with several languages, e.g. la and de
@Test
public void testParse_one_line_with_several_languages() {
System.out.println("parameters_one_line_with_several_languages");
String page_title = "butterfly";
String text = "*Latin: {{t-|la|papilio|alt=pāpíliō}}, {{t|de|test}}";
WTranslationEntry result = WTranslationEntryEn.parse(page_title, text);
assertNull(result);
}
// Warning test: two unknown language codes, but only one Warning message
// should be printed!
@Test
public void testParse_two_unknown_language_codes() {
System.out.println("parameters_two_unknown_language_codes: Attention! Should be only one warning about unknown language code!");
String page_title = "butterfly";
String text = "*Latin: {{t-|unkn1|papilio|alt=pāpíliō}}";
WTranslationEntry result = WTranslationEntryEn.parse(page_title, text);
assertNull(result);
text = "*Latin: {{t-|unkn1|papilio|alt=pāpíliō}}";
result = WTranslationEntryEn.parse(page_title, text);
assertNull(result);
// without any warning, since there is no any translations in second parameter
text = "*Latin: {{t-|unkn1||alt=pāpíliō}}";
result = WTranslationEntryEn.parse(page_title, text);
assertEquals(null, result);
}
// t-SOP, @see http://en.wiktionary.org/wiki/Template:t-SOP
// livelihood
// * Russian: {{t-SOP|ru|[[средство|средства]] [[к]] [[существование|существованию]]|tr=srédstva k suščestvovániju|n-p}}
@Test
public void testParse_t_SOP() {
System.out.println("parameters_t_SOP");
String page_title = "livelihood";
String text = "* Russian: {{t-SOP|ru|[[средство|средства]] [[к]] [[существование|существованию]]|tr=srédstva k suščestvovániju|n-p}}";
WTranslationEntry result = WTranslationEntryEn.parse(page_title, text);
assertNotNull(result);
if(null == result) {
assertEquals(1, result.getWikiPhrases().length);
WikiText[] phrases = result.getWikiPhrases();
assertTrue(phrases[0].getVisibleText().equalsIgnoreCase( "средства к существованию" ) );
assertTrue(phrases[0].getWikifiedText().equalsIgnoreCase( "[[средство|средства]] [[к]] [[существование|существованию]]" ) );
WikiWord[] ww0 = phrases[0].getWikiWords();
assertEquals(3, ww0.length);
assertTrue(ww0[2].getWordVisible().equalsIgnoreCase( "существованию" ) );
assertTrue(ww0[2].getWordLink(). equalsIgnoreCase( "существование" ) );
}
}
}