Replace Preferences with Kotlin version
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / web / pages / BookmarksPageTest.kt
index 6b4bbae..2186f61 100644 (file)
@@ -1,23 +1,23 @@
 package net.pterodactylus.sone.web.pages
 
 import net.pterodactylus.sone.data.Post
+import net.pterodactylus.sone.test.getInstance
 import net.pterodactylus.sone.test.mock
 import net.pterodactylus.sone.test.whenever
-import net.pterodactylus.sone.web.pages.WebPageTest
-import net.pterodactylus.sone.web.pages.BookmarksPage
-import net.pterodactylus.util.collection.Pagination
+import net.pterodactylus.sone.utils.Pagination
+import net.pterodactylus.sone.web.baseInjector
 import org.hamcrest.MatcherAssert.assertThat
 import org.hamcrest.Matchers.contains
 import org.hamcrest.Matchers.equalTo
+import org.hamcrest.Matchers.notNullValue
 import org.junit.Before
 import org.junit.Test
 
 /**
  * Unit test for [BookmarksPage].
  */
-class BookmarksPageTest: WebPageTest() {
+class BookmarksPageTest: WebPageTest(::BookmarksPage) {
 
-       private val page = BookmarksPage(template, webInterface)
        private val post1 = createLoadedPost(1000)
        private val post2 = createLoadedPost(3000)
        private val post3 = createLoadedPost(2000)
@@ -30,7 +30,7 @@ class BookmarksPageTest: WebPageTest() {
        @Before
        fun setupBookmarkedPostsAndPagination() {
                whenever(core.bookmarkedPosts).thenReturn(setOf(post1, post2, post3))
-               core.preferences.postsPerPage = 5
+               core.preferences.newPostsPerPage = 5
        }
 
        @Test
@@ -41,20 +41,27 @@ class BookmarksPageTest: WebPageTest() {
        @Test
        @Suppress("UNCHECKED_CAST")
        fun `page sets correct posts in template context`() {
-               page.processTemplate(freenetRequest, templateContext)
-               assertThat(templateContext["posts"] as Collection<Post>, contains(post2, post3, post1))
-               assertThat((templateContext["pagination"] as Pagination<Post>).items, contains(post2, post3, post1))
-               assertThat(templateContext["postsNotLoaded"], equalTo<Any>(false))
+               verifyNoRedirect {
+                       assertThat(templateContext["posts"] as Collection<Post>, contains(post2, post3, post1))
+                       assertThat((templateContext["pagination"] as Pagination<Post>).items, contains(post2, post3, post1))
+                       assertThat(templateContext["postsNotLoaded"], equalTo<Any>(false))
+               }
        }
 
        @Test
        @Suppress("UNCHECKED_CAST")
        fun `page does not put unloaded posts in template context but sets a flag`() {
                whenever(post3.isLoaded).thenReturn(false)
-               page.processTemplate(freenetRequest, templateContext)
-               assertThat(templateContext["posts"] as Collection<Post>, contains(post2, post1))
-               assertThat((templateContext["pagination"] as Pagination<Post>).items, contains(post2, post1))
-               assertThat(templateContext["postsNotLoaded"], equalTo<Any>(true))
+               verifyNoRedirect {
+                       assertThat(templateContext["posts"] as Collection<Post>, contains(post2, post1))
+                       assertThat((templateContext["pagination"] as Pagination<Post>).items, contains(post2, post1))
+                       assertThat(templateContext["postsNotLoaded"], equalTo<Any>(true))
+               }
+       }
+
+       @Test
+       fun `bookmarks page can be created by dependency injection`() {
+               assertThat(baseInjector.getInstance<BookmarksPage>(), notNullValue())
        }
 
 }