package com.miz.test;/* * Copyright (C) 2014 Michell Bak * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import android.content.Context; import android.database.Cursor; import android.test.InstrumentationTestCase; import com.miz.db.DbAdapterTvShowEpisodeMappings; import com.miz.db.DbAdapterTvShowEpisodes; import com.miz.db.DbAdapterTvShows; import com.miz.mizuu.MizuuApplication; import com.miz.utils.TvShowDatabaseUtils; /** * Tests various TV show database queries. * Do not use this on a non-debug build, as * it will remove all data. */ public class DatabaseTvShowTests extends InstrumentationTestCase { private Context mContext; public void testCreateTvShow() { DbAdapterTvShows db = getAndResetDatabase(); // There shouldn't be any TV shows to begin with assertEquals(0, db.count()); // Create a test TV show createTestShow(db); // We should now have one TV show assertEquals(1, db.count()); } public void testTvShowDuplication() { DbAdapterTvShows db = getAndResetDatabase(); // There shouldn't be any TV shows to begin with assertEquals(0, db.count()); // Create a test TV show createTestShow(db); // We should now have one TV show assertEquals(1, db.count()); // Create a test TV show createTestShow(db); // We should still only have one TV show assertEquals(1, db.count()); } public void testInvalidTvShowCreation() { DbAdapterTvShows db = getAndResetDatabase(); // There shouldn't be any TV shows to begin with assertEquals(0, db.count()); // Create a test TV show db.createShow(DbAdapterTvShows.UNIDENTIFIED_ID, "title", "plot", "actors", "genres", "8.5", "PG", "100", "2014-12-04", "1"); // We should still have zero TV shows assertEquals(0, db.count()); } public void testShowExists() { DbAdapterTvShows db = getAndResetDatabase(); // We haven't added a show yet, so it shouldn't exist assertEquals(false, db.showExists("", "title")); assertEquals(false, db.showExists("1234", "")); // Create a test TV show createTestShow(db); // Should all be good now assertEquals(true, db.showExists("", "title")); assertEquals(true, db.showExists("1234", "")); } public void testGetShowIdByTitle() { DbAdapterTvShows db = getAndResetDatabase(); // Nothing since we haven't created the TV show yet assertEquals("", db.getShowId("title")); // Create a test TV show createTestShow(db); // Should be there now assertEquals("1234", db.getShowId("title")); } public void testGetShowTitleById() { DbAdapterTvShows db = getAndResetDatabase(); // Nothing since we haven't created the TV show yet assertEquals("", db.getShowTitle("1234")); // Create a test TV show createTestShow(db); // Should be there now assertEquals("title", db.getShowTitle("1234")); } public void testGetShowById() { DbAdapterTvShows db = getAndResetDatabase(); // Nothing since we haven't created the TV show yet assertEquals(0, db.getShow("1234").getCount()); // Create a test TV show createTestShow(db); // Should be there now assertEquals(1, db.getShow("1234").getCount()); } public void testGetAllShows() { DbAdapterTvShows db = getAndResetDatabase(); // Nothing since we haven't created the TV show yet assertEquals(0, db.getAllShows().getCount()); // Create a test TV show createTestShow(db); // Should be one now assertEquals(1, db.getAllShows().getCount()); // Create another test TV show createTestShow2(db); // Should be two now assertEquals(2, db.getAllShows().getCount()); } public void testDeleteShowById() { DbAdapterTvShows db = getAndResetDatabase(); // Create a few test TV shows createTestShow(db); createTestShow2(db); // Should be two now assertEquals(2, db.getAllShows().getCount()); db.deleteShow("1234"); // Should be one now assertEquals(1, db.getAllShows().getCount()); db.deleteShow("12345"); // Should be zero now assertEquals(0, db.getAllShows().getCount()); } public void testDeleteAllShows() { DbAdapterTvShows db = getAndResetDatabase(); // Create a few test TV shows createTestShow(db); createTestShow2(db); // Should be two now assertEquals(2, db.getAllShows().getCount()); db.deleteAllShowsInDatabase(); // Should be zero now assertEquals(0, db.getAllShows().getCount()); } public void testGetCertifications() { DbAdapterTvShows db = getAndResetDatabase(); // Create a few test TV shows createTestShow(db); createTestShow2(db); // Each had a unique certification, so // there should be two now assertEquals(2, db.getCertifications().size()); assertEquals("PG", db.getCertifications().get(0)); assertEquals("PG-13", db.getCertifications().get(1)); } public void testEditTvShow() { DbAdapterTvShows db = getAndResetDatabase(); // Create a test TV show createTestShow(db); db.editShow("1234", "new title", "new plot", "genres...", "200", "9.7", "1970-01-02", "PG-17"); // Make sure we're still only dealing with one TV show assertEquals(1, db.count()); // Title assertEquals("new title", db.getSingleItem("1234", DbAdapterTvShows.KEY_SHOW_TITLE)); // Plot assertEquals("new plot", db.getSingleItem("1234", DbAdapterTvShows.KEY_SHOW_PLOT)); // Genres assertEquals("genres...", db.getSingleItem("1234", DbAdapterTvShows.KEY_SHOW_GENRES)); // Runtime assertEquals("200", db.getSingleItem("1234", DbAdapterTvShows.KEY_SHOW_RUNTIME)); // Rating assertEquals("9.7", db.getSingleItem("1234", DbAdapterTvShows.KEY_SHOW_RATING)); // Date assertEquals("1970-01-02", db.getSingleItem("1234", DbAdapterTvShows.KEY_SHOW_FIRST_AIRDATE)); // Certification assertEquals("PG-17", db.getSingleItem("1234", DbAdapterTvShows.KEY_SHOW_CERTIFICATION)); } public void testCreateEpisode() { getAndResetDatabase(); DbAdapterTvShowEpisodes dbEpisodes = MizuuApplication.getTvEpisodeDbAdapter(); assertEquals(0, dbEpisodes.getEpisodeCount("1234")); dbEpisodes.createEpisode("/test/lulz.mkv", "05", "15", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "1", "1"); assertEquals(1, dbEpisodes.getEpisodeCount("1234")); } public void testCreateEpisodeDuplication() { getAndResetDatabase(); DbAdapterTvShowEpisodes dbEpisodes = MizuuApplication.getTvEpisodeDbAdapter(); assertEquals(0, dbEpisodes.getEpisodeCount("1234")); dbEpisodes.createEpisode("/test/lulz.mkv", "05", "15", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "1", "1"); assertEquals(1, dbEpisodes.getEpisodeCount("1234")); dbEpisodes.createEpisode("/test/lul2z.mkv", "05", "15", "1234", "episode title 2", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "1", "1"); // Still just one assertEquals(1, dbEpisodes.getEpisodeCount("1234")); } public void testGetEpisode() { getAndResetDatabase(); DbAdapterTvShowEpisodes dbEpisodes = MizuuApplication.getTvEpisodeDbAdapter(); assertEquals(0, dbEpisodes.getEpisode("1234", 5, 15).getCount()); dbEpisodes.createEpisode("/test/lulz.mkv", "05", "15", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "1", "1"); assertEquals(1, dbEpisodes.getEpisode("1234", 5, 15).getCount()); } public void testGetEpisodesByShowId() { getAndResetDatabase(); DbAdapterTvShowEpisodes dbEpisodes = MizuuApplication.getTvEpisodeDbAdapter(); assertEquals(0, dbEpisodes.getEpisodes("1234").getCount()); dbEpisodes.createEpisode("/test/lulz.mkv", "05", "15", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "1", "1"); assertEquals(1, dbEpisodes.getEpisodes("1234").getCount()); dbEpisodes.createEpisode("/test/lulaz.mkv", "06", "15", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "1", "1"); assertEquals(2, dbEpisodes.getEpisodes("1234").getCount()); } public void testGetAllEpisodes() { getAndResetDatabase(); DbAdapterTvShowEpisodes dbEpisodes = MizuuApplication.getTvEpisodeDbAdapter(); assertEquals(0, dbEpisodes.getAllEpisodes().getCount()); dbEpisodes.createEpisode("/test/lulz.mkv", "05", "15", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "1", "1"); assertEquals(1, dbEpisodes.getAllEpisodes().getCount()); dbEpisodes.createEpisode("/test/lulaz.mkv", "06", "15", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "1", "1"); assertEquals(2, dbEpisodes.getAllEpisodes().getCount()); dbEpisodes.createEpisode("/test/lulaz.mkv", "06", "15", "12345", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "1", "1"); assertEquals(3, dbEpisodes.getAllEpisodes().getCount()); } public void testDeleteEpisode() { getAndResetDatabase(); DbAdapterTvShowEpisodes dbEpisodes = MizuuApplication.getTvEpisodeDbAdapter(); assertEquals(0, dbEpisodes.getEpisodeCount("1234")); dbEpisodes.createEpisode("/test/lulz.mkv", "05", "15", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "1", "1"); dbEpisodes.createEpisode("/test/lulaz.mkv", "06", "15", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "1", "1"); assertEquals(2, dbEpisodes.getEpisodeCount("1234")); // Let's delete one of them TvShowDatabaseUtils.deleteEpisode(mContext, "1234", 5, 15); assertEquals(1, dbEpisodes.getEpisodeCount("1234")); // We've deleted the first, but should still have the second one assertEquals(1, dbEpisodes.getEpisode("1234", 6, 15).getCount()); // Let's delete the last one TvShowDatabaseUtils.deleteEpisode(mContext, "1234", 6, 15); assertEquals(0, dbEpisodes.getEpisodeCount("1234")); // No more! assertEquals(0, dbEpisodes.getEpisode("1234", 6, 15).getCount()); } public void testDeleteEpisodeAlternate() { getAndResetDatabase(); DbAdapterTvShowEpisodes dbEpisodes = MizuuApplication.getTvEpisodeDbAdapter(); assertEquals(0, dbEpisodes.getEpisodeCount("1234")); dbEpisodes.createEpisode("/test/lulz.mkv", "05", "15", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "1", "1"); dbEpisodes.createEpisode("/test/lulaz.mkv", "06", "15", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "1", "1"); assertEquals(2, dbEpisodes.getEpisodeCount("1234")); // Let's delete one of them dbEpisodes.deleteEpisode("1234", 5, 15); assertEquals(1, dbEpisodes.getEpisodeCount("1234")); // We've deleted the first, but should still have the second one assertEquals(1, dbEpisodes.getEpisode("1234", 6, 15).getCount()); // Let's delete the last one dbEpisodes.deleteEpisode("1234", 6, 15); assertEquals(0, dbEpisodes.getEpisodeCount("1234")); // No more! assertEquals(0, dbEpisodes.getEpisode("1234", 6, 15).getCount()); } public void testDeleteAllEpisodesByShowId() { getAndResetDatabase(); DbAdapterTvShowEpisodes dbEpisodes = MizuuApplication.getTvEpisodeDbAdapter(); assertEquals(0, dbEpisodes.getEpisodeCount("1234")); dbEpisodes.createEpisode("/test/lulz.mkv", "05", "15", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "1", "1"); dbEpisodes.createEpisode("/test/lulaz.mkv", "06", "15", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "1", "1"); assertEquals(2, dbEpisodes.getEpisodeCount("1234")); dbEpisodes.deleteAllEpisodes("1234"); assertEquals(0, dbEpisodes.getEpisodeCount("1234")); } public void testDeleteSeason() { getAndResetDatabase(); DbAdapterTvShowEpisodes dbEpisodes = MizuuApplication.getTvEpisodeDbAdapter(); assertEquals(0, dbEpisodes.getEpisodeCount("1234")); dbEpisodes.createEpisode("/test/lulz.mkv", "05", "15", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "1", "1"); dbEpisodes.createEpisode("/test/lulz.mkv", "05", "16", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "1", "1"); dbEpisodes.createEpisode("/test/lulaz.mkv", "06", "15", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "1", "1"); // 5th season assertEquals(2, dbEpisodes.getEpisodesInSeason(mContext, "1234", 5).size()); // 6th season assertEquals(1, dbEpisodes.getEpisodesInSeason(mContext, "1234", 6).size()); dbEpisodes.deleteSeason("1234", 5); assertEquals(0, dbEpisodes.getEpisodesInSeason(mContext, "1234", 5).size()); dbEpisodes.deleteSeason("1234", 6); assertEquals(0, dbEpisodes.getEpisodesInSeason(mContext, "1234", 6).size()); } public void testDeleteAllEpisodes() { getAndResetDatabase(); DbAdapterTvShowEpisodes dbEpisodes = MizuuApplication.getTvEpisodeDbAdapter(); assertEquals(0, dbEpisodes.getEpisodeCount("1234")); dbEpisodes.createEpisode("/test/lulz.mkv", "05", "15", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "1", "1"); dbEpisodes.createEpisode("/test/lulz.mkv", "05", "16", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "1", "1"); dbEpisodes.createEpisode("/test/lulaz.mkv", "06", "15", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "1", "1"); assertEquals(3, dbEpisodes.getAllEpisodes().getCount()); dbEpisodes.deleteAllEpisodes(); assertEquals(0, dbEpisodes.getAllEpisodes().getCount()); } public void testGetEpisodeCountByShowId() { getAndResetDatabase(); DbAdapterTvShowEpisodes dbEpisodes = MizuuApplication.getTvEpisodeDbAdapter(); assertEquals(0, dbEpisodes.getEpisodeCount("1234")); dbEpisodes.createEpisode("/test/lulz.mkv", "05", "15", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "1", "1"); dbEpisodes.createEpisode("/test/lulz.mkv", "05", "16", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "1", "1"); assertEquals(2, dbEpisodes.getEpisodeCount("1234")); } public void testGetEpisodeCountForSeason() { getAndResetDatabase(); DbAdapterTvShowEpisodes dbEpisodes = MizuuApplication.getTvEpisodeDbAdapter(); assertEquals(0, dbEpisodes.getEpisodeCountForSeason("1234", "05")); assertEquals(0, dbEpisodes.getEpisodeCountForSeason("1234", "06")); dbEpisodes.createEpisode("/test/lulz.mkv", "05", "15", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "1", "1"); dbEpisodes.createEpisode("/test/lulz.mkv", "05", "16", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "1", "1"); dbEpisodes.createEpisode("/test/lulaz.mkv", "06", "15", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "1", "1"); assertEquals(2, dbEpisodes.getEpisodeCountForSeason("1234", "05")); assertEquals(1, dbEpisodes.getEpisodeCountForSeason("1234", "06")); } public void testGetSeasonCount() { getAndResetDatabase(); DbAdapterTvShowEpisodes dbEpisodes = MizuuApplication.getTvEpisodeDbAdapter(); assertEquals(0, dbEpisodes.getSeasonCount("1234")); dbEpisodes.createEpisode("/test/lulz.mkv", "05", "15", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "1", "1"); dbEpisodes.createEpisode("/test/lulz.mkv", "05", "16", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "1", "1"); dbEpisodes.createEpisode("/test/lulaz.mkv", "06", "15", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "1", "1"); assertEquals(2, dbEpisodes.getSeasonCount("1234")); } public void testGetSeasons() { getAndResetDatabase(); DbAdapterTvShowEpisodes dbEpisodes = MizuuApplication.getTvEpisodeDbAdapter(); assertEquals(0, dbEpisodes.getSeasons("1234").size()); dbEpisodes.createEpisode("/test/lulz.mkv", "05", "15", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "1", "1"); dbEpisodes.createEpisode("/test/lulz.mkv", "05", "16", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "1", "1"); dbEpisodes.createEpisode("/test/lulaz.mkv", "06", "15", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "1", "1"); assertEquals(2, dbEpisodes.getSeasons("1234").size()); } public void testGetEpisodesInSeason() { getAndResetDatabase(); DbAdapterTvShowEpisodes dbEpisodes = MizuuApplication.getTvEpisodeDbAdapter(); assertEquals(0, dbEpisodes.getEpisodesInSeason(mContext, "1234", 5).size()); assertEquals(0, dbEpisodes.getEpisodesInSeason(mContext, "1234", 6).size()); dbEpisodes.createEpisode("/test/lulz.mkv", "05", "15", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "1", "1"); dbEpisodes.createEpisode("/test/lulz.mkv", "05", "16", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "1", "1"); dbEpisodes.createEpisode("/test/lulaz.mkv", "06", "15", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "1", "1"); assertEquals(2, dbEpisodes.getEpisodesInSeason(mContext, "1234", 5).size()); assertEquals(1, dbEpisodes.getEpisodesInSeason(mContext, "1234", 6).size()); } public void testGetLatestEpisodeAirdateByShow() { getAndResetDatabase(); DbAdapterTvShowEpisodes dbEpisodes = MizuuApplication.getTvEpisodeDbAdapter(); assertEquals("", dbEpisodes.getLatestEpisodeAirdate("1234")); dbEpisodes.createEpisode("/test/lulz.mkv", "05", "15", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "1", "1"); dbEpisodes.createEpisode("/test/lulz.mkv", "05", "16", "1234", "episode title", "episode plot", "1980-07-07", "7.6", "director", "writer", "guest stars", "1", "1"); assertEquals("1980-07-07", dbEpisodes.getLatestEpisodeAirdate("1234")); } public void testHasUnwatchedEpisodes() { getAndResetDatabase(); DbAdapterTvShowEpisodes dbEpisodes = MizuuApplication.getTvEpisodeDbAdapter(); dbEpisodes.createEpisode("/test/lulz.mkv", "05", "15", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "1", "1"); assertEquals(false, dbEpisodes.hasUnwatchedEpisodes("1234")); dbEpisodes.createEpisode("/test/lulz.mkv", "05", "16", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "0", "1"); assertEquals(true, dbEpisodes.hasUnwatchedEpisodes("1234")); } public void testSetSeasonWatchedStatus() { getAndResetDatabase(); DbAdapterTvShowEpisodes dbEpisodes = MizuuApplication.getTvEpisodeDbAdapter(); dbEpisodes.createEpisode("/test/lulz.mkv", "05", "15", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "0", "1"); dbEpisodes.createEpisode("/test/lulz.mkv", "05", "16", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "0", "1"); assertEquals("0", dbEpisodes.getSingleItem("1234", "05", "15", DbAdapterTvShowEpisodes.KEY_HAS_WATCHED)); assertEquals("0", dbEpisodes.getSingleItem("1234", "05", "16", DbAdapterTvShowEpisodes.KEY_HAS_WATCHED)); dbEpisodes.setSeasonWatchStatus("1234", "05", true); assertEquals("1", dbEpisodes.getSingleItem("1234", "05", "15", DbAdapterTvShowEpisodes.KEY_HAS_WATCHED)); assertEquals("1", dbEpisodes.getSingleItem("1234", "05", "16", DbAdapterTvShowEpisodes.KEY_HAS_WATCHED)); } public void testSetEpisodeWatchedStatus() { getAndResetDatabase(); DbAdapterTvShowEpisodes dbEpisodes = MizuuApplication.getTvEpisodeDbAdapter(); dbEpisodes.createEpisode("/test/lulz.mkv", "05", "15", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "0", "1"); dbEpisodes.createEpisode("/test/lulz.mkv", "05", "16", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "0", "1"); assertEquals("0", dbEpisodes.getSingleItem("1234", "05", "15", DbAdapterTvShowEpisodes.KEY_HAS_WATCHED)); assertEquals("0", dbEpisodes.getSingleItem("1234", "05", "16", DbAdapterTvShowEpisodes.KEY_HAS_WATCHED)); dbEpisodes.setEpisodeWatchStatus("1234", "05", "15", true); dbEpisodes.setEpisodeWatchStatus("1234", "05", "16", true); assertEquals("1", dbEpisodes.getSingleItem("1234", "05", "15", DbAdapterTvShowEpisodes.KEY_HAS_WATCHED)); assertEquals("1", dbEpisodes.getSingleItem("1234", "05", "16", DbAdapterTvShowEpisodes.KEY_HAS_WATCHED)); } public void testUpdateEpisode() { getAndResetDatabase(); DbAdapterTvShowEpisodes dbEpisodes = MizuuApplication.getTvEpisodeDbAdapter(); dbEpisodes.createEpisode("/test/lulz.mkv", "05", "15", "1234", "episode title", "episode plot", "1980-06-07", "7.6", "director", "writer", "guest stars", "0", "1"); dbEpisodes.editEpisode("1234", 5, 15, "new episode title", "new episode plot", "new director", "new writer", "new guest stars", "6.7", "2000-06-07"); assertEquals("new episode title", dbEpisodes.getSingleItem("1234", "05", "15", DbAdapterTvShowEpisodes.KEY_EPISODE_TITLE)); assertEquals("new episode plot", dbEpisodes.getSingleItem("1234", "05", "15", DbAdapterTvShowEpisodes.KEY_EPISODE_PLOT)); assertEquals("new director", dbEpisodes.getSingleItem("1234", "05", "15", DbAdapterTvShowEpisodes.KEY_EPISODE_DIRECTOR)); assertEquals("new writer", dbEpisodes.getSingleItem("1234", "05", "15", DbAdapterTvShowEpisodes.KEY_EPISODE_WRITER)); assertEquals("new guest stars", dbEpisodes.getSingleItem("1234", "05", "15", DbAdapterTvShowEpisodes.KEY_EPISODE_GUESTSTARS)); assertEquals("6.7", dbEpisodes.getSingleItem("1234", "05", "15", DbAdapterTvShowEpisodes.KEY_EPISODE_RATING)); assertEquals("2000-06-07", dbEpisodes.getSingleItem("1234", "05", "15", DbAdapterTvShowEpisodes.KEY_EPISODE_AIRDATE)); } public void testCreateFilepathMapping() { getAndResetDatabase(); DbAdapterTvShowEpisodeMappings dbMappings = MizuuApplication.getTvShowEpisodeMappingsDbAdapter(); assertEquals(false, dbMappings.filepathExists("1234", "05", "15", "/test/lulz.mkv")); dbMappings.createFilepathMapping("/test/lulz.mkv", "1234", "05", "15"); assertEquals(true, dbMappings.filepathExists("1234", "05", "15", "/test/lulz.mkv")); } public void testCreateFilepathMappingDuplication() { getAndResetDatabase(); DbAdapterTvShowEpisodeMappings dbMappings = MizuuApplication.getTvShowEpisodeMappingsDbAdapter(); assertEquals(0, dbMappings.count()); dbMappings.createFilepathMapping("/test/lulz.mkv", "1234", "05", "15"); assertEquals(1, dbMappings.count()); dbMappings.createFilepathMapping("/test/lulz.mkv", "1234", "05", "15"); assertEquals(1, dbMappings.count()); } public void testGetFirstFilepath() { getAndResetDatabase(); DbAdapterTvShowEpisodeMappings dbMappings = MizuuApplication.getTvShowEpisodeMappingsDbAdapter(); assertEquals("", dbMappings.getFirstFilepath("1234", "05", "15")); dbMappings.createFilepathMapping("/test/lulz.mkv", "1234", "05", "15"); dbMappings.createFilepathMapping("/test/lulzfs.mkv", "1234", "05", "15"); assertEquals("/test/lulz.mkv", dbMappings.getFirstFilepath("1234", "05", "15")); } public void testGetFilepathsForEpisode() { getAndResetDatabase(); DbAdapterTvShowEpisodeMappings dbMappings = MizuuApplication.getTvShowEpisodeMappingsDbAdapter(); assertEquals(0, dbMappings.getFilepathsForEpisode("1234", "05", "15").size()); dbMappings.createFilepathMapping("/test/lulz.mkv", "1234", "05", "15"); dbMappings.createFilepathMapping("/test/lulzfs.mkv", "1234", "05", "15"); assertEquals(2, dbMappings.getFilepathsForEpisode("1234", "05", "15").size()); } public void testGetUnidentifiedFilepaths() { getAndResetDatabase(); DbAdapterTvShowEpisodeMappings dbMappings = MizuuApplication.getTvShowEpisodeMappingsDbAdapter(); assertEquals(0, dbMappings.getAllUnidentifiedFilepaths().getCount()); dbMappings.createFilepathMapping("/test/lulz.mkv", DbAdapterTvShows.UNIDENTIFIED_ID, "05", "15"); dbMappings.createFilepathMapping("/test/lulzfs.mkv", DbAdapterTvShows.UNIDENTIFIED_ID, "05", "16"); assertEquals(2, dbMappings.getAllUnidentifiedFilepaths().getCount()); } public void testGetAllFilepaths() { getAndResetDatabase(); DbAdapterTvShowEpisodeMappings dbMappings = MizuuApplication.getTvShowEpisodeMappingsDbAdapter(); assertEquals(0, dbMappings.getAllFilepaths().getCount()); dbMappings.createFilepathMapping("/test/lulz.mkv", "1234", "05", "15"); dbMappings.createFilepathMapping("/test/lulzfs.mkv", "1234", "05", "16"); assertEquals(2, dbMappings.getAllFilepaths().getCount()); } public void testGetInfoForFilepath() { getAndResetDatabase(); DbAdapterTvShowEpisodeMappings dbMappings = MizuuApplication.getTvShowEpisodeMappingsDbAdapter(); assertEquals(0, dbMappings.getAllFilepathInfo("/test/lulz.mkv").getCount()); dbMappings.createFilepathMapping("/test/lulz.mkv", "1234", "05", "15"); assertEquals(1, dbMappings.getAllFilepathInfo("/test/lulz.mkv").getCount()); Cursor c = dbMappings.getAllFilepathInfo("/test/lulz.mkv"); c.moveToFirst(); assertEquals("/test/lulz.mkv", c.getString(c.getColumnIndex(DbAdapterTvShowEpisodeMappings.KEY_FILEPATH))); } public void testGetAllFilepathsForShow() { getAndResetDatabase(); DbAdapterTvShowEpisodeMappings dbMappings = MizuuApplication.getTvShowEpisodeMappingsDbAdapter(); assertEquals(0, dbMappings.getAllFilepaths("1234").getCount()); dbMappings.createFilepathMapping("/test/lulz.mkv", "1234", "05", "15"); dbMappings.createFilepathMapping("/test/lulzfs.mkv", "1234", "05", "16"); dbMappings.createFilepathMapping("/test/lulzfs.mkv", "12345", "05", "16"); assertEquals(2, dbMappings.getAllFilepaths("1234").getCount()); assertEquals(1, dbMappings.getAllFilepaths("12345").getCount()); } public void testGetAllIgnoredFilepaths() { getAndResetDatabase(); DbAdapterTvShowEpisodeMappings dbMappings = MizuuApplication.getTvShowEpisodeMappingsDbAdapter(); assertEquals(0, dbMappings.getAllIgnoredFilepaths().getCount()); dbMappings.createFilepathMapping("/test/lulz.mkv", "1234", "05", "15"); dbMappings.createFilepathMapping("/test/lulzfs.mkv", "1234", "05", "16"); dbMappings.createFilepathMapping("/test/lulzfs.mkv", "12345", "05", "16"); dbMappings.ignoreFilepath("/test/lulz.mkv"); assertEquals(1, dbMappings.getAllIgnoredFilepaths().getCount()); } public void testDeleteFilepathByFilepath() { getAndResetDatabase(); DbAdapterTvShowEpisodeMappings dbMappings = MizuuApplication.getTvShowEpisodeMappingsDbAdapter(); assertEquals(0, dbMappings.getAllFilepaths().getCount()); dbMappings.createFilepathMapping("/test/lulz.mkv", "1234", "05", "15"); dbMappings.createFilepathMapping("/test/lulzfs.mkv", "1234", "05", "16"); dbMappings.createFilepathMapping("/test/lulzfs.mkv", "12345", "05", "16"); assertEquals(3, dbMappings.getAllFilepaths().getCount()); dbMappings.deleteFilepath("/test/lulz.mkv"); assertEquals(2, dbMappings.getAllFilepaths().getCount()); dbMappings.deleteFilepath("/test/lulzfs.mkv"); assertEquals(0, dbMappings.getAllFilepaths().getCount()); } public void testIgnoreFilepath() { getAndResetDatabase(); DbAdapterTvShowEpisodeMappings dbMappings = MizuuApplication.getTvShowEpisodeMappingsDbAdapter(); dbMappings.createFilepathMapping("/test/lulz.mkv", "1234", "05", "15"); dbMappings.ignoreFilepath("/test/lulz.mkv"); Cursor c = dbMappings.getAllFilepathInfo("/test/lulz.mkv"); c.moveToFirst(); assertEquals("1", c.getString(c.getColumnIndex(DbAdapterTvShowEpisodeMappings.KEY_IGNORED))); } public void testDeleteAllFilepathsByShowId() { getAndResetDatabase(); DbAdapterTvShowEpisodeMappings dbMappings = MizuuApplication.getTvShowEpisodeMappingsDbAdapter(); assertEquals(0, dbMappings.getAllFilepaths().getCount()); dbMappings.createFilepathMapping("/test/lulz.mkv", "1234", "05", "15"); dbMappings.createFilepathMapping("/test/lulzfs.mkv", "1234", "05", "16"); dbMappings.createFilepathMapping("/test/lulzfs.mkv", "12345", "05", "16"); assertEquals(3, dbMappings.getAllFilepaths().getCount()); dbMappings.deleteAllFilepaths("1234"); assertEquals(1, dbMappings.getAllFilepaths().getCount()); dbMappings.deleteAllFilepaths("12345"); assertEquals(0, dbMappings.getAllFilepaths().getCount()); } public void testDeleteAllFilepaths() { getAndResetDatabase(); DbAdapterTvShowEpisodeMappings dbMappings = MizuuApplication.getTvShowEpisodeMappingsDbAdapter(); assertEquals(0, dbMappings.getAllFilepaths().getCount()); dbMappings.createFilepathMapping("/test/lulz.mkv", "1234", "05", "15"); dbMappings.createFilepathMapping("/test/lulzfs.mkv", "1234", "05", "16"); dbMappings.createFilepathMapping("/test/lulzfs.mkv", "12345", "05", "16"); assertEquals(3, dbMappings.getAllFilepaths().getCount()); dbMappings.deleteAllFilepaths(); assertEquals(0, dbMappings.getAllFilepaths().getCount()); } public void testDeleteAllUnidentifiedFilepaths() { getAndResetDatabase(); DbAdapterTvShowEpisodeMappings dbMappings = MizuuApplication.getTvShowEpisodeMappingsDbAdapter(); assertEquals(0, dbMappings.getAllFilepaths().getCount()); dbMappings.createFilepathMapping("/test/lulz.mkv", "1234", "05", "15"); dbMappings.createFilepathMapping("/test/lulzfs.mkv", "1234", "05", "16"); dbMappings.createFilepathMapping("/test/lulzfs.mkv", "12345", "05", "16"); dbMappings.createFilepathMapping("/test/lulz.mkv", DbAdapterTvShows.UNIDENTIFIED_ID, "05", "15"); dbMappings.createFilepathMapping("/test/lulzfs.mkv", DbAdapterTvShows.UNIDENTIFIED_ID, "05", "16"); assertEquals(5, dbMappings.getAllFilepaths().getCount()); dbMappings.deleteAllUnidentifiedFilepaths(); assertEquals(3, dbMappings.getAllFilepaths().getCount()); } public void testHasMultipleFilepaths() { getAndResetDatabase(); DbAdapterTvShowEpisodeMappings dbMappings = MizuuApplication.getTvShowEpisodeMappingsDbAdapter(); assertEquals(false, dbMappings.hasMultipleFilepaths("1234", "05", "15")); dbMappings.createFilepathMapping("/test/lulz.mkv", "1234", "05", "15"); assertEquals(false, dbMappings.hasMultipleFilepaths("1234", "05", "15")); dbMappings.createFilepathMapping("/test/lulsz.mkv", "1234", "05", "15"); assertEquals(true, dbMappings.hasMultipleFilepaths("1234", "05", "15")); } public void testRemoveSeason() { getAndResetDatabase(); DbAdapterTvShowEpisodeMappings dbMappings = MizuuApplication.getTvShowEpisodeMappingsDbAdapter(); dbMappings.createFilepathMapping("/test/lulz.mkv", "1234", "05", "15"); dbMappings.createFilepathMapping("/test/lulzfs.mkv", "1234", "05", "16"); dbMappings.createFilepathMapping("/test/lulzfs.mkv", "1234", "06", "16"); assertEquals(3, dbMappings.getAllFilepaths("1234").getCount()); dbMappings.removeSeason("1234", 5); assertEquals(1, dbMappings.getAllFilepaths("1234").getCount()); dbMappings.removeSeason("1234", 6); assertEquals(0, dbMappings.getAllFilepaths("1234").getCount()); } public void testIgnoreSeason() { getAndResetDatabase(); DbAdapterTvShowEpisodeMappings dbMappings = MizuuApplication.getTvShowEpisodeMappingsDbAdapter(); dbMappings.createFilepathMapping("/test/lulz.mkv", "1234", "05", "15"); dbMappings.createFilepathMapping("/test/lulzfs.mkv", "1234", "05", "16"); dbMappings.createFilepathMapping("/test/lulzfs.mkv", "1234", "06", "16"); assertEquals(0, dbMappings.getAllIgnoredFilepaths().getCount()); dbMappings.ignoreSeason("1234", 5); assertEquals(2, dbMappings.getAllIgnoredFilepaths().getCount()); dbMappings.ignoreSeason("1234", 6); assertEquals(3, dbMappings.getAllIgnoredFilepaths().getCount()); } /** * Creates a test TV show in the database. * @param db */ private void createTestShow(DbAdapterTvShows db) { db.createShow("1234", "title", "plot", "actors", "genres", "8.5", "PG", "100", "2014-12-04", "1"); } /** * Creates a test TV show in the database. * @param db */ private void createTestShow2(DbAdapterTvShows db) { db.createShow("12345", "title", "plot", "actors", "genres", "8.5", "PG-13", "100", "2014-12-04", "1"); } /** * Get a database instance and reset it before the test begins. * @return */ private DbAdapterTvShows getAndResetDatabase() { // Ensures that we've got an application context, which // is required in order to use the MizuuApplication methods. getInstrumentation().waitForIdleSync(); mContext = getInstrumentation().getTargetContext().getApplicationContext(); DbAdapterTvShows db = MizuuApplication.getTvDbAdapter(); resetDatabase(db); return db; } /** * Resets the TV shows database by deleting all shows, * episodes and filepath mappings. * @param db */ private void resetDatabase(DbAdapterTvShows db) { TvShowDatabaseUtils.deleteAllTvShows(mContext); // Test TV show count assertEquals(0, db.count()); // Test episode count DbAdapterTvShowEpisodes dbEpisodes = MizuuApplication.getTvEpisodeDbAdapter(); assertEquals(0, dbEpisodes.count()); // Test filepath mapping count DbAdapterTvShowEpisodeMappings dbEpisodeMappings = MizuuApplication.getTvShowEpisodeMappingsDbAdapter(); assertEquals(0, dbEpisodeMappings.count()); } }