103 lines
3.4 KiB
Java
103 lines
3.4 KiB
Java
package jmri.jmrit.vsdecoder;
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
import static org.junit.jupiter.api.Assertions.assertNotEquals;
|
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
|
|
|
import jmri.AudioManager;
|
|
import jmri.InstanceManager;
|
|
import jmri.ShutDownManager;
|
|
import jmri.jmrit.audio.DefaultAudioManager;
|
|
import jmri.jmrix.internal.InternalSystemConnectionMemo;
|
|
import jmri.util.JUnitAppender;
|
|
import jmri.util.JUnitUtil;
|
|
|
|
import org.jdom2.Element;
|
|
|
|
import org.junit.jupiter.api.*;
|
|
|
|
/**
|
|
* Tests for the SoundBite class
|
|
*
|
|
* @author Mark Underwood Copyright (C) 2011
|
|
*/
|
|
public class SoundBiteTest {
|
|
|
|
private Runnable damsdt;
|
|
|
|
@Test
|
|
@Disabled("Test requires further development")
|
|
public void testStateConstants() {
|
|
// Maybe check the enums here?
|
|
}
|
|
|
|
@Test
|
|
public void testCreateSimple() {
|
|
SoundBite uut = new SoundBite("unitUnderTest"); // QUEUE_MODE
|
|
assertEquals("unitUnderTest", uut.getName(), "sound name");
|
|
assertTrue(uut.isInitialized(), "initialized");
|
|
assertNotEquals(jmri.Audio.STATE_PLAYING, uut.getSource().getState(), "is playing");
|
|
uut.shutdown();
|
|
}
|
|
|
|
private static final String FILENAME = "java/test/jmri/jmrit/vsdecoder/test.wav";
|
|
|
|
@Test
|
|
public void testCreateFull() {
|
|
SoundBite uut = new SoundBite(null, FILENAME, "sysname", "uname"); // BOUND_MODE
|
|
assertEquals("uname", uut.getName(), "sound name");
|
|
assertEquals(FILENAME, uut.getFileName(), "file name");
|
|
assertEquals("sysname", uut.getSystemName(), "system name");
|
|
assertEquals("uname", uut.getUserName(), "user name");
|
|
assertTrue(uut.isInitialized(), "initialized");
|
|
uut.setLooped(true);
|
|
assertNotEquals(jmri.Audio.STATE_PLAYING, uut.getSource().getState(), "is playing");
|
|
JUnitAppender.suppressWarnMessage("Requested operation is not valid");
|
|
JUnitAppender.suppressWarnMessage("Error creating JoalAudioBuffer (IAB$VSD:sysname)");
|
|
JUnitAppender.suppressErrorMessage("Unhandled audio format type 0");
|
|
|
|
}
|
|
|
|
@Test
|
|
public void testSetGet() {
|
|
SoundBite uut = new SoundBite("unitUnderTest"); // QUEUE_MODE
|
|
uut.setName("new name");
|
|
assertEquals("new name", uut.getName(), "set name");
|
|
assertTrue(uut.isInitialized(), "initialized");
|
|
}
|
|
|
|
private Element buildTestXML() {
|
|
Element e = new Element("Sound");
|
|
e.setAttribute("name", "test_sound");
|
|
e.setAttribute("type", "empty");
|
|
return e;
|
|
}
|
|
|
|
@Test
|
|
public void testSetXML() {
|
|
SoundBite uut = new SoundBite("unitUnderTest"); // QUEUE_MODE
|
|
Element e = buildTestXML();
|
|
uut.setXml(e);
|
|
// SoundBite.setXml() does nothing.
|
|
assertEquals("unitUnderTest", uut.getName(), "xml name");
|
|
}
|
|
|
|
@BeforeEach
|
|
public void setUp() {
|
|
JUnitUtil.setUp();
|
|
DefaultAudioManager dam = new DefaultAudioManager(InstanceManager.getDefault(InternalSystemConnectionMemo.class));
|
|
damsdt = dam.audioShutDownTask;
|
|
InstanceManager.setDefault(AudioManager.class, dam);
|
|
}
|
|
|
|
@AfterEach
|
|
public void tearDown() {
|
|
jmri.util.JUnitAppender.suppressErrorMessage("Unhandled audio format type 0");
|
|
|
|
InstanceManager.getDefault(AudioManager.class).dispose();
|
|
|
|
InstanceManager.getDefault(ShutDownManager.class).deregister(damsdt);
|
|
JUnitUtil.tearDown();
|
|
}
|
|
}
|