/* * 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 DatabaseTest extends TestCase { public static TestSuite suite() { return new TestSuite(DatabaseTest.class); } private Library library; private Database database; protected void setUp() throws Exception { super.setUp(); library = new Library("DatabaseTestLibrary"); database = new Database("DatabaseTest"); assertTrue(library.getDatabaseCount() == 0 && library.getRevision() == 1); Transaction txn = library.beginTransaction(); library.addDatabase(txn, database); txn.commit(); assertTrue(library.getDatabaseCount() == 1 && library.getRevision() == 2); } public void testAddPlaylist() { Playlist playlist = new Playlist("Playlist"); int size = database.getPlaylistCount(); int revision = library.getRevision(); Transaction txn = library.beginTransaction(); database.addPlaylist(txn, playlist); txn.commit(); assertTrue(library.getRevision() == (revision + 1)); assertTrue(database.getPlaylistCount() == (size + 1)); assertTrue(database.containsPlaylist(playlist)); } public void testRemovePlaylist() { Playlist playlist = new Playlist("Playlist"); Transaction txn = library.beginTransaction(); database.addPlaylist(txn, playlist); txn.commit(); int size = database.getPlaylistCount(); int revision = library.getRevision(); txn = library.beginTransaction(); database.removePlaylist(txn, playlist); txn.commit(); assertTrue(library.getRevision() == (revision + 1)); assertTrue(database.getPlaylistCount() == (size - 1)); assertFalse(database.containsPlaylist(playlist)); } public void testSetName() { int revision = library.getRevision(); String name = database.getName(); Transaction txn = library.beginTransaction(); database.setName(txn, "OK"); txn.commit(); assertTrue(library.getRevision() == (revision + 1)); assertTrue(database.getName().equals("OK")); } public void testAddSong() { int revision = library.getRevision(); Song song = new Song("Song"); Playlist playlist = new Playlist("Playlist"); Transaction txn = library.beginTransaction(); database.addSong(txn, song); database.addPlaylist(txn, playlist); txn.commit(); assertTrue(library.getRevision() == (revision + 1)); assertTrue(database.getMasterPlaylist().getSongCount() == 1); assertTrue(database.getMasterPlaylist().containsSong(song)); assertFalse(playlist.getSongCount() == 1); assertFalse(playlist.containsSong(song)); } public void testRemoveSong() { Song song = new Song("Song"); Playlist playlist = new Playlist("Playlist"); Transaction txn = library.beginTransaction(); database.addSong(txn, song); database.addPlaylist(txn, playlist); txn.commit(); int revision = library.getRevision(); txn = library.beginTransaction(); database.removeSong(txn, song); txn.commit(); assertTrue(library.getRevision() == (revision + 1)); assertTrue(database.getMasterPlaylist().getSongCount() == 0); assertFalse(database.getMasterPlaylist().containsSong(song)); assertTrue(playlist.getSongCount() == 0); assertFalse(playlist.containsSong(song)); } public void testUpdateSong() { Song song = new Song("Song"); Transaction txn = library.beginTransaction(); database.addSong(txn, song); txn.commit(); int revision = library.getRevision(); txn = library.beginTransaction(); song.setName(txn, "Hello World"); txn.commit(); assertTrue(library.getRevision() == (revision + 1)); assertTrue(database.getMasterPlaylist().getSongCount() == 1); assertTrue(database.getMasterPlaylist().containsSong(song)); } }