aboutsummaryrefslogtreecommitdiff
path: root/subsonic-main/src/test/java/net/sourceforge/subsonic/domain/MediaFileComparatorTestCase.java
diff options
context:
space:
mode:
authorScott Jackson <daneren2005@gmail.com>2012-07-02 21:24:02 -0700
committerScott Jackson <daneren2005@gmail.com>2012-07-02 21:24:02 -0700
commita1a18f77a50804e0127dfa4b0f5240c49c541184 (patch)
tree19a38880afe505beddb5590379a8134d7730a277 /subsonic-main/src/test/java/net/sourceforge/subsonic/domain/MediaFileComparatorTestCase.java
parentb61d787706979e7e20f4c3c4f93c1f129d92273f (diff)
downloaddsub-a1a18f77a50804e0127dfa4b0f5240c49c541184.tar.gz
dsub-a1a18f77a50804e0127dfa4b0f5240c49c541184.tar.bz2
dsub-a1a18f77a50804e0127dfa4b0f5240c49c541184.zip
Initial Commit
Diffstat (limited to 'subsonic-main/src/test/java/net/sourceforge/subsonic/domain/MediaFileComparatorTestCase.java')
-rw-r--r--subsonic-main/src/test/java/net/sourceforge/subsonic/domain/MediaFileComparatorTestCase.java124
1 files changed, 124 insertions, 0 deletions
diff --git a/subsonic-main/src/test/java/net/sourceforge/subsonic/domain/MediaFileComparatorTestCase.java b/subsonic-main/src/test/java/net/sourceforge/subsonic/domain/MediaFileComparatorTestCase.java
new file mode 100644
index 00000000..6e1047f4
--- /dev/null
+++ b/subsonic-main/src/test/java/net/sourceforge/subsonic/domain/MediaFileComparatorTestCase.java
@@ -0,0 +1,124 @@
+/*
+ This file is part of Subsonic.
+
+ Subsonic 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 3 of the License, or
+ (at your option) any later version.
+
+ Subsonic 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 Subsonic. If not, see <http://www.gnu.org/licenses/>.
+
+ Copyright 2009 (C) Sindre Mehus
+ */
+package net.sourceforge.subsonic.domain;
+
+import junit.framework.TestCase;
+
+/**
+ * @author Sindre Mehus
+ * @version $Id$
+ */
+public class MediaFileComparatorTestCase extends TestCase {
+
+ private final MediaFileComparator comparator = new MediaFileComparator(true);
+
+ public void testCompareAlbums() throws Exception {
+
+ MediaFile albumA2012 = new MediaFile();
+ albumA2012.setMediaType(MediaFile.MediaType.ALBUM);
+ albumA2012.setPath("a");
+ albumA2012.setYear(2012);
+
+ MediaFile albumB2012 = new MediaFile();
+ albumB2012.setMediaType(MediaFile.MediaType.ALBUM);
+ albumB2012.setPath("b");
+ albumB2012.setYear(2012);
+
+ MediaFile album2013 = new MediaFile();
+ album2013.setMediaType(MediaFile.MediaType.ALBUM);
+ album2013.setPath("c");
+ album2013.setYear(2013);
+
+ MediaFile albumWithoutYear = new MediaFile();
+ albumWithoutYear.setMediaType(MediaFile.MediaType.ALBUM);
+ albumWithoutYear.setPath("c");
+
+ assertEquals(0, comparator.compare(albumWithoutYear, albumWithoutYear));
+ assertEquals(0, comparator.compare(albumA2012, albumA2012));
+
+ assertEquals(-1, comparator.compare(albumA2012, albumWithoutYear));
+ assertEquals(-1, comparator.compare(album2013, albumWithoutYear));
+ assertEquals(1, comparator.compare(album2013, albumA2012));
+
+ assertEquals(1, comparator.compare(albumWithoutYear, albumA2012));
+ assertEquals(1, comparator.compare(albumWithoutYear, album2013));
+ assertEquals(-1, comparator.compare(albumA2012, album2013));
+
+ assertEquals(-1, comparator.compare(albumA2012, albumB2012));
+ assertEquals(1, comparator.compare(albumB2012, albumA2012));
+ }
+
+ public void testCompareDiscNumbers() throws Exception {
+
+ MediaFile discXtrack1 = new MediaFile();
+ discXtrack1.setMediaType(MediaFile.MediaType.MUSIC);
+ discXtrack1.setPath("a");
+ discXtrack1.setTrackNumber(1);
+
+ MediaFile discXtrack2 = new MediaFile();
+ discXtrack2.setMediaType(MediaFile.MediaType.MUSIC);
+ discXtrack2.setPath("a");
+ discXtrack2.setTrackNumber(2);
+
+ MediaFile disc5track1 = new MediaFile();
+ disc5track1.setMediaType(MediaFile.MediaType.MUSIC);
+ disc5track1.setPath("a");
+ disc5track1.setDiscNumber(5);
+ disc5track1.setTrackNumber(1);
+
+ MediaFile disc5track2 = new MediaFile();
+ disc5track2.setMediaType(MediaFile.MediaType.MUSIC);
+ disc5track2.setPath("a");
+ disc5track2.setDiscNumber(5);
+ disc5track2.setTrackNumber(2);
+
+ MediaFile disc6track1 = new MediaFile();
+ disc6track1.setMediaType(MediaFile.MediaType.MUSIC);
+ disc6track1.setPath("a");
+ disc6track1.setDiscNumber(6);
+ disc6track1.setTrackNumber(1);
+
+ MediaFile disc6track2 = new MediaFile();
+ disc6track2.setMediaType(MediaFile.MediaType.MUSIC);
+ disc6track2.setPath("a");
+ disc6track2.setDiscNumber(6);
+ disc6track2.setTrackNumber(2);
+
+ assertEquals(0, comparator.compare(discXtrack1, discXtrack1));
+ assertEquals(0, comparator.compare(disc5track1, disc5track1));
+
+ assertEquals(-1, comparator.compare(discXtrack1, discXtrack2));
+ assertEquals(1, comparator.compare(discXtrack2, discXtrack1));
+
+ assertEquals(-1, comparator.compare(disc5track1, disc5track2));
+ assertEquals(1, comparator.compare(disc6track2, disc5track1));
+
+ assertEquals(-1, comparator.compare(disc5track1, disc6track1));
+ assertEquals(1, comparator.compare(disc6track1, disc5track1));
+
+ assertEquals(-1, comparator.compare(disc5track2, disc6track1));
+ assertEquals(1, comparator.compare(disc6track1, disc5track2));
+
+ assertEquals(-1, comparator.compare(discXtrack1, disc5track1));
+ assertEquals(1, comparator.compare(disc5track1, discXtrack1));
+
+ assertEquals(-1, comparator.compare(discXtrack1, disc5track2));
+ assertEquals(1, comparator.compare(disc5track2, discXtrack1));
+ }
+}