/* * jMemorize - Learning made easy (and fun) - A Leitner flashcards tool * Copyright(C) 2004-2008 Riad Djemili and contributors * * 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.util.Date; import java.util.LinkedList; import java.util.List; import jmemorize.core.Card; import jmemorize.core.CardSide; import jmemorize.core.Category; import junit.framework.TestCase; public class CardTest extends TestCase { private Category m_category; private Card m_card; protected void setUp() throws Exception { m_category = new Category("root_category"); m_card = new Card(new Date(), "test_card","bla"); } public void testEditText() { m_category.addCard(m_card); m_card.setSides("test frontside", "test backside"); m_card.setSides("test frontside2", "test backside2"); CardSide frontSide = m_card.getFrontSide(); CardSide backSide = m_card.getBackSide(); assertEquals("test frontside2", frontSide.getText().getUnformatted()); assertEquals("test backside2", backSide.getText().getUnformatted()); } public void testAddImage() { List<String> images = new LinkedList<String>(); images.add("foo.png"); m_card.getFrontSide().setImages(images); assertEquals(images, m_card.getFrontSide().getImages()); List<String> originalImages = new LinkedList<String>(); originalImages.addAll(images); images.add("bar.png"); assertEquals("image list should not be stored as reference to argument", originalImages, m_card.getFrontSide().getImages()); } public void testCardClonesBasic() { m_category.addCard(m_card); assertEquals(1, m_category.getCards().size()); Card clonedCard = (Card)m_card.clone(); assertEquals(1, m_category.getCards().size()); assertEquals(null, clonedCard.getCategory()); } public void testCardClonesText() { Card clonedCard = (Card)m_card.clone(); clonedCard.setSides("other front", "other back"); assertEquals("test_card", m_card.getFrontSide().toString()); assertEquals("bla", m_card.getBackSide().toString()); assertEquals("other front", clonedCard.getFrontSide().toString()); assertEquals("other back", clonedCard.getBackSide().toString()); } public void testCardClonesImages() { List<String> images = new LinkedList<String>(); images.add("foo.png"); m_card.getFrontSide().setImages(images); Card clonedCard = (Card)m_card.clone(); assertEquals(images, clonedCard.getFrontSide().getImages()); List<String> noImages = new LinkedList<String>(); m_card.getFrontSide().setImages(noImages); assertEquals("clone should not reference originals image list", images, clonedCard.getFrontSide().getImages()); } public void testCardWithoutProgressClonesImages() { List<String> images = new LinkedList<String>(); images.add("foo.png"); m_card.getFrontSide().setImages(images); Card clonedCard = (Card)m_card.cloneWithoutProgress(); assertEquals(images, clonedCard.getFrontSide().getImages()); List<String> noImages = new LinkedList<String>(); m_card.getFrontSide().setImages(noImages); assertEquals("clone should not reference originals image list", images, clonedCard.getFrontSide().getImages()); } public void testCardClonesStatss() { m_category.addCard(m_card); Card clonedCard = (Card)m_card.clone(); assertEquals(m_card.getLevel(), clonedCard.getLevel()); assertEquals(m_card.getDateCreated(), clonedCard.getDateCreated()); assertEquals(m_card.getDateExpired(), clonedCard.getDateExpired()); assertEquals(m_card.getDateTested(), clonedCard.getDateTested()); assertEquals(m_card.getDateTouched(), clonedCard.getDateTouched()); // assertFalse(m_childCard.getDateModified().equals(clonedCard.getDateModified())); assertEquals(m_card.getPassRatio(), clonedCard.getPassRatio()); assertEquals(m_card.getTestsPassed(), clonedCard.getTestsPassed()); assertEquals(m_card.getTestsTotal(), clonedCard.getTestsTotal()); assertEquals(m_card.getLearnedAmount(true), clonedCard.getLearnedAmount(true)); assertEquals(m_card.getLearnedAmount(false), clonedCard.getLearnedAmount(false)); } }