package com.door43.translationstudio;
import android.content.Context;
import android.test.InstrumentationTestCase;
import com.door43.translationstudio.core.CheckingQuestion;
import com.door43.translationstudio.core.Indexer;
import com.door43.translationstudio.core.IndexerSQLiteHelper;
import com.door43.translationstudio.core.SourceTranslation;
import com.door43.translationstudio.core.TranslationWord;
import com.door43.translationstudio.core.Util;
/**
* Created by joel on 8/27/2015.
*/
public class IndexerTest extends InstrumentationTestCase {
private Indexer mIndex;
private Context mContext;
private MainApplication mApp;
@Override
protected void setUp() throws Exception {
mApp = AppContext.context();
IndexerSQLiteHelper indexHelper = new IndexerSQLiteHelper(mApp, "indexer_test_app");
mIndex = new Indexer(mApp, "indexer_test_app", indexHelper);
mContext = getInstrumentation().getContext();
}
public void test01IndexProjects() throws Exception {
mIndex.delete();
mIndex.rebuild();
String catalog = Util.readStream(mContext.getAssets().open("indexer/catalog.json"));
mIndex.beginTransaction();
assertTrue(mIndex.indexProjects(catalog));
mIndex.endTransaction(true);
assertTrue(mIndex.getProjectSlugs().length > 0);
}
public void test02IndexSourceLanguages() throws Exception {
String genCatalog = Util.readStream(mContext.getAssets().open("indexer/gen/languages.json"));
mIndex.beginTransaction();
assertTrue(mIndex.indexSourceLanguages("gen", genCatalog));
mIndex.endTransaction(true);
assertTrue(mIndex.getSourceLanguageSlugs("gen").length > 0);
String obsCatalog = Util.readStream(mContext.getAssets().open("indexer/obs/languages.json"));
mIndex.beginTransaction();
assertTrue(mIndex.indexSourceLanguages("obs", obsCatalog));
mIndex.endTransaction(true);
assertTrue(mIndex.getSourceLanguageSlugs("obs").length > 0);
}
public void test03IndexResources() throws Exception {
String genCatalog = Util.readStream(mContext.getAssets().open("indexer/gen/en/resources.json"));
mIndex.beginTransaction();
assertTrue(mIndex.indexResources("gen", "en", genCatalog));
mIndex.endTransaction(true);
assertTrue(mIndex.getResourceSlugs("gen", "en").length > 0);
String obsCatalog = Util.readStream(mContext.getAssets().open("indexer/obs/en/resources.json"));
mIndex.beginTransaction();
assertTrue(mIndex.indexResources("obs", "en", obsCatalog));
mIndex.endTransaction(true);
assertTrue(mIndex.getResourceSlugs("obs", "en").length > 0);
}
public void test04IndexSource() throws Exception {
SourceTranslation bibleTranslation = SourceTranslation.simple("gen", "en", "ulb");
String genCatalog = Util.readStream(mContext.getAssets().open("indexer/gen/en/ulb/source.json"));
mIndex.beginTransaction();
assertTrue(mIndex.indexSource(bibleTranslation, genCatalog));
mIndex.endTransaction(true);
String[] bibleChapterIds = mIndex.getChapterSlugs(bibleTranslation);
assertTrue(bibleChapterIds.length > 0);
for(String chapterId:bibleChapterIds) {
assertNotNull(mIndex.getChapter(bibleTranslation, chapterId));
String[] bibleFrameIds = mIndex.getFrameSlugs(bibleTranslation, chapterId);
assertTrue(bibleFrameIds.length > 0);
for(String frameId:bibleFrameIds) {
assertNotNull(mIndex.getFrame(bibleTranslation, chapterId, frameId));
}
}
SourceTranslation obsTranslation = SourceTranslation.simple("obs", "en", "obs");
String obsCatalog = Util.readStream(mContext.getAssets().open("indexer/obs/en/obs/source.json"));
mIndex.beginTransaction();
assertTrue(mIndex.indexSource(obsTranslation, obsCatalog));
mIndex.endTransaction(true);
String[] obsChapterIds = mIndex.getChapterSlugs(obsTranslation);
assertTrue(obsChapterIds.length > 0);
for(String chapterId:obsChapterIds) {
assertTrue(mIndex.getFrameSlugs(obsTranslation, chapterId).length > 0);
String[] obsFrameIds = mIndex.getFrameSlugs(obsTranslation, chapterId);
assertTrue(obsFrameIds.length > 0);
for(String frameId:obsFrameIds) {
assertNotNull(mIndex.getFrame(obsTranslation, chapterId, frameId));
}
}
}
public void test05IndexNotes() throws Exception {
SourceTranslation translation = SourceTranslation.simple("obs", "en", "obs");
String catalog = Util.readStream(mContext.getAssets().open("indexer/obs/en/obs/notes.json"));
mIndex.beginTransaction();
assertTrue(mIndex.indexTranslationNotes(translation, catalog));
mIndex.endTransaction(true);
String[] noteIds = mIndex.getNoteSlugs(translation, "01", "01");
assertTrue(noteIds.length > 0);
assertNotNull(mIndex.getNote(translation, "01", "01", noteIds[0]));
}
public void test06IndexTerms() throws Exception {
SourceTranslation translation = SourceTranslation.simple("obs", "en", "obs");
String catalog = Util.readStream(mContext.getAssets().open("indexer/obs/en/obs/terms.json"));
mIndex.beginTransaction();
assertTrue(mIndex.indexTranslationWords(translation, catalog));
mIndex.endTransaction(true);
String[] allTermIds = mIndex.getWordSlugs(translation);
assertTrue(allTermIds.length > 0);
assertNotNull(mIndex.getWord(translation, allTermIds[0]));
String associationscatalog = Util.readStream(mContext.getAssets().open("indexer/obs/en/obs/tw_cat.json"));
mIndex.beginTransaction();
assertTrue(mIndex.indexTermAssignments(translation, associationscatalog));
mIndex.endTransaction(true);
TranslationWord[] frameWords = mIndex.getWordsForFrame(translation, "01", "01");
assertTrue(frameWords.length > 0);
}
public void test07IndexQuestions() throws Exception {
SourceTranslation translation = SourceTranslation.simple("obs", "en", "obs");
String catalog = Util.readStream(mContext.getAssets().open("indexer/obs/en/obs/checking_questions.json"));
mIndex.beginTransaction();
assertTrue(mIndex.indexQuestions(translation, catalog));
mIndex.endTransaction(true);
CheckingQuestion[] questions = mIndex.getCheckingQuestions(translation, "01", "01");
assertTrue(questions.length > 0);
assertNotNull(mIndex.getCheckingQuestion(translation, "01", "01", questions[0].getId()));
}
public void test08IndexTranslationAcademy() throws Exception {
SourceTranslation translation = SourceTranslation.simple("gen", "en", "ulb");
String catalog = Util.readStream(mApp.getAssets().open("ta.json"));
mIndex.beginTransaction();
assertTrue(mIndex.indexTranslationAcademy(translation, catalog));
mIndex.endTransaction(true);
// TODO: 12/4/2015 test retrieving an article
}
}