package yuku.alkitabintegration.test; import android.content.ContentResolver; import android.test.AndroidTestCase; import yuku.alkitabintegration.AlkitabIntegrationUtil; import yuku.alkitabintegration.ConnectionResult; import yuku.alkitabintegration.provider.VerseProvider; import yuku.alkitabintegration.provider.VerseProvider.Verse; import yuku.alkitabintegration.provider.VerseProvider.VerseRanges; import java.util.List; public class VerseProviderTest extends AndroidTestCase { @Override public void setUp() throws Exception { AlkitabIntegrationUtil.setOverridenProviderAuthority("yuku.alkitab.debug.provider"); } public void testAvailable() throws Exception { assertEquals(ConnectionResult.SUCCESS, AlkitabIntegrationUtil.isIntegrationAvailable(getContext())); } public void testSingleVerse() throws Throwable { ContentResolver cr = getContext().getContentResolver(); VerseProvider vp = new VerseProvider(cr); int ari = 0x000103; Verse v = vp.getVerse(0, 1, 3); assertNotNull(v); assertEquals(v.ari, ari); assertNotNull(v.bookName); assertNotNull(v.text); assertTrue(v.text.length() > 0); assertNotNull(v.toString()); assertEquals(v.toString().substring(0, v.bookName.length()), v.bookName); // Gen 1:31 should have text assertNotNull(vp.getVerse(0x00011f)); // Gen 1:32 should be null assertNull(vp.getVerse(0x000120)); } public void testVerseRanges() throws Throwable { ContentResolver cr = getContext().getContentResolver(); VerseProvider vp = new VerseProvider(cr); VerseRanges ranges = new VerseRanges(); { ranges.addRange(0, 1, 1, 0, 1, 1); List<Verse> verses = vp.getVerses(ranges); assertEquals(1, verses.size()); } { ranges.addRange(0, 1, 1, 0, 1, 10); List<Verse> verses = vp.getVerses(ranges); assertEquals(11, verses.size()); } { ranges.addRange(1, 2, 25, 1, 3, 1); List<Verse> verses = vp.getVerses(ranges); assertEquals(13, verses.size()); assertEquals(0x010301, verses.get(12).ari); assertFalse(verses.get(0).bookName.equals(verses.get(11).bookName)); } { // should not have formatting codes ranges.addRange(2, 1, 1, 3, 1, 1); ranges.addRange(4, 1, 1, 4, 1, 1); ranges.addRange(60, 1, 1, 60, 1, 1); ranges.addRange(61, 1, 1, 61, 1, 1); ranges.addRange(62, 1, 1, 62, 1, 1); ranges.addRange(63, 1, 1, 63, 1, 1); ranges.addRange(64, 1, 1, 64, 1, 1); ranges.addRange(65, 1, 1, 65, 1, 1); List<Verse> verses = vp.getVerses(ranges); for (Verse verse : verses) { assertFalse(verse.text.contains("@")); } } } }