Search in sources :

Example 6 with CategoryDao

use of org.liberty.android.fantastischmemo.dao.CategoryDao in project AnyMemo by helloworld1.

the class CardDaoTest method testSearchFirstOrdinalWithcategoryIfExists.

@SmallTest
@Test
public void testSearchFirstOrdinalWithcategoryIfExists() throws Exception {
    setupThreeCategories();
    CardDao cardDao = helper.getCardDao();
    CategoryDao categoryDao = helper.getCategoryDao();
    List<Category> cts = categoryDao.queryForEq("name", "My category");
    Category ct = cts.get(0);
    Card c = cardDao.queryFirstOrdinal(ct);
    assertEquals(2, (int) c.getId());
}
Also used : Category(org.liberty.android.fantastischmemo.entity.Category) CategoryDao(org.liberty.android.fantastischmemo.dao.CategoryDao) CardDao(org.liberty.android.fantastischmemo.dao.CardDao) Card(org.liberty.android.fantastischmemo.entity.Card) Test(org.junit.Test) SmallTest(android.support.test.filters.SmallTest) AbstractExistingDBTest(org.liberty.android.fantastischmemo.test.AbstractExistingDBTest) SmallTest(android.support.test.filters.SmallTest)

Example 7 with CategoryDao

use of org.liberty.android.fantastischmemo.dao.CategoryDao in project AnyMemo by helloworld1.

the class CardDaoTest method testGetRandomCardsWithCategory.

@SmallTest
@Test
public void testGetRandomCardsWithCategory() throws Exception {
    CardDao cardDao = helper.getCardDao();
    CategoryDao categoryDao = helper.getCategoryDao();
    setupThreeCategories();
    Category filterCategory1 = categoryDao.createOrReturn("My category");
    // larger than limit
    List<Card> cards1 = cardDao.getRandomCards(filterCategory1, 50);
    assertEquals(3, cards1.size());
    // smaller than limit
    List<Card> cards2 = cardDao.getRandomCards(filterCategory1, 1);
    assertEquals(1, cards2.size());
}
Also used : Category(org.liberty.android.fantastischmemo.entity.Category) CategoryDao(org.liberty.android.fantastischmemo.dao.CategoryDao) CardDao(org.liberty.android.fantastischmemo.dao.CardDao) Card(org.liberty.android.fantastischmemo.entity.Card) Test(org.junit.Test) SmallTest(android.support.test.filters.SmallTest) AbstractExistingDBTest(org.liberty.android.fantastischmemo.test.AbstractExistingDBTest) SmallTest(android.support.test.filters.SmallTest)

Example 8 with CategoryDao

use of org.liberty.android.fantastischmemo.dao.CategoryDao in project AnyMemo by helloworld1.

the class CardDaoTest method testQueryNextCardWithCategory.

@SmallTest
@Test
public void testQueryNextCardWithCategory() throws Exception {
    setupThreeCategories();
    CardDao cardDao = helper.getCardDao();
    CategoryDao categoryDao = helper.getCategoryDao();
    List<Category> cts = categoryDao.queryForEq("name", "My category");
    Category ct = cts.get(0);
    Card c2 = cardDao.queryForId(2);
    Card c5 = cardDao.queryNextCard(c2, ct);
    assertEquals(5, (int) c5.getId());
    Card c8 = cardDao.queryForId(8);
    c2 = cardDao.queryNextCard(c8, ct);
    assertEquals(2, (int) c2.getId());
}
Also used : Category(org.liberty.android.fantastischmemo.entity.Category) CategoryDao(org.liberty.android.fantastischmemo.dao.CategoryDao) CardDao(org.liberty.android.fantastischmemo.dao.CardDao) Card(org.liberty.android.fantastischmemo.entity.Card) Test(org.junit.Test) SmallTest(android.support.test.filters.SmallTest) AbstractExistingDBTest(org.liberty.android.fantastischmemo.test.AbstractExistingDBTest) SmallTest(android.support.test.filters.SmallTest)

Example 9 with CategoryDao

use of org.liberty.android.fantastischmemo.dao.CategoryDao in project AnyMemo by helloworld1.

the class CategoryTest method testAddCategories.

@SmallTest
@Test
public void testAddCategories() throws Exception {
    CategoryDao categoryDao = helper.getCategoryDao();
    List<Category> categories = categoryDao.queryForAll();
    int initSize = categories.size();
    Category c1 = categoryDao.createOrReturn("c1");
    assertNotNull(c1);
    assertEquals(c1.getName(), "c1");
    categories = categoryDao.queryForAll();
    assertEquals(categories.size(), initSize + 1);
    Category c2 = categoryDao.createOrReturn("c1");
    assertEquals(c2.getName(), "c1");
    assertEquals(categories.size(), initSize + 1);
}
Also used : Category(org.liberty.android.fantastischmemo.entity.Category) CategoryDao(org.liberty.android.fantastischmemo.dao.CategoryDao) SmallTest(android.support.test.filters.SmallTest) AbstractExistingDBTest(org.liberty.android.fantastischmemo.test.AbstractExistingDBTest) Test(org.junit.Test) SmallTest(android.support.test.filters.SmallTest)

Example 10 with CategoryDao

use of org.liberty.android.fantastischmemo.dao.CategoryDao in project AnyMemo by helloworld1.

the class DatabaseUtilsTest method testMergeDatabase.

@SmallTest
@Test
@SuppressWarnings("unused")
public void testMergeDatabase() throws Exception {
    // Create testing DB to merge
    String path2 = "/sdcard/testdb2.db";
    new File(path2).delete();
    AnyMemoDBOpenHelper helper2 = AnyMemoDBOpenHelperManager.getHelper(getContext(), path2);
    // DAOs to use
    CardDao destCardDao = helper.getCardDao();
    CategoryDao destCategoryDao = helper.getCategoryDao();
    LearningDataDao destLearningDataDao = helper.getLearningDataDao();
    CardDao srcCardDao = helper2.getCardDao();
    CategoryDao srcCategoryDao = helper2.getCategoryDao();
    LearningDataDao srcLearningDataDao = helper2.getLearningDataDao();
    // Create some categories in both db to test category merge
    Category destCat1 = destCategoryDao.createOrReturn("cat1");
    Category destCat2 = destCategoryDao.createOrReturn("cat2");
    Category srcCat2 = srcCategoryDao.createOrReturn("cat2");
    Category srcCat3 = srcCategoryDao.createOrReturn("cat3");
    // Modify the learning data and category for some cards in src
    Card destCard20 = destCardDao.queryForId(20);
    destCategoryDao.refresh(destCard20.getCategory());
    destLearningDataDao.refresh(destCard20.getLearningData());
    destCard20.setCategory(destCat1);
    LearningData destLd20 = destCard20.getLearningData();
    // Use a specific acq_reps for testing
    destLd20.setAcqReps(15);
    destLearningDataDao.update(destLd20);
    destCardDao.update(destCard20);
    // Another card for testing duplicated category in src and dest
    Card destCard21 = destCardDao.queryForId(21);
    destCategoryDao.refresh(destCard21.getCategory());
    destLearningDataDao.refresh(destCard21.getLearningData());
    destCard21.setCategory(destCat2);
    LearningData destLd21 = destCard21.getLearningData();
    destLd21.setAcqReps(16);
    destLearningDataDao.update(destLd21);
    destCardDao.update(destCard21);
    // Now set up the cards in the src db
    // Card 1 with a duplicated category as dest db
    Card srcCard1 = new Card();
    srcCard1.setQuestion("card1");
    LearningData srcLd1 = new LearningData();
    srcLd1.setAcqReps(8);
    srcCard1.setLearningData(srcLd1);
    srcCard1.setCategory(srcCat2);
    srcCardDao.createCard(srcCard1);
    // Card 2 with a new category
    Card srcCard2 = new Card();
    srcCard2.setQuestion("card2");
    LearningData srcLd2 = new LearningData();
    srcLd2.setAcqReps(10);
    srcCard2.setLearningData(srcLd2);
    srcCard2.setCategory(srcCat3);
    srcCardDao.createCard(srcCard2);
    // Card 3 with default lenaring data and category
    Card srcCard3 = new Card();
    srcCard3.setQuestion("card3");
    srcCard3.setCategory(new Category());
    srcCard3.setLearningData(new LearningData());
    srcCardDao.createCard(srcCard3);
    // Now merge them!
    databaseUtil.mergeDatabases(TestHelper.SAMPLE_DB_PATH, path2);
    // Original 28 plus 3 merged cards
    assertEquals(31, destCardDao.queryForAll().size());
    assertEquals(31, destLearningDataDao.queryForAll().size());
    // 5 categories: "", "french-body-parts.db", "cat1", "cat2", "cat3"
    assertEquals(5, destCategoryDao.queryForAll().size());
    // Query out the cards we are interested in
    Card mergedCard20 = destCardDao.queryForId(20);
    destLearningDataDao.refresh(mergedCard20.getLearningData());
    destCategoryDao.refresh(mergedCard20.getCategory());
    Card mergedCard21 = destCardDao.queryForId(21);
    destLearningDataDao.refresh(mergedCard21.getLearningData());
    destCategoryDao.refresh(mergedCard21.getCategory());
    Card mergedCard29 = destCardDao.queryForId(29);
    destLearningDataDao.refresh(mergedCard29.getLearningData());
    destCategoryDao.refresh(mergedCard29.getCategory());
    Card mergedCard30 = destCardDao.queryForId(30);
    destLearningDataDao.refresh(mergedCard30.getLearningData());
    destCategoryDao.refresh(mergedCard30.getCategory());
    Card mergedCard31 = destCardDao.queryForId(31);
    destLearningDataDao.refresh(mergedCard31.getLearningData());
    destCategoryDao.refresh(mergedCard31.getCategory());
    // Now verify
    // The original cards in dest should be intact
    assertEquals(destCard20.getOrdinal(), mergedCard20.getOrdinal());
    assertEquals(destCard20.getQuestion(), mergedCard20.getQuestion());
    assertEquals("cat1", mergedCard20.getCategory().getName());
    assertEquals(15, (int) mergedCard20.getLearningData().getAcqReps());
    assertEquals(destCard21.getOrdinal(), mergedCard21.getOrdinal());
    assertEquals(destCard21.getQuestion(), mergedCard21.getQuestion());
    assertEquals("cat2", mergedCard21.getCategory().getName());
    assertEquals(16, (int) mergedCard21.getLearningData().getAcqReps());
    // The newly merged cards
    assertEquals(29, (int) mergedCard29.getOrdinal());
    assertEquals("card1", mergedCard29.getQuestion());
    assertEquals("cat2", mergedCard29.getCategory().getName());
    assertEquals(8, (int) mergedCard29.getLearningData().getAcqReps());
    assertEquals(30, (int) mergedCard30.getOrdinal());
    assertEquals("card2", mergedCard30.getQuestion());
    assertEquals("cat3", mergedCard30.getCategory().getName());
    assertEquals(10, (int) mergedCard30.getLearningData().getAcqReps());
    assertEquals(31, (int) mergedCard31.getOrdinal());
    assertEquals("card3", mergedCard31.getQuestion());
    assertEquals("", mergedCard31.getCategory().getName());
    assertEquals(0, (int) mergedCard31.getLearningData().getAcqReps());
    // Clearn up
    AnyMemoDBOpenHelperManager.releaseHelper(helper2);
    new File(path2).delete();
}
Also used : AnyMemoDBOpenHelper(org.liberty.android.fantastischmemo.common.AnyMemoDBOpenHelper) Category(org.liberty.android.fantastischmemo.entity.Category) CategoryDao(org.liberty.android.fantastischmemo.dao.CategoryDao) File(java.io.File) LearningDataDao(org.liberty.android.fantastischmemo.dao.LearningDataDao) LearningData(org.liberty.android.fantastischmemo.entity.LearningData) CardDao(org.liberty.android.fantastischmemo.dao.CardDao) Card(org.liberty.android.fantastischmemo.entity.Card) Test(org.junit.Test) SmallTest(android.support.test.filters.SmallTest) AbstractExistingDBTest(org.liberty.android.fantastischmemo.test.AbstractExistingDBTest) SmallTest(android.support.test.filters.SmallTest)

Aggregations

CategoryDao (org.liberty.android.fantastischmemo.dao.CategoryDao)23 CardDao (org.liberty.android.fantastischmemo.dao.CardDao)22 Card (org.liberty.android.fantastischmemo.entity.Card)20 Category (org.liberty.android.fantastischmemo.entity.Category)19 SmallTest (android.support.test.filters.SmallTest)13 Test (org.junit.Test)13 AbstractExistingDBTest (org.liberty.android.fantastischmemo.test.AbstractExistingDBTest)13 AnyMemoDBOpenHelper (org.liberty.android.fantastischmemo.common.AnyMemoDBOpenHelper)10 LearningDataDao (org.liberty.android.fantastischmemo.dao.LearningDataDao)8 LearningData (org.liberty.android.fantastischmemo.entity.LearningData)5 FileWriter (java.io.FileWriter)3 BufferedWriter (java.io.BufferedWriter)2 File (java.io.File)2 IOException (java.io.IOException)2 PrintWriter (java.io.PrintWriter)2 CSVWriter (com.opencsv.CSVWriter)1 Date (java.util.Date)1 HashMap (java.util.HashMap)1 List (java.util.List)1 Callable (java.util.concurrent.Callable)1