package org.limewire.player.impl;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import junit.framework.Test;
import org.limewire.player.api.AudioPlayerEvent;
import org.limewire.player.api.AudioPlayerListener;
import org.limewire.player.api.PlayerState;
import org.limewire.util.BaseTestCase;
public class AudioPlayerListenerTest extends BaseTestCase {
static LimeWirePlayer player;
static testAudioPlayerListener listener;
public AudioPlayerListenerTest(String name) {
super(name);
}
public static Test suite() {
return buildTestSuite(AudioPlayerListenerTest.class);
}
@Override
public void setUp() {
player = new LimeWirePlayer();
listener = new testAudioPlayerListener();
player.addAudioPlayerListener(listener);
}
public void testStateUpdated(){
player.fireStateUpdated( new AudioPlayerEvent(PlayerState.OPENED, 0) );
assertEquals(1, listener.recievedEvents.size());
player.removeAudioPlayerListener(listener);
player.fireStateUpdated(new AudioPlayerEvent(PlayerState.OPENED, 0) );
assertEquals(1, listener.recievedEvents.size());
}
public void testOpened(){
player.fireOpened(null);
assertEquals(1, listener.recievedEvents.size());
player.removeAudioPlayerListener(listener);
player.fireOpened(null);
assertEquals(1, listener.recievedEvents.size());
}
public void testProgress(){
player.fireProgress(-1);
assertEquals(1, listener.recievedEvents.size());
player.removeAudioPlayerListener(listener);
player.fireProgress(-1);
assertEquals(1, listener.recievedEvents.size());
}
public class testAudioPlayerListener implements AudioPlayerListener{
List<Object> recievedEvents = new ArrayList<Object>();
public void songOpened(Map<String, Object> properties) {
recievedEvents.add(new opened(properties));
}
public void progressChange(int bytesread) {
recievedEvents.add(new progress(bytesread));
}
public void stateChange(AudioPlayerEvent event) {
recievedEvents.add(event);
}
}
private class progress{
int b;
Map<String,Object>m;
public progress(int bytes){
b = bytes;
}
}
private class opened{
Map<String,Object> m;
public opened(Map<String,Object> props){
m = props;
}
}
}