1 package net.pterodactylus.sone.web.ajax
3 import net.pterodactylus.sone.test.*
4 import net.pterodactylus.sone.web.*
5 import net.pterodactylus.util.notify.*
6 import org.hamcrest.MatcherAssert.*
7 import org.hamcrest.Matchers.*
9 import org.mockito.Mockito.*
12 * Unit test for [DismissNotificationAjaxPage].
14 class DismissNotificationAjaxPageTest : JsonPageTest("dismissNotification.ajax", requiresLogin = false, pageSupplier = ::DismissNotificationAjaxPage) {
17 fun `request without notification returns invalid-notification-id`() {
18 assertThatJsonFailed("invalid-notification-id")
22 fun `request to dismiss non-dismissable notification results in not-dismissable`() {
23 val notification = mock<Notification>()
24 addNotification(notification, "foo")
25 addRequestParameter("notification", "foo")
26 assertThatJsonFailed("not-dismissable")
30 fun `request to dismiss dismissable notification dismisses notification`() {
31 val notification = mock<Notification>().apply { whenever(isDismissable).thenReturn(true) }
32 addNotification(notification, "foo")
33 addRequestParameter("notification", "foo")
34 assertThatJsonIsSuccessful()
35 verify(notification).dismiss()
39 fun `page can be created by dependency injection`() {
40 assertThat(baseInjector.getInstance<DismissNotificationAjaxPage>(), notNullValue())