package wikokit.base.wikt.sql.test;
import wikokit.base.wikipedia.language.LanguageType;
import wikokit.base.wikipedia.sql.Connect;
import wikokit.base.wikt.sql.TPage;
import wikokit.base.wikt.sql.TPageInflection;
import wikokit.base.wikt.sql.TWikiText;
import wikokit.base.wikt.sql.TWikiTextWords;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import junit.framework.TestCase;
public class TWikiTextWordsTest extends TestCase {
public Context context = null;
Connect ruwikt_conn;
SQLiteDatabase db;
TWikiText wiki_text;
String page_title, str_wiki_text; // , inflected_form, str_wiki_text;
TPage page;
protected void setUp() throws Exception {
super.setUp();
ruwikt_conn = new Connect(context, LanguageType.ru);
ruwikt_conn.openDatabase();
db = ruwikt_conn.getDB();
// get wiki_text
// select * from wiki_text where text LIKE "%aha%" LIMIT 33;
str_wiki_text = "baharda";
wiki_text = TWikiText.get(db, str_wiki_text);
assertNotNull(wiki_text);
page_title = "весной";
page = TPage.get(db, page_title);
assertNotNull(page);
}
protected void tearDown() throws Exception {
super.tearDown();
ruwikt_conn.close();
}
public void testGetByWikiText() {
String page_title = "pin one's hopes";
TPage page = TPage.get(db, page_title);
assertNotNull(page);
TWikiTextWords[] words = TWikiTextWords.getByPage(db, page);
assertNotNull(words);
assertTrue(words.length > 0);
TWikiText wiki_text = words[0].getWikiText();
assertNotNull(wiki_text);
TWikiTextWords[] ww = TWikiTextWords.getByWikiText(db, wiki_text);
assertNotNull(ww);
assertEquals(ww.length, 1);
// [[pin one's hopes|pin one's hopes (on)]]
// [[page_title|wiki_text]]
}
public void testGetByWikiTextAndPageAndInflection() {
TPageInflection page_inflection = null;
String page_title = "baharda";
TPage page = TPage.get(db, page_title);
assertNotNull(page);
TWikiTextWords w = TWikiTextWords.getByWikiTextAndPageAndInflection(db, wiki_text, page, page_inflection);
assertNotNull(w);
}
//
public void testGetByPage() {
TWikiTextWords[] words = TWikiTextWords.getByPage(db, page);
assertNotNull(words);
assertTrue(words.length > 0);
}
public void testGetByID() {
TWikiTextWords[] words = TWikiTextWords.getByPage(db, page);
assertNotNull(words);
assertTrue(words.length > 0);
// get by id
TWikiTextWords word2 = TWikiTextWords.getByID(db, words[0].getID());
assertNotNull(word2);
}
public void testGetOneByWikiText() {
TWikiTextWords words = TWikiTextWords.getOneByWikiText(db, wiki_text);
assertNotNull(words);
TPage one_wiki_word = words.getPage();
assertNotNull(one_wiki_word);
assertEquals(str_wiki_text, one_wiki_word.getPageTitle());
}
public void testGetPageForOneWordWikiText() {
//[[word in normal form|inflected_form]]
TPage one_wiki_word = TWikiTextWords.getPageForOneWordWikiText(db, wiki_text);
assertNotNull(one_wiki_word);
assertEquals(str_wiki_text, one_wiki_word.getPageTitle());
}
public void testGetOneWordWikiTextByPage() {
TWikiTextWords[] words = TWikiTextWords.getByPage(db, page);
assertNotNull(words);
assertTrue(words.length > 0);
/*
//[[page_title|inflected_form]]
// SELECT page_title,text FROM wiki_text,wiki_text_words,page WHERE text LIKE "%bro%" AND wiki_text.id=wiki_text_id AND page_id=page.id LIMIT 33;
// +-----------------------------------+-----------------------------------+
| page_title | text |
+-----------------------------------+-----------------------------------+
| pin one's hopes | pin one's hopes (on) |*/
page_title = "pin one's hopes";
page = TPage.get(db, page_title);
assertNotNull(page);
String str_wiki_text = "pin one's hopes (on)";
wiki_text = TWikiText.get(db, str_wiki_text);
assertNotNull(wiki_text);
TWikiText[] array_wiki_texts = TWikiTextWords.getOneWordWikiTextByPage (db, page);
assertNotNull(array_wiki_texts);
assertEquals(1, array_wiki_texts.length);
assertEquals(str_wiki_text, array_wiki_texts[0].getText());
}
}