org.jajuk.ui.actions.TestPreparePartyAction.java Source code

Java tutorial

Introduction

Here is the source code for org.jajuk.ui.actions.TestPreparePartyAction.java

Source

/*
 *  Jajuk
 *  Copyright (C) The Jajuk Team
 *  http://jajuk.info
 *
 *  This program 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 2
 *  of the License, or any later version.
 *
 *  This program 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 this program; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 *  
 */
package org.jajuk.ui.actions;

import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.util.ArrayList;
import java.util.List;

import javax.swing.JButton;

import org.apache.commons.io.FileUtils;
import org.jajuk.JajukTestCase;
import org.jajuk.TestHelpers;
import org.jajuk.base.Album;
import org.jajuk.base.Artist;
import org.jajuk.base.Device;
import org.jajuk.base.Directory;
import org.jajuk.base.DirectoryManager;
import org.jajuk.base.File;
import org.jajuk.base.FileManager;
import org.jajuk.base.Genre;
import org.jajuk.base.Playlist;
import org.jajuk.base.PlaylistManager;
import org.jajuk.base.Track;
import org.jajuk.base.TrackManager;
import org.jajuk.base.Type;
import org.jajuk.base.Year;
import org.jajuk.util.Const;
import org.jajuk.util.log.Log;

/**
 * .
 */
public class TestPreparePartyAction extends JajukTestCase {
    /**
     * Test method for.
     *
     * {@link org.jajuk.ui.actions.PreparePartyAction#perform(java.awt.event.ActionEvent)}
     * .
     */
    public void testPerform() {
        new PreparePartyAction();
    }

    /**
     * Test method for.
     *
     * @throws Exception the exception
     * {@link org.jajuk.ui.actions.PreparePartyAction#PreparePartyAction()}.
     */
    public void testPreparePartyAction() throws Exception {
        PreparePartyAction action = new PreparePartyAction();
        // once with empty properties, this is called from the menu
        try {
            action.perform(new ActionEvent(new JButton(), 1, null));
        } catch (HeadlessException e) {
            // happens when tests are run on servers without ui
        }
        // then with a single and with a list of playlists, this is called from the
        // PlaylistView
        JButton button = new JButton();
        button.putClientProperty(Const.DETAIL_SELECTION, getPlaylist(10, false));
        try {
            action.perform(new ActionEvent(button, 1, null)); // once with empty
            // properties
        } catch (HeadlessException e) {
            // happens when tests are run on servers without ui
        }
        List<Playlist> list = new ArrayList<Playlist>();
        list.add(getPlaylist(11, false));
        button.putClientProperty(Const.DETAIL_SELECTION, list);
        try {
            action.perform(new ActionEvent(button, 1, null)); // once with empty
            // properties
        } catch (HeadlessException e) {
            // happens when tests are run on servers without ui
        }
    }

    /**
     * Gets the playlist.
     *
     * @param i 
     * @param register 
     * @return the playlist
     * @throws Exception the exception
     */
    private static Playlist getPlaylist(int i, boolean register) throws Exception {
        Genre genre = TestHelpers.getGenre();
        Album album = TestHelpers.getAlbum("name", 23);
        album.setProperty(Const.XML_ALBUM_DISCOVERED_COVER, Const.COVER_NONE); // don't read covers for
        // this test
        Artist artist = TestHelpers.getArtist("name");
        Year year = TestHelpers.getYear(2000);
        Type type = TestHelpers.getType();
        Track track = TrackManager.getInstance().registerTrack("name", album, genre, artist, 120, year, 1, type, 1);
        Device device = TestHelpers.getDevice();
        if (!device.isMounted()) {
            device.mount(true);
        }
        Directory dir = DirectoryManager.getInstance().registerDirectory(device);
        Log.debug("Dir: " + dir.getFio());
        dir.getFio().mkdirs();
        java.io.File f = java.io.File.createTempFile("jajukFile", ".mp3", dir.getFio());
        File file = FileManager.getInstance().registerFile(Integer.valueOf(i).toString(), f.getName(), dir, track,
                120, 70);
        final Playlist list;
        if (register) {
            list = PlaylistManager.getInstance().registerPlaylistFile("test-" + Integer.valueOf(i).toString(),
                    "My Playlist-" + Integer.valueOf(i).toString(), dir);
        } else {
            list = new Playlist(Integer.valueOf(i).toString(), "New list", dir);
        }
        // write the playlist so we can add files to it
        if (!list.getFIO().exists()) {
            // just create an empty file, # is a comment here
            FileUtils.writeStringToFile(list.getFIO(), "#");
        }
        // add a file to the playlist
        list.addFile(file);
        return list;
    }
}