Search in sources :

Example 1 with AlarmContainerException

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));
        }
    });
}
Also used : Alarm(cern.laser.client.data.Alarm) AlarmTableEntry(alma.acsplugins.alarmsystem.gui.table.AlarmTableEntry) Vector(java.util.Vector) AlarmContainerException(alma.acsplugins.alarmsystem.gui.table.AlarmsContainer.AlarmContainerException)

Aggregations

AlarmTableEntry (alma.acsplugins.alarmsystem.gui.table.AlarmTableEntry)1 AlarmContainerException (alma.acsplugins.alarmsystem.gui.table.AlarmsContainer.AlarmContainerException)1 Alarm (cern.laser.client.data.Alarm)1 Vector (java.util.Vector)1