Files
JIMRI/java/test/jmri/jmris/AbstractPowerServerTestBase.java
T
2026-06-17 14:00:51 +02:00

92 lines
2.5 KiB
Java

package jmri.jmris;
import java.io.IOException;
import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.catchThrowable;
/**
* Base set of tests for descendants of the jmri.jmris.AbstractPowerServer class
*
* @author Paul Bender Copyright (C) 2018
*/
abstract public class AbstractPowerServerTestBase {
protected AbstractPowerServer ps = null;
@Test
public void testCtor() {
assertThat(ps).isNotNull();
}
// test sending an error message.
@Test
public void testSendErrorStatus() throws IOException {
ps.sendErrorStatus();
checkErrorStatusSent();
}
// test sending an On Status.
@Test
public void testSendOnStatus() throws IOException {
ps.sendStatus(jmri.PowerManager.ON);
checkPowerOnSent();
}
// test sending an OFF Status.
@Test
public void testSendOffStatus() throws IOException {
ps.sendStatus(jmri.PowerManager.OFF);
checkPowerOffSent();
}
// test sending an Unknown Status.
@Test
public void testSendUnknownStatus() throws IOException {
ps.sendStatus(-1);
checkUnknownStatusSent();
}
// test the property change sequence for an ON property change.
@Test
public void testPropertyChangeOnStatus() {
Throwable thrown = catchThrowable( () -> jmri.InstanceManager.getDefault(jmri.PowerManager.class).setPower(jmri.PowerManager.ON));
checkPowerOnSent();
assertThat(thrown).withFailMessage("Exception setting Status").isNull();
}
// test the property change sequence for an OFF property change.
@Test
public void testPropertyChangeOffStatus() {
Throwable thrown = catchThrowable( () -> jmri.InstanceManager.getDefault(jmri.PowerManager.class).setPower(jmri.PowerManager.OFF));
assertThat(thrown).withFailMessage("Exception setting Status").isNull();
checkPowerOffSent();
}
/**
* assert that power on was sent
*/
abstract public void checkPowerOnSent();
/**
* assert that power off was sent
*/
abstract public void checkPowerOffSent();
/**
* assert that an unknown status was sent
*/
abstract public void checkUnknownStatusSent();
/**
* assert that an error status was sent
*/
abstract public void checkErrorStatusSent();
/**
* Setup ps and a power manager instance;
*
*/
abstract public void setUp();
}