package wikokit.base.wikt.sql; import wikokit.base.wikt.sql.TPage; import wikokit.base.wikt.sql.TWikiTextWords; import wikokit.base.wikt.sql.TWikiText; import wikokit.base.wikt.sql.TInflection; import wikokit.base.wikt.sql.TPageInflection; import wikokit.base.wikt.util.WikiWord; //import wikipedia.sql.UtilSQL; 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; import wikokit.base.wikipedia.language.LanguageType; public class TWikiTextWordsTest { public Connect ruwikt_parsed_conn; String page_title, inflected_form, str_wiki_text, str_wiki_text_wikified; TWikiText wiki_text; TInflection infl; TPage page; TPageInflection page_infl; public TWikiTextWordsTest() { } @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); Connect conn = ruwikt_parsed_conn; // [[test_TWikiTextWords_insert_ru|test_TWikiTextWords_inflected_form]] page_title = conn.enc.EncodeFromJava("test_TWikiTextWords"); inflected_form = "test_TWikiTextWords_inflected_form"; // insert page, get meaning_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) { page = TPage.insert(conn, page_title, word_count, wiki_link_count, is_in_wiktionary, redirect_target); assertTrue(null != page); } // insert inflection int freq = 1; infl = TInflection.get(conn, inflected_form); if(null == infl) { infl = TInflection.insert(conn, inflected_form, freq); assertTrue(null != infl); } // page_inflection int term_freq = 1; page_infl = TPageInflection.get(conn, page, infl); if(null == page_infl) { page_infl = TPageInflection.insert(conn, page, infl, term_freq); assertTrue(null != page_infl); } // insert wiki_text str_wiki_text = "test_TWikiTextWords_insert_ru"; str_wiki_text_wikified = "[[test_TWikiTextWords_insert_ru]]"; wiki_text = TWikiText.get(conn, str_wiki_text); if(null == wiki_text) { wiki_text = TWikiText.insert(conn, str_wiki_text, str_wiki_text_wikified); assertTrue(null != wiki_text); } } @After public void tearDown() { Connect conn = ruwikt_parsed_conn; TPage.delete(conn, page_title); TInflection.delete(conn, infl); TPageInflection.delete(conn, page_infl); TWikiText.delete(conn, wiki_text); //UtilSQL.deleteAllRecordsResetAutoIncrement(conn, "page"); //UtilSQL.deleteAllRecordsResetAutoIncrement(conn, "inflection"); //UtilSQL.deleteAllRecordsResetAutoIncrement(conn, "page_inflection"); //UtilSQL.deleteAllRecordsResetAutoIncrement(conn, "wiki_text_words"); ruwikt_parsed_conn.Close(); } @Test public void testStoreToDB() { System.out.println("storeToDB_ru"); Connect conn = ruwikt_parsed_conn; TWikiTextWords twtw; StringBuffer s_wiki_text = new StringBuffer("Having a [[pleasant_test]] [[taste_test|tasting_test]], ... one [[sugar_test]]s_test."); WikiWord[] wiki_words = WikiWord.getWikiWords(page_title, s_wiki_text); //ww[0] = new WikiWord("pleasant_test","pleasant_test", null); //ww[1] = new WikiWord("taste_test", "tasting_test", null); //ww[2] = new WikiWord("sugar_test", "sugar_tests_test",null); for(WikiWord word : wiki_words) { TWikiTextWords.storeToDB (conn, wiki_text, word); String s_page = word.getWordLink(); String s_inflection = word.getWordVisible(); TPage p = TPage.get(conn, s_page); assertNotNull(p); TPageInflection p_infl; if(0 != s_page.compareTo(s_inflection)) { TInflection i = TInflection.get(conn, s_inflection); assertNotNull(i); p_infl = TPageInflection.get(conn, p, i); assertNotNull(p_infl); } else p_infl = null; twtw = TWikiTextWords.getByWikiTextAndPageAndInflection(conn, wiki_text, p, p_infl); assertNotNull(twtw); } // delete temporary records { TWikiText.deleteWithWords(conn, wiki_text); for(WikiWord word : wiki_words) { String s_page = word.getWordLink(); String s_inflection = word.getWordVisible(); TPage p = TPage.get(conn, s_page); TPageInflection p_infl; if(0 != s_page.compareTo(s_inflection)) { TInflection i = TInflection.get(conn, s_inflection); p_infl = TPageInflection.get(conn, p, i); // delete temporary records; inflection = "tasting_test", "sugar_tests_test" TInflection.delete(conn, i); TPageInflection.delete(conn, p_infl); } } String[] pages_test = {"pleasant_test", "taste_test", "sugar_test"}; for(String p: pages_test) { TWikiText w_text = TWikiText.get(conn, p); if(null != w_text) TWikiText.deleteWithWords(conn, w_text); TPage.delete(conn, p); } } } @Test public void testGetPageForOneWordWikiText() { System.out.println("getPageForOneWordWikiText"); Connect conn = ruwikt_parsed_conn; TWikiTextWords word; word = TWikiTextWords.insert(conn, wiki_text, page, page_infl); assertNotNull(word); //[[test_TWikiTextWords_insert_ru|test_TWikiTextWords_inflected_form]] TPage one_wiki_word = TWikiTextWords.getPageForOneWordWikiText(conn, wiki_text); assertNotNull(one_wiki_word); assertEquals(page_title, one_wiki_word.getPageTitle()); TWikiTextWords.delete(conn, word); } @Test public void testGetOneWordWikiTextByPage () { System.out.println("getOneWordWikiTextByPage"); Connect conn = ruwikt_parsed_conn; TWikiTextWords word; word = TWikiTextWords.insert(conn, wiki_text, page, page_infl); assertNotNull(word); //[[test_TWikiTextWords_insert_ru|test_TWikiTextWords_inflected_form]] TWikiText[] wiki_texts = TWikiTextWords.getOneWordWikiTextByPage (conn,page); assertNotNull(wiki_texts); assertEquals(1, wiki_texts.length); assertEquals(str_wiki_text, wiki_texts[0].getText()); TWikiTextWords.delete(conn, word); } @Test public void testInsert() { System.out.println("insert_ru"); Connect conn = ruwikt_parsed_conn; // words TWikiTextWords word = null; TWikiTextWords[] words = TWikiTextWords.getByWikiText(conn, wiki_text); if(null == words || words.length == 0) { // 1 word word = TWikiTextWords.insert(conn, wiki_text, page, page_infl); assertTrue(null != word); // word, word, word ... s words = TWikiTextWords.getByWikiText(conn, wiki_text); assertTrue(null != words); assertEquals(1, words.length); } else word = words[0]; // get by id TWikiTextWords word2 = TWikiTextWords.getByID(conn, word.getID()); assertTrue(null != word2); assertEquals(word. getWikiText().getText(), word2.getWikiText().getText()); TWikiTextWords.delete(conn, word); } @Test // test null value of page_inflection_id public void testInsert_where_page_inflection_is_NULL() { System.out.println("insert_where_page_inflection_is_NULL_ru"); Connect conn = ruwikt_parsed_conn; // words TWikiTextWords word = null; TWikiTextWords[] words = TWikiTextWords.getByWikiText(conn, wiki_text); if(null == words || words.length == 0) { // 1 word word = TWikiTextWords.insert(conn, wiki_text, page, null); // page_infl = null; assertTrue(null != word); // word, word, word ... s words = TWikiTextWords.getByWikiText(conn, wiki_text); assertTrue(null != words); assertEquals(1, words.length); } else word = words[0]; // get by id TWikiTextWords word2 = TWikiTextWords.getByID(conn, word.getID()); assertTrue(null != word2); assertEquals(word. getWikiText().getText(), word2.getWikiText().getText()); TWikiTextWords.delete(conn, word); } @Test public void testInsert_getByWikiTextAndPageAndInflection() { System.out.println("getByWikiTextAndPageAndInflection_ru"); Connect conn = ruwikt_parsed_conn; TWikiTextWords word0, word1; // words word0 = TWikiTextWords.getByWikiTextAndPageAndInflection(conn, wiki_text, page, page_infl); if(null == word0) { word1 = TWikiTextWords.insert(conn, wiki_text, page, page_infl); assertTrue(null != word1); word0 = TWikiTextWords.getByWikiTextAndPageAndInflection(conn, wiki_text, page, page_infl); } assertTrue(null != word0); TWikiTextWords.delete(conn, word0); } @Test public void testInsert_getByWikiTextAndPageAndInflection_check_null() { System.out.println("getByWikiTextAndPageAndInflection_check_null_where_page_inflection_is_NULL_ru"); Connect conn = ruwikt_parsed_conn; TWikiTextWords word0, word1; // words word0 = TWikiTextWords.getByWikiTextAndPageAndInflection(conn, wiki_text, page, null); if(null == word0) { word1 = TWikiTextWords.insert(conn, wiki_text, page, null); assertTrue(null != word1); word0 = TWikiTextWords.getByWikiTextAndPageAndInflection(conn, wiki_text, page, null); assertTrue(null != word0); } TWikiTextWords.delete(conn, word0); } }