package com.androideasyapps.phoenix; import com.androideasyapps.phoenix.dao.MediaFile; import org.junit.Test; import java.util.ArrayList; import java.util.List; import java.util.Map; import static com.androideasyapps.phoenix.TVGapsUtil.*; import static org.junit.Assert.*; public class TVGapsUtilTest { @Test public void testGetTVGaps() throws Exception { List<MediaFile> files = new ArrayList<>(); files.add(newMediaFile("Series1", 1, 1)); files.add(newMediaFile("Series1", 1, 2)); files.add(newMediaFile("Series1", 1, 5)); files.add(newMediaFile("Series1", 1, 6)); files.add(newMediaFile("Series1", 1, 8)); files.add(newMediaFile("Series1", 2, 2)); files.add(newMediaFile("Series1", 2, 4)); files.add(newMediaFile("Series2", 1, 4)); files.add(newMediaFile("Series2", 1, 5)); files.add(newMediaFile("Series2", 1, 7)); files.add(newMediaFile("Series2", 2, 1)); files.add(newMediaFile("Series2", 2, 4)); files.add(newMediaFile("Series2", 3, 1)); files.add(newMediaFile("Series2", 3, 3)); Map<String, List<Pair<Integer>>> gaps = getTVGaps(files); dump(gaps); verify(gaps.get("Series1"), new Pair(1, 3), new Pair(1, 4), new Pair(1, 7), new Pair(2, 3)); verify(gaps.get("Series2"), new Pair(1, 6), new Pair(2, 2), new Pair(2,3), new Pair(3,2)); } private void verify(List<TVGapsUtil.Pair<Integer>> gaps, TVGapsUtil.Pair... expected) { assertEquals(gaps.size(), expected.length); for (int i=0;i<expected.length;i++) { assertEquals(expected[i].first, gaps.get(i).first); assertEquals(expected[i].second, gaps.get(i).second); } } private void dump(Map<String, List<TVGapsUtil.Pair<Integer>>> gaps) { for (Map.Entry<String, List<TVGapsUtil.Pair<Integer>>> me: gaps.entrySet()) { System.out.println("BEGIN: " + me.getKey()); for (TVGapsUtil.Pair<Integer> p: me.getValue()) { System.out.printf(" %s x %s\n", p.first, p.second); } System.out.println("END: " + me.getKey() + "\n"); } } private MediaFile newMediaFile(String series1, int season, int ep) { MediaFile mf = new MediaFile(); mf.setTitle(series1); mf.setSeason(season); mf.setEpisode(ep); return mf; } }