package wikokit.base.wikt.sql;
//import wikipedia.sql.Connect;
import wikokit.base.wikt.sql.TPOS;
import wikokit.base.wikt.sql.TLangPOS;
import wikokit.base.wikt.sql.TLang;
import wikokit.base.wikt.sql.TPage;
import wikokit.base.wikipedia.language.LanguageType;
import wikokit.base.wikt.constant.POS;
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.wikipedia.sql.Connect;
public class TLangPOSTest {
public Connect ruwikt_parsed_conn;
TPOS pos;
TLang lang;
TPage page;
String page_title;
public TLangPOSTest() {
}
@BeforeClass
public static void setUpClass() throws Exception {
}
@AfterClass
public static void tearDownClass() throws Exception {
}
@Before
public void setUp() {
ruwikt_parsed_conn = new Connect();
ruwikt_parsed_conn.Open(Connect.RUWIKT_HOST,Connect.RUWIKT_PARSED_DB,Connect.RUWIKT_USER,Connect.RUWIKT_PASS,LanguageType.ru);
TLang.recreateTable(ruwikt_parsed_conn); // once upon a time: create Wiktionary parsed db
TLang.createFastMaps(ruwikt_parsed_conn); // once upon a time: use Wiktionary parsed db
TPOS.recreateTable(ruwikt_parsed_conn); // once upon a time: create Wiktionary parsed db
TPOS.createFastMaps(ruwikt_parsed_conn); // once upon a time: use Wiktionary parsed db
Connect conn = ruwikt_parsed_conn;
page_title = ruwikt_parsed_conn.enc.EncodeFromJava("test_lang_pos");
// insert page, get page_id
int word_count = 7;
int wiki_link_count = 13;
boolean is_in_wiktionary = true;
String redirect_target = null;
page = TPage.get(conn, page_title);
if(null == page) {
TPage.insert(conn, page_title, word_count, wiki_link_count,
is_in_wiktionary, redirect_target);
page = TPage.get(conn, page_title);
assertTrue(null != page);
}
// lang & pos
int lang_id = TLang.getIDFast(LanguageType.os); //227;
lang = TLang.getTLangFast(lang_id);
assertTrue(null != lang);
assertEquals(LanguageType.os, lang.getLanguage());
pos = TPOS.get(POS.noun);
assertTrue(null != pos);
}
@After
public void tearDown() {
TPage.delete(ruwikt_parsed_conn, page_title);
ruwikt_parsed_conn.Close();
}
@Test
public void testInsert() {
System.out.println("insert_ru");
Connect conn = ruwikt_parsed_conn;
int etymology_n = 0;
String lemma = "";
TLangPOS lang_pos = TLangPOS.insert(conn, page, lang, pos, etymology_n, lemma);
assertTrue(null != lang_pos);
TLangPOS[] array_lang_pos = TLangPOS.get(conn, page);
// TLangPOS[] array_lang_pos = TLangPOS.get(conn, page, lang, pos); todo?
assertTrue(null != array_lang_pos);
assertEquals(1, array_lang_pos.length);
TLangPOS.delete(conn, page);
array_lang_pos = TLangPOS.get(conn, page); // , lang, pos);
assertEquals(0, array_lang_pos.length);
}
@Test
public void testInsertTwiceLangHeader_and_getUniqueByPagePOSLangEtymology() {
System.out.println("insertTwiceLangHeader_and_getUniqueByPagePOSLangEtymology");
Connect conn = ruwikt_parsed_conn;
int etymology_n = 0;
String lemma = "";
TLangPOS lang_pos = TLangPOS.insert(conn, page, lang, pos, etymology_n, lemma);
assertTrue(null != lang_pos);
TLangPOS lang_pos_twice = TLangPOS.insert(conn, page, lang, pos, etymology_n, lemma);
assertTrue(null != lang_pos_twice);
TLangPOS.delete(conn, page);
}
@Test //TLangPOS getByID (Connect connect,int id)
public void testGetByID() {
System.out.println("getByID_ru");
Connect conn = ruwikt_parsed_conn;
int etymology_n = 0;
String lemma = "";
TLangPOS.insert(conn, page, lang, pos, etymology_n, lemma);
// let's found ID:
TLangPOS[] array_lang_pos = TLangPOS.get(conn, page);
assertTrue(null != array_lang_pos);
assertEquals(1, array_lang_pos.length);
int id = array_lang_pos[0].getID();
// test
TLangPOS lang_pos = TLangPOS.getByID(conn, id);
assertTrue(null != lang_pos);
assertEquals(page.getID(), lang_pos.getPage().getID());
TLangPOS.delete(conn, page);
}
// SELECt lang_id FROM lang_pos WHERE page_id=674672 GROUP by lang_id;
//public static TLang[] getLanguages (Connect connect,TPage page) {
@Test //TLang[] getLanguages (Connect connect,TPage page)
public void testGetLanguages() {
System.out.println("getLanguages_ru");
Connect conn = ruwikt_parsed_conn;
int etymology_n = 0;
String lemma = "";
TLangPOS lang_pos = TLangPOS.insert(conn, page, lang, pos, etymology_n, lemma);
assertTrue(null != lang_pos);
TPage tpage = lang_pos.getPage();
assertTrue(null != tpage);
// test
TLang[] languages = TLangPOS.getLanguages(conn, tpage);
assertTrue(null != languages);
assertEquals(1, languages.length);
TLangPOS.delete(conn, page);
}
}