use of alma.acsplugins.alarmsystem.gui.table.AlarmsContainer.AlarmContainerException in project ACS by ACS-Community.
the class AlarmContainerTest method testAlarmsRemove.
/**
* Test the removal of alarms
*
* @throws Exception
*/
public void testAlarmsRemove() throws Exception {
// Add some alarms
int notReduced = 0;
Vector<Alarm> alarms = new Vector<Alarm>();
notReduced = populateContainer(CONTAINER_SIZE / 2, "TEST", alarms, null);
class EDTReader implements Runnable {
// The value to check after reading from EDT
private final int value;
EDTReader(int val) {
value = val;
}
public void run() {
assertEquals("Wrong not reduced size", CONTAINER_SIZE / 2, container.size(false));
assertEquals("Wrong reduced size", value, container.size(true));
}
}
EDTExecutor.instance().executeSync(new EDTReader(notReduced));
// Trying to remove an alarm not in the container throws an exception
Alarm al = TestAlarm.generateRndAlarm("EXCEPTION");
boolean exceptionOccurred = false;
try {
container.remove(new AlarmTableEntry(al));
} catch (AlarmContainerException e) {
exceptionOccurred = true;
}
assertTrue(exceptionOccurred);
// Remove all the alarms checking the number of alarms in the container
int sz = CONTAINER_SIZE / 2;
int reducedToRemove = notReduced;
for (Alarm removedAlarm : alarms) {
container.remove(new AlarmTableEntry(removedAlarm));
sz--;
if (!removedAlarm.getStatus().isReduced()) {
reducedToRemove--;
}
class EDTReader2 implements Runnable {
// The values to check after reading from EDT
private final int sz;
private final int reducedToRemove;
EDTReader2(int sz, int reducedToRemove) {
this.sz = sz;
this.reducedToRemove = reducedToRemove;
}
public void run() {
assertEquals(sz, container.size(false));
assertEquals(reducedToRemove, container.size(true));
}
}
EDTExecutor.instance().executeSync(new EDTReader2(sz, reducedToRemove));
}
// The container is empty
EDTExecutor.instance().executeSync(new Runnable() {
@Override
public void run() {
assertEquals(0, container.size(false));
assertEquals(0, container.size(true));
}
});
}
Aggregations