use of org.liberty.android.fantastischmemo.dao.CardDao in project AnyMemo by helloworld1.
the class CSVExporter method convert.
@Override
public void convert(String src, String dest) throws Exception {
new File(dest).delete();
AnyMemoDBOpenHelper helper = AnyMemoDBOpenHelperManager.getHelper(src);
final CardDao cardDao = helper.getCardDao();
final CategoryDao categoryDao = helper.getCategoryDao();
CSVWriter writer;
if (separator == null) {
writer = new CSVWriter(new FileWriter(dest));
} else {
writer = new CSVWriter(new FileWriter(dest), separator);
}
try {
final List<Card> cardList = cardDao.queryForAll();
// Populate all category field in a transaction.
categoryDao.callBatchTasks(new Callable<Void>() {
public Void call() throws Exception {
for (Card c : cardList) {
categoryDao.refresh(c.getCategory());
}
return null;
}
});
AnyMemoDBOpenHelperManager.releaseHelper(helper);
if (cardList.size() == 0) {
throw new IOException("Can't retrieve cards for database: " + src);
}
String[] entries = new String[4];
for (Card card : cardList) {
entries[0] = card.getQuestion();
entries[1] = card.getAnswer();
entries[2] = card.getCategory().getName();
entries[3] = card.getNote();
writer.writeNext(entries);
}
} finally {
writer.close();
}
}
use of org.liberty.android.fantastischmemo.dao.CardDao in project AnyMemo by helloworld1.
the class TabTxtImporterTest method verify.
@Override
protected void verify(String destFilePath) throws Exception {
AnyMemoDBOpenHelper helper = AnyMemoDBOpenHelperManager.getHelper(getContext(), destFilePath);
try {
CardDao cardDao = helper.getCardDao();
CategoryDao categoryDao = helper.getCategoryDao();
List<Card> cards = cardDao.queryForAll();
List<Category> categories = categoryDao.queryForAll();
for (Card c : cards) {
categoryDao.refresh(c.getCategory());
}
assertEquals(4, cards.size());
assertEquals(3, categories.size());
assertEquals("Question1", cards.get(0).getQuestion());
assertEquals("Answer1", cards.get(0).getAnswer());
assertEquals("Category1", cards.get(0).getCategory().getName());
assertEquals("Question2", cards.get(1).getQuestion());
assertEquals("Answer2", cards.get(1).getAnswer());
assertEquals("Category1", cards.get(1).getCategory().getName());
assertEquals("Question3", cards.get(2).getQuestion());
assertEquals("Answer3", cards.get(2).getAnswer());
assertEquals("Category2", cards.get(2).getCategory().getName());
assertEquals("Question4", cards.get(3).getQuestion());
assertEquals("Answer4", cards.get(3).getAnswer());
assertEquals("", cards.get(3).getCategory().getName());
} finally {
helper.close();
}
}
use of org.liberty.android.fantastischmemo.dao.CardDao in project AnyMemo by helloworld1.
the class CardDaoTest method testQueryPrevCardWithoutCategory.
@SmallTest
@Test
public void testQueryPrevCardWithoutCategory() throws Exception {
setupThreeCategories();
CardDao cardDao = helper.getCardDao();
Card c2 = cardDao.queryForId(2);
Card c1 = cardDao.queryPrevCard(c2, null);
assertEquals(1, (int) c1.getOrdinal());
Card c28 = cardDao.queryPrevCard(c1, null);
assertEquals(28, (int) c28.getOrdinal());
}
use of org.liberty.android.fantastischmemo.dao.CardDao in project AnyMemo by helloworld1.
the class CardDaoTest method testReviewCardsOrderOfSameEasiness.
@SmallTest
@Test
public void testReviewCardsOrderOfSameEasiness() throws SQLException {
CardDao cardDao = helper.getCardDao();
Card c13 = cardDao.queryForId(13);
Card c14 = cardDao.queryForId(14);
Card c15 = cardDao.queryForId(15);
LearningDataDao learningDataDao = helper.getLearningDataDao();
Date testDate = new Date((new Date().getTime() - 1));
learningDataDao.refresh(c13.getLearningData());
LearningData c13Ld = c13.getLearningData();
c13Ld.setAcqReps(1);
c13Ld.setNextLearnDate(testDate);
c13Ld.setEasiness((float) 2.7);
learningDataDao.update(c13Ld);
learningDataDao.refresh(c14.getLearningData());
LearningData c14Ld = c14.getLearningData();
c14Ld.setAcqReps(1);
c14Ld.setNextLearnDate(testDate);
c14Ld.setEasiness((float) 2.7);
learningDataDao.update(c14Ld);
learningDataDao.refresh(c15.getLearningData());
LearningData c15Ld = c15.getLearningData();
c15Ld.setAcqReps(1);
c15Ld.setNextLearnDate(testDate);
c15Ld.setEasiness((float) 2.7);
learningDataDao.update(c15Ld);
List<Card> cards = cardDao.getCardsForReview(null, null, 50, ReviewOrdering.HardestFirst);
assertEquals(3, cards.size());
assertEquals(13, (int) cards.get(0).getOrdinal());
assertEquals(14, (int) cards.get(1).getOrdinal());
assertEquals(15, (int) cards.get(2).getOrdinal());
}
use of org.liberty.android.fantastischmemo.dao.CardDao in project AnyMemo by helloworld1.
the class CardDaoTest method testSearchLastOrdinalWithcategoryIfExists.
@SmallTest
@Test
public void testSearchLastOrdinalWithcategoryIfExists() 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.queryLastOrdinal(ct);
assertEquals(8, (int) c.getId());
}
Aggregations