/*
* MidiDeviceTestCase.java
*/
/*
* Copyright (c) 2003 by Matthias Pfisterer
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Library General Public License as published
* by the Free Software Foundation; either version 2 of the License, or
* (at your option) 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 Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
package org.tritonus.test.api.midi.device;
import javax.sound.midi.MidiDevice;
import javax.sound.midi.Receiver;
import javax.sound.midi.Transmitter;
/** Class for tests of javax.sound.midi.MidiDevice.
*/
public class MidiDeviceTestCase
extends BaseMidiDeviceTestCase
{
public MidiDeviceTestCase(String strName)
{
super(strName);
}
public void testGetDeviceInfo()
throws Exception
{
Check check = new Check()
{
public void check(MidiDevice device)
throws Exception
{
MidiDevice.Info info = device.getDeviceInfo();
assertNotNull("getDeviceInfo()", info);
assertNotNull("DeviceInfo.getName()", info.getName());
assertNotNull("DeviceInfo.getVendor()", info.getVendor());
assertNotNull("DeviceInfo.getDescription()", info.getDescription());
assertNotNull("DeviceInfo.getVersion()", info.getVersion());
}
};
checkMidiDevice(check);
}
public void testOpenClose()
throws Exception
{
Check check = new Check()
{
public void check(MidiDevice device)
throws Exception
{
assertTrue("closed", ! device.isOpen());
device.open();
assertTrue("open", device.isOpen());
device.close();
assertTrue("closed", ! device.isOpen());
}
};
checkMidiDevice(check);
}
public void testGetMicrosecondPosition()
throws Exception
{
Check check = new Check()
{
public void check(MidiDevice device)
throws Exception
{
long lPosition = device.getMicrosecondPosition();
assertTrue("getMicrosecondPosition() before open", lPosition == -1 || lPosition == 0);
device.open();
lPosition = device.getMicrosecondPosition();
assertTrue("getMicrosecondPosition() after open", lPosition == -1 || lPosition >= 0);
device.close();
lPosition = device.getMicrosecondPosition();
assertTrue("getMicrosecondPosition() after close", lPosition == -1 || lPosition == 0);
}
};
checkMidiDevice(check);
}
public void testGetMaxReceivers()
throws Exception
{
Check check = new Check()
{
public void check(MidiDevice device)
{
int nMax = device.getMaxReceivers();
assertTrue("getMaxReceivers()", nMax == -1 || nMax == 0);
}
};
checkMidiDevice(check);
}
public void testGetMaxTransmitters()
throws Exception
{
Check check = new Check()
{
public void check(MidiDevice device)
{
int nMax = device.getMaxTransmitters();
assertTrue("getMaxTransmitters()", nMax == -1 || nMax == 0);
}
};
checkMidiDevice(check);
}
public void testGetReceiver()
throws Exception
{
Check check = new Check()
{
public void check(MidiDevice device)
throws Exception
{
int nMax = device.getMaxReceivers();
if (nMax != 0)
{
nMax = (nMax == -1) ? 100: nMax;
Receiver[] aReceivers = new Receiver[nMax];
for (int i = 0; i < nMax; i++)
{
aReceivers[i] = device.getReceiver();
assertNotNull("getReceiver()", aReceivers[i]);
for (int j = 0; j < i - 1; j++)
{
assertTrue("Receiver objects unique", aReceivers[i] != aReceivers[j]);
}
}
for (int i = 0; i < nMax; i++)
{
aReceivers[i].close();
}
}
}
};
checkMidiDevice(check);
}
public void testGetReceivers()
throws Exception
{
Check check = new Check()
{
public void check(MidiDevice device)
throws Exception
{
assertEquals("getReceivers() length", 0, device.getReceivers().size());
int nMax = device.getMaxReceivers();
if (nMax != 0)
{
nMax = (nMax == -1) ? 100: nMax;
Receiver[] aReceivers = new Receiver[nMax];
for (int i = 0; i < nMax; i++)
{
aReceivers[i] = device.getReceiver();
assertTrue("Receiver in getReceivers()",
device.getReceivers().contains(aReceivers[i]));
}
assertEquals("getReceivers() length", nMax, device.getReceivers().size());
for (int i = 0; i < nMax; i++)
{
aReceivers[i].close();
assertTrue("Receiver not in getReceivers()",
! device.getReceivers().contains(aReceivers[i]));
}
}
assertEquals("getReceivers() length", 0, device.getReceivers().size());
}
};
checkMidiDevice(check);
}
public void testGetTransmitter()
throws Exception
{
Check check = new Check()
{
public void check(MidiDevice device)
throws Exception
{
int nMax = device.getMaxTransmitters();
if (nMax != 0)
{
nMax = (nMax == -1) ? 100: nMax;
Transmitter[] aTransmitters = new Transmitter[nMax];
for (int i = 0; i < nMax; i++)
{
aTransmitters[i] = device.getTransmitter();
assertNotNull("getTransmitter()", aTransmitters[i]);
for (int j = 0; j < i - 1; j++)
{
assertTrue("Transmitter objects unique", aTransmitters[i] != aTransmitters[j]);
}
}
for (int i = 0; i < nMax; i++)
{
aTransmitters[i].close();
}
}
}
};
checkMidiDevice(check);
}
public void testGetTransmitters()
throws Exception
{
Check check = new Check()
{
public void check(MidiDevice device)
throws Exception
{
assertEquals("getTransmitters() length", 0, device.getTransmitters().size());
int nMax = device.getMaxTransmitters();
if (nMax != 0)
{
nMax = (nMax == -1) ? 100: nMax;
Transmitter[] aTransmitters = new Transmitter[nMax];
for (int i = 0; i < nMax; i++)
{
aTransmitters[i] = device.getTransmitter();
assertTrue("Transmitter in getTransmitters()",
device.getTransmitters().contains(aTransmitters[i]));
}
assertEquals("getTransmitters() length", nMax, device.getTransmitters().size());
for (int i = 0; i < nMax; i++)
{
aTransmitters[i].close();
assertTrue("Transmitter not in getTransmitters()",
! device.getTransmitters().contains(aTransmitters[i]));
}
}
assertEquals("getTransmitters() length", 0, device.getTransmitters().size());
}
};
checkMidiDevice(check);
}
}
/*** MidiDeviceTestCase.java ***/