/* * Digital Audio Access Protocol (DAAP) Library * Copyright (C) 2004-2010 Roger Kapsi * * 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. */ package org.ardverk.daap.tests; import junit.framework.TestCase; import junit.framework.TestSuite; import org.ardverk.daap.Database; import org.ardverk.daap.Library; import org.ardverk.daap.Playlist; import org.ardverk.daap.Song; import org.ardverk.daap.Transaction; public class PlaylistTest extends TestCase { public static TestSuite suite() { return new TestSuite(PlaylistTest.class); } private Library library; private Database database; private Playlist playlist; protected void setUp() throws Exception { super.setUp(); library = new Library("PlaylistTestLibrary"); database = new Database("PlaylistTestDatabase"); playlist = new Playlist("PlaylistTest"); assertTrue(library.getDatabaseCount() == 0 && library.getRevision() == 1); Transaction txn = library.beginTransaction(); database.addPlaylist(txn, playlist); library.addDatabase(txn, database); txn.commit(); assertTrue(library.getDatabaseCount() == 1 && library.getRevision() == 2); assertTrue(database.containsPlaylist(playlist)); assertTrue(library.containsDatabase(database)); } public void testSetName() { int revision = library.getRevision(); Transaction txn = library.beginTransaction(); playlist.setName(txn, "Hello World!"); txn.commit(); assertTrue(library.getRevision() == (revision + 1)); assertEquals(playlist.getName(), "Hello World!"); } public void testSetSmart() { int revision = library.getRevision(); boolean isSmart = playlist.isSmartPlaylist(); Transaction txn = library.beginTransaction(); playlist.setSmartPlaylist(txn, !isSmart); txn.commit(); assertTrue(library.getRevision() == (revision + 1)); assertTrue(playlist.isSmartPlaylist() != isSmart); } public void testSetPodcast() { int revision = library.getRevision(); boolean podcast = playlist.isPodcastPlaylist(); Transaction txn = library.beginTransaction(); playlist.setPodcastPlaylist(txn, !podcast); txn.commit(); assertTrue(library.getRevision() == (revision + 1)); assertTrue(playlist.isPodcastPlaylist() != podcast); } public void testAddSong() { int revision = library.getRevision(); Song song = new Song("Song"); Transaction txn = library.beginTransaction(); playlist.addSong(txn, song); txn.commit(); assertTrue(library.getRevision() == (revision + 1)); assertTrue(playlist.containsSong(song)); } public void testRemoveSong() { Song song = new Song("Song"); Transaction txn = library.beginTransaction(); playlist.addSong(txn, song); txn.commit(); int revision = library.getRevision(); txn = library.beginTransaction(); playlist.removeSong(txn, song); txn.commit(); assertTrue(library.getRevision() == (revision + 1)); assertFalse(playlist.containsSong(song)); assertFalse(database.containsSong(song)); } }