Convert FCP interface test to Kotlin
[Sone.git] / src / test / java / net / pterodactylus / sone / fcp / FcpInterfaceTest.kt
1 package net.pterodactylus.sone.fcp
2
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
14 import org.junit.Test
15
16 /**
17  * Unit test for [FcpInterface] and its subclasses.
18  */
19 class FcpInterfaceTest {
20
21         private val core = mock<Core>()
22         private val fcpInterface = FcpInterface(core)
23
24         @Test
25         fun `fcp interface can be activated`() {
26                 fcpInterface.fcpInterfaceActivated(FcpInterfaceActivatedEvent())
27                 assertThat(fcpInterface.isActive, equalTo(true))
28         }
29
30         @Test
31         fun `fcp interface can be deactivated`() {
32                 fcpInterface.fcpInterfaceDeactivated(FcpInterfaceDeactivatedEvent())
33                 assertThat(fcpInterface.isActive, equalTo(false))
34         }
35
36         private fun setAndVerifyAccessRequired(fullAccessRequired: FullAccessRequired) {
37                 fcpInterface.fullAccessRequiredChanged(FullAccessRequiredChanged(fullAccessRequired))
38                 assertThat(fcpInterface.fullAccessRequired, equalTo(fullAccessRequired))
39         }
40
41         @Test
42         fun `set full access required can set access to no`() {
43                 setAndVerifyAccessRequired(NO)
44         }
45
46         @Test
47         fun `set full access required can set access to writing`() {
48                 setAndVerifyAccessRequired(WRITING)
49         }
50
51         @Test
52         fun `set full access required can set access to always`() {
53                 setAndVerifyAccessRequired(ALWAYS)
54         }
55
56 }