1 package net.pterodactylus.sone.fcp
3 import net.pterodactylus.sone.core.Core
4 import net.pterodactylus.sone.fcp.FcpInterface.FullAccessRequired
5 import net.pterodactylus.sone.fcp.FcpInterface.FullAccessRequired.ALWAYS
6 import net.pterodactylus.sone.fcp.FcpInterface.FullAccessRequired.NO
7 import net.pterodactylus.sone.fcp.FcpInterface.FullAccessRequired.WRITING
8 import net.pterodactylus.sone.fcp.event.FcpInterfaceActivatedEvent
9 import net.pterodactylus.sone.fcp.event.FcpInterfaceDeactivatedEvent
10 import net.pterodactylus.sone.fcp.event.FullAccessRequiredChanged
11 import net.pterodactylus.sone.test.mock
12 import org.hamcrest.MatcherAssert.assertThat
13 import org.hamcrest.Matchers.equalTo
17 * Unit test for [FcpInterface] and its subclasses.
19 class FcpInterfaceTest {
21 private val core = mock<Core>()
22 private val fcpInterface = FcpInterface(core)
25 fun `fcp interface can be activated`() {
26 fcpInterface.fcpInterfaceActivated(FcpInterfaceActivatedEvent())
27 assertThat(fcpInterface.isActive, equalTo(true))
31 fun `fcp interface can be deactivated`() {
32 fcpInterface.fcpInterfaceDeactivated(FcpInterfaceDeactivatedEvent())
33 assertThat(fcpInterface.isActive, equalTo(false))
36 private fun setAndVerifyAccessRequired(fullAccessRequired: FullAccessRequired) {
37 fcpInterface.fullAccessRequiredChanged(FullAccessRequiredChanged(fullAccessRequired))
38 assertThat(fcpInterface.fullAccessRequired, equalTo(fullAccessRequired))
42 fun `set full access required can set access to no`() {
43 setAndVerifyAccessRequired(NO)
47 fun `set full access required can set access to writing`() {
48 setAndVerifyAccessRequired(WRITING)
52 fun `set full access required can set access to always`() {
53 setAndVerifyAccessRequired(ALWAYS)