X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fajax%2FJsonPageTest.kt;h=cb5ee5a5d2edb1487ca575371e4a19f2778fde4c;hp=cdb68a369d6bda80550c23a74edc5b66698af6e5;hb=64268e8911d9d2052a41125ea5c0893926d1b2f4;hpb=2e605a25761505242149296e70d77e5ea8b13968 diff --git a/src/test/kotlin/net/pterodactylus/sone/web/ajax/JsonPageTest.kt b/src/test/kotlin/net/pterodactylus/sone/web/ajax/JsonPageTest.kt index cdb68a3..cb5ee5a 100644 --- a/src/test/kotlin/net/pterodactylus/sone/web/ajax/JsonPageTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/web/ajax/JsonPageTest.kt @@ -1,11 +1,13 @@ package net.pterodactylus.sone.web.ajax +import com.google.common.eventbus.EventBus import freenet.clients.http.ToadletContext import freenet.support.SimpleReadOnlyArrayBucket import freenet.support.api.HTTPRequest import net.pterodactylus.sone.core.Core import net.pterodactylus.sone.core.ElementLoader import net.pterodactylus.sone.core.LinkedElement +import net.pterodactylus.sone.core.Preferences import net.pterodactylus.sone.data.Post import net.pterodactylus.sone.data.PostReply import net.pterodactylus.sone.data.Profile @@ -44,6 +46,8 @@ abstract class JsonPageTest( protected val webInterface = mock() protected val core = mock() + protected val eventBus = mock() + protected val preferences = Preferences(eventBus) protected val elementLoader = mock() protected open val page: JsonPage by lazy { pageSupplier(webInterface) } protected val json by lazy { page.createJsonObject(freenetRequest)!! } @@ -64,7 +68,7 @@ abstract class JsonPageTest( private val replies = mutableMapOf() private val newReplies = mutableMapOf() private val linkedElements = mutableMapOf() - private val notifications = mutableListOf() + private val notifications = mutableMapOf() @Before fun setupWebInterface() { @@ -72,13 +76,15 @@ abstract class JsonPageTest( whenever(webInterface.getCurrentSoneCreatingSession(toadletContext)).thenReturn(currentSone) whenever(webInterface.getCurrentSoneWithoutCreatingSession(toadletContext)).thenReturn(currentSone) whenever(webInterface.core).thenReturn(core) - whenever(webInterface.getNotifications(currentSone)).thenAnswer { notifications } + whenever(webInterface.getNotifications(currentSone)).thenAnswer { notifications.values } + whenever(webInterface.getNotification(anyString())).then { notifications[it[0]].asOptional() } whenever(webInterface.getNewPosts(currentSone)).thenAnswer { newPosts.values } whenever(webInterface.getNewReplies(currentSone)).thenAnswer { newReplies.values } } @Before fun setupCore() { + whenever(core.preferences).thenReturn(preferences) whenever(core.getSone(anyString())).thenAnswer { (localSones + remoteSones)[it.getArgument(0)].asOptional() } whenever(core.getLocalSone(anyString())).thenAnswer { localSones[it[0]] } whenever(core.getPost(anyString())).thenAnswer { (posts + newPosts)[it[0]].asOptional() } @@ -153,12 +159,12 @@ abstract class JsonPageTest( requestParts += key to value } - protected fun addNotification(vararg notifications: Notification) { - this.notifications += notifications + protected fun addNotification(notification: Notification, notificationId: String? = null) { + notifications[notificationId ?: notification.id] = notification } - protected fun addSone(sone: Sone) { - remoteSones += sone.id to sone + protected fun addSone(sone: Sone, soneId: String? = null) { + remoteSones += (soneId ?: sone.id) to sone } protected fun addLocalSone(id: String, sone: Sone) {