package tmcsim.cadsimulator; import java.util.Vector; import java.util.logging.Level; import java.util.logging.Logger; import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertFalse; import junit.framework.TestCase; import tmcsim.client.cadclientgui.data.IncidentEvent; /** * * @author jdalbey */ public class SoundPlayerTest extends TestCase { SoundPlayer player; public SoundPlayerTest(String testName) { super(testName); } @Override protected void setUp() throws Exception { super.setUp(); } /** * Test of run method, of class SoundPlayer. */ public void testRun() { System.out.println("run"); Vector dummy = new Vector(); // the frog clip is actually 3 seconds long, but we specify clip duration of 2 // to demonstrate that the subsequent clip will start before the first one finishes. // This shows that SoundPlayer assumes correct clip durations. IncidentEvent evt1 = new IncidentEvent(0, null, "frog-croak.mp3", 2, dummy, dummy); IncidentEvent evt2 = new IncidentEvent(0, null, "bikehorn.mp3", 1, dummy, dummy); player = new SoundPlayer("test/resources/"); player.start(); player.enqueueClip(evt1); player.enqueueClip(evt2); try { Thread.sleep(5000); } catch (InterruptedException ex) { Logger.getLogger(SoundPlayerTest.class.getName()).log(Level.SEVERE, null, ex); } assertEquals(".wav didn't complete playing", IncidentEvent.EVENT_STATUS.COMPLETED, evt2.eventStatus); } public void testEnqueueClip() { System.out.println("enqueueClip"); Vector dummy = new Vector(); IncidentEvent evt1 = new IncidentEvent(0, null, "frog-croak.mp3", 4, dummy, dummy); player = new SoundPlayer("test/resources/"); player.setAudioEnabled(false); player.start(); player.enqueueClip(evt1); // Note: we don't wait for the clip to complete. // So if audio is disabled, the clip will get marked complete without being played. assertEquals(".wav played when audio disabled", IncidentEvent.EVENT_STATUS.COMPLETED, evt1.eventStatus); } public void testDeQueueAll() { System.out.println("deQueueAll"); Vector dummy = new Vector(); IncidentEvent evt1 = new IncidentEvent(0, null, "bikehorn.mp3", 1, dummy, dummy); IncidentEvent evt2 = new IncidentEvent(0, null, "bikehorn.mp3", 2, dummy, dummy); player = new SoundPlayer("test/resources/"); player.start(); player.enqueueClip(evt1); player.enqueueClip(evt2); player.deQueueAll(); try { Thread.sleep(2000); } catch (InterruptedException ex) { Logger.getLogger(SoundPlayerTest.class.getName()).log(Level.SEVERE, null, ex); } assertFalse(".wav played after dequeue all", IncidentEvent.EVENT_STATUS.COMPLETED == evt2.eventStatus); } }