package net.pterodactylus.sone.fcp;
import static net.pterodactylus.sone.fcp.FcpInterface.FullAccessRequired.ALWAYS;
import static net.pterodactylus.sone.fcp.FcpInterface.FullAccessRequired.NO;
import static net.pterodactylus.sone.fcp.FcpInterface.FullAccessRequired.WRITING;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
import net.pterodactylus.sone.fcp.event.FcpInterfaceActivatedEvent;
import net.pterodactylus.sone.fcp.event.FcpInterfaceDeactivatedEvent;
import net.pterodactylus.sone.fcp.event.FullAccessRequiredChanged;
import org.junit.Test;
/**
* Unit test for {@link FcpInterface} and its subclasses.
*
* @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
*/
public class FcpInterfaceTest {
private final FcpInterface fcpInterface = new FcpInterface(null);
@Test
public void fcpInterfaceCanBeActivated() {
fcpInterface.fcpInterfaceActivated(new FcpInterfaceActivatedEvent());
assertThat(fcpInterface.isActive(), is(true));
}
@Test
public void fcpInterfaceCanBeDeactivated() {
fcpInterface.fcpInterfaceDeactivated(new FcpInterfaceDeactivatedEvent());
assertThat(fcpInterface.isActive(), is(false));
}
@Test
public void setFullAccessRequiredCanSetAccessToNo() {
fcpInterface.fullAccessRequiredChanged(
new FullAccessRequiredChanged(NO));
assertThat(fcpInterface.getFullAccessRequired(), is(NO));
}
@Test
public void setFullAccessRequiredCanSetAccessToWriting() {
fcpInterface.fullAccessRequiredChanged(
new FullAccessRequiredChanged(WRITING));
assertThat(fcpInterface.getFullAccessRequired(), is(WRITING));
}
@Test
public void setFullAccessRequiredCanSetAccessToAlways() {
fcpInterface.fullAccessRequiredChanged(
new FullAccessRequiredChanged(ALWAYS));
assertThat(fcpInterface.getFullAccessRequired(), is(ALWAYS));
}
}