package wikokit.base.wikt.util;
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.*;
public class WikiTextTest {
public WikiTextTest() {
}
@BeforeClass
public static void setUpClass() throws Exception {
}
@AfterClass
public static void tearDownClass() throws Exception {
}
@Before
public void setUp() {
}
@After
public void tearDown() {
}
@Test
public void testCreateSplitByComma() {
System.out.println("createSplitByComma");
String page_title = "колокольчик";
String text = "[[little]] [[bell]], [[handbell]], [[doorbell]]";
WikiText[] phrases = WikiText.createSplitByComma(page_title, text);
assertEquals(3, phrases.length);
assertTrue(phrases[0].getVisibleText().equalsIgnoreCase( "little bell" ) );
WikiWord[] ww0 = phrases[0].getWikiWords();
assertEquals(2, ww0.length);
assertTrue(ww0[0].getWordVisible().equalsIgnoreCase( "little" ) );
assertTrue(ww0[0].getWordLink(). equalsIgnoreCase( "little" ) );
assertTrue(phrases[1].getVisibleText().equalsIgnoreCase( "handbell" ) );
assertTrue(phrases[2].getVisibleText().equalsIgnoreCase( "doorbell" ) );
}
@Test
public void testCreateOnePhrase() {
System.out.println("CreateOnePhrase");
String page_title = "колокольчик";
String text = "[[little]] [[bell]], [[handbell]], [[doorbell]]";
WikiText phrase = WikiText.createOnePhrase(page_title, text);
WikiWord[] ww = phrase.getWikiWords();
assertEquals(4, ww.length);
assertTrue(ww[0].getWordVisible().equalsIgnoreCase( "little" ) );
assertTrue(ww[0].getWordLink(). equalsIgnoreCase( "little" ) );
assertTrue(phrase.getVisibleText().equalsIgnoreCase( "little bell, handbell, doorbell" ) );
assertTrue(phrase.getWikifiedText().equalsIgnoreCase( "[[little]] [[bell]], [[handbell]], [[doorbell]]" ) );
}
@Test
public void testCreateSplitByComma_comma_in_brackets() {
System.out.println("createSplitByComma_comma_in_brackets");
String page_title = "test";
String text = "[[little]] [[bell]] (very little, little), [[handbell]], [[doorbell]]";
WikiText[] phrases = WikiText.createSplitByComma(page_title, text);
assertEquals(3, phrases.length);
assertTrue(phrases[0].getVisibleText().equalsIgnoreCase( "little bell" ) );
}
// todo test leading spaces
// ...
// checks assertion that: "wikified text is NULL if "text" hasn't any wikification".
@Test
public void testCreateOnePhrase_absent_wikification() {
System.out.println("CreateOne_absent_wikification");
String page_title = "test page title";
String text = "wikification is absent";
WikiText phrase = WikiText.createOnePhrase(page_title, text);
WikiWord[] ww0 = phrase.getWikiWords();
assertEquals(0, ww0.length);
assertTrue(phrase.getVisibleText().equalsIgnoreCase( "wikification is absent" ) );
assertNull(phrase.getWikifiedText() );
}
// // if there are commas ,,, in the text, then nothiing is changed
// checks assertion that: "wikified text is NULL if "text" hasn't any wikification".
@Test
public void testCreateSplitByComma_absent_wikification_with_commas() {
System.out.println("createSplitByComma_absent_wikification_with_commas");
String page_title = "test page title2";
String text = "no wikification again, and again";
WikiText[] phrases = WikiText.createSplitByComma(page_title, text);
assertEquals(2, phrases.length);
assertTrue(phrases[0].getVisibleText().equalsIgnoreCase( "no wikification again" ) );
assertNull(phrases[0].getWikifiedText());
WikiWord[] ww0 = phrases[0].getWikiWords();
assertEquals(0, ww0.length);
}
}