✨ Post event when debug activated
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / core / CoreTest.kt
index d6c56d4..f7ac026 100644 (file)
@@ -12,8 +12,8 @@ import net.pterodactylus.util.config.*
 import org.hamcrest.*
 import org.hamcrest.MatcherAssert.*
 import org.hamcrest.Matchers.*
-import org.mockito.ArgumentMatchers.eq
-import org.mockito.Mockito.*
+import org.mockito.Mockito.inOrder
+import org.mockito.Mockito.verify
 import org.mockito.hamcrest.MockitoHamcrest.*
 import kotlin.test.*
 
@@ -138,6 +138,26 @@ class CoreTest {
 
        @Test
        fun `core starts with debug set to false`() {
+               val core = createCore()
+               assertThat(core.debug, equalTo(false))
+       }
+
+       @Test
+       fun `debug flag can be set`() {
+               val core = createCore()
+               core.setDebug()
+               assertThat(core.debug, equalTo(true))
+       }
+
+       @Test
+       fun `setting debug flag posts event to event bus`() {
+               val eventBus = mock<EventBus>()
+               val core = createCore(eventBus)
+               core.setDebug()
+               verify(eventBus).post(argThat(instanceOf(DebugActivatedEvent::class.java)))
+       }
+
+       private fun createCore(eventBus: EventBus = mock()): Core {
                val configuration = mock<Configuration>()
                val freenetInterface = mock<FreenetInterface>()
                val identityManager = mock<IdentityManager>()
@@ -145,10 +165,8 @@ class CoreTest {
                val imageInserter = mock<ImageInserter>()
                val updateChecker = mock<UpdateChecker>()
                val webOfTrustUpdater = mock<WebOfTrustUpdater>()
-               val eventBus = mock<EventBus>()
                val database = mock<Database>()
-               val core = Core(configuration, freenetInterface, identityManager, soneDownloader, imageInserter, updateChecker, webOfTrustUpdater, eventBus, database)
-               assertThat(core.debug, equalTo(false))
+               return Core(configuration, freenetInterface, identityManager, soneDownloader, imageInserter, updateChecker, webOfTrustUpdater, eventBus, database)
        }
 
 }