package ca.cmput301f13t03.adventure_datetime.model;/* * Copyright (c) 2013 Andrew Fontaine, James Finlay, Jesse Tucker, Jacob Viau, and * Evan DeGraff * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of * the Software, and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ import android.graphics.BitmapFactory; import android.test.AndroidTestCase; import android.test.RenamingDelegatingContext; import ca.cmput301f13t03.adventure_datetime.R; import ca.cmput301f13t03.adventure_datetime.model.Interfaces.ILocalStorage; import junit.framework.Assert; import java.util.UUID; /** * @author Andrew Fontaine * @version 1.0 * @since 31/10/13 */ public class StoryDBTest extends AndroidTestCase { private ILocalStorage database; @Override public void setUp() throws Exception { super.setUp(); //TODO Implement RenamingDelegatingContext context = new RenamingDelegatingContext(getContext(), "test_"); database = new StoryDB(context); } public void testSetStoryFragment() throws Exception { UUID uuid = UUID.randomUUID(); Choice choice = new Choice("test", uuid); StoryFragment frag = new StoryFragment(uuid, "testing", choice); UUID fragUuid = frag.getFragmentID(); Assert.assertTrue("Error inserting fragment", database.setStoryFragment(frag)); StoryFragment frag2 = database.getStoryFragment(frag.getFragmentID()); Assert.assertEquals("Not equivalent fragment ids", frag.getFragmentID(), frag2.getFragmentID()); Assert.assertEquals("Not equivalent story ids", frag.getStoryID(), frag2.getStoryID()); Assert.assertEquals("Not equivalent UUIDs", fragUuid, frag.getFragmentID()); database.deleteStoryFragment(fragUuid); frag2 = database.getStoryFragment(fragUuid); Assert.assertNull("Frgament not null", frag2); } public void testSetStory() throws Exception { Story story = new Story("TestAuthor", "TestTitle", "TestSynop"); UUID uuid = story.getId(); story.setHeadFragmentId(UUID.randomUUID()); story.setThumbnail(BitmapFactory.decodeResource(getContext().getResources(), R.drawable.grumpy_cat)); Assert.assertTrue("Error inserting story", database.setStory(story)); Story story2 = database.getStory(story.getId()); Assert.assertEquals("Not equivalent story ids", story.getId(), story2.getId()); Assert.assertEquals("Not equivalent uuids", uuid, story.getId()); database.deleteStory(story.getId()); story2 = database.getStory(story.getId()); Assert.assertNull("Story not null", story2); } public void testSetStory_Thumbnail() throws Exception { Story story = new Story("TestAuthor", "TestTitle", "TestSynop"); UUID uuid = story.getId(); story.setHeadFragmentId(UUID.randomUUID()); story.setThumbnail(BitmapFactory.decodeResource(getContext().getResources(), R.drawable.grumpy_cat)); Assert.assertTrue("Error inserting story", database.setStory(story)); Story story2 = database.getStory(story.getId()); assertEquals(story.getThumbnail().getEncodedBitmap(), story2.getThumbnail().getEncodedBitmap()); Assert.assertEquals("Not equivalent story ids", story.getId(), story2.getId()); Assert.assertEquals("Not equivalent uuids", uuid, story.getId()); database.deleteStory(story.getId()); story2 = database.getStory(story.getId()); Assert.assertNull("Story not null", story2); } public void testSetBookmark() throws Exception { UUID sUuid, sFUuid; sUuid = UUID.randomUUID(); sFUuid = UUID.randomUUID(); Bookmark bookmark = new Bookmark(sUuid, sFUuid); Assert.assertTrue("Error inserting bookmark", database.setBookmark(bookmark)); Bookmark bookmark2 = database.getBookmark(sUuid); Assert.assertEquals("Not equivalent story ids", bookmark.getStoryID(), bookmark2.getStoryID()); Assert.assertEquals("Not equivalent uuids", sUuid, bookmark.getStoryID()); database.deleteBookmarkByStory(sUuid); bookmark2 = database.getBookmark(sUuid); Assert.assertNull("Bookmark not null", bookmark2); Assert.assertTrue("Error inserting bookmark", database.setBookmark(bookmark)); database.deleteStoryFragment(sFUuid); bookmark2 = database.getBookmark(sUuid); Assert.assertNull("Bookmark not null", bookmark2); } @Override public void tearDown() throws Exception { super.tearDown(); //TODO Implement } }