/* 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 . 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)); } }