/*
* jMemorize - Learning made easy (and fun) - A Leitner flashcards tool
* Copyright(C) 2004-2006 Riad Djemili
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 1, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
package jmemorize.core.test;
import java.io.File;
import java.io.IOException;
import java.util.List;
import jmemorize.core.Card;
import jmemorize.core.Lesson;
import jmemorize.core.LessonObserver;
import jmemorize.core.LessonProvider;
import jmemorize.core.Main;
import junit.framework.TestCase;
public class LessonProviderTest extends TestCase implements LessonObserver
{
private LessonProvider m_lessonProvider;
private StringBuffer m_log;
protected void setUp() throws Exception
{
m_lessonProvider = new Main();
m_lessonProvider.addLessonObserver(this);
m_log = new StringBuffer();
}
public void testLessonNewEvent()
{
m_lessonProvider.createNewLesson();
assertEquals("loaded ", m_log.toString());
}
public void testLessonLoadedEvent() throws IOException
{
m_lessonProvider.loadLesson(new File("test/fixtures/simple_de.jml"));
assertEquals("loaded ", m_log.toString());
}
public void testLessonLoadedCardsAlwaysHaveExpiration() throws IOException
{
m_lessonProvider.loadLesson(new File("test/fixtures/no_expiration.jml"));
Lesson lesson = m_lessonProvider.getLesson();
List<Card> cards = lesson.getRootCategory().getCards();
for (Card card : cards)
{
if (card.getLevel() > 0)
assertNotNull(card.getDateExpired());
else
assertNull(card.getDateExpired());
}
}
public void testLessonLoadedClosedNewEvents() throws IOException
{
m_lessonProvider.loadLesson(new File("test/fixtures/simple_de.jml"));
m_lessonProvider.createNewLesson();
assertEquals("loaded closed loaded ", m_log.toString());
// TODO also check lesson param
}
public void testLessonLoadedClosedLoadEvents() throws IOException
{
m_lessonProvider.loadLesson(new File("test/fixtures/simple_de.jml"));
m_lessonProvider.loadLesson(new File("test/fixtures/test.jml"));
assertEquals("loaded closed loaded ", m_log.toString());
// TODO also check lesson param
}
public void testLessonSavedEvent() throws Exception
{
m_lessonProvider.loadLesson(
new File("test/fixtures/simple_de.jml"));
Lesson lesson = m_lessonProvider.getLesson();
m_lessonProvider.saveLesson(lesson, new File("./test.jml"));
assertEquals("loaded saved ", m_log.toString());
}
public void testLessonModifiedEvent() throws Exception
{
m_lessonProvider.loadLesson(
new File("test/fixtures/simple_de.jml"));
Lesson lesson = m_lessonProvider.getLesson();
lesson.getRootCategory().addCard(new Card("front", "flip"));
assertEquals("loaded modified ", m_log.toString());
}
/* (non-Javadoc)
* @see jmemorize.core.LessonObserver
*/
public void lessonLoaded(Lesson lesson)
{
m_log.append("loaded ");
}
/* (non-Javadoc)
* @see jmemorize.core.LessonObserver
*/
public void lessonModified(Lesson lesson)
{
m_log.append("modified ");
}
/* (non-Javadoc)
* @see jmemorize.core.LessonObserver
*/
public void lessonSaved(Lesson lesson)
{
m_log.append("saved ");
}
/* (non-Javadoc)
* @see jmemorize.core.LessonObserver
*/
public void lessonClosed(Lesson lesson)
{
m_log.append("closed ");
}
}