Add test for DI constructability of EditAlbumAjaxPage
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / web / ajax / EditAlbumAjaxPageTest.kt
index d540344..1528d60 100644 (file)
@@ -5,10 +5,13 @@ import net.pterodactylus.sone.data.Album.Modifier.AlbumTitleMustNotBeEmpty
 import net.pterodactylus.sone.data.Sone
 import net.pterodactylus.sone.data.impl.AlbumImpl
 import net.pterodactylus.sone.test.deepMock
+import net.pterodactylus.sone.test.getInstance
 import net.pterodactylus.sone.test.mock
 import net.pterodactylus.sone.test.whenever
+import net.pterodactylus.sone.web.baseInjector
 import org.hamcrest.MatcherAssert.assertThat
 import org.hamcrest.Matchers.equalTo
+import org.hamcrest.Matchers.notNullValue
 import org.junit.Test
 
 /**
@@ -22,8 +25,7 @@ class EditAlbumAjaxPageTest : JsonPageTest("editAlbum.ajax", pageSupplier = ::Ed
 
        @Test
        fun `request without album results in invalid-album-id`() {
-               assertThat(json.isSuccess, equalTo(false))
-               assertThat(json.error, equalTo("invalid-album-id"))
+               assertThatJsonFailed("invalid-album-id")
        }
 
        @Test
@@ -31,8 +33,7 @@ class EditAlbumAjaxPageTest : JsonPageTest("editAlbum.ajax", pageSupplier = ::Ed
                whenever(album.sone).thenReturn(sone)
                addAlbum(album)
                addRequestParameter("album", "album-id")
-               assertThat(json.isSuccess, equalTo(false))
-               assertThat(json.error, equalTo("not-authorized"))
+               assertThatJsonFailed("not-authorized")
        }
 
        @Test
@@ -45,7 +46,7 @@ class EditAlbumAjaxPageTest : JsonPageTest("editAlbum.ajax", pageSupplier = ::Ed
                addAlbum(album)
                addRequestParameter("album", "album-id")
                addRequestParameter("moveLeft", "true")
-               assertThat(json.isSuccess, equalTo(true))
+               assertThatJsonIsSuccessful()
                assertThat(json["sourceAlbumId"]?.asText(), equalTo("album-id"))
                assertThat(json["destinationAlbumId"]?.asText(), equalTo("swapped"))
        }
@@ -60,7 +61,7 @@ class EditAlbumAjaxPageTest : JsonPageTest("editAlbum.ajax", pageSupplier = ::Ed
                addAlbum(album)
                addRequestParameter("album", "album-id")
                addRequestParameter("moveRight", "true")
-               assertThat(json.isSuccess, equalTo(true))
+               assertThatJsonIsSuccessful()
                assertThat(json["sourceAlbumId"]?.asText(), equalTo("album-id"))
                assertThat(json["destinationAlbumId"]?.asText(), equalTo("swapped"))
        }
@@ -72,8 +73,7 @@ class EditAlbumAjaxPageTest : JsonPageTest("editAlbum.ajax", pageSupplier = ::Ed
                whenever(album.modify().setTitle("")).thenThrow(AlbumTitleMustNotBeEmpty::class.java)
                addAlbum(album)
                addRequestParameter("album", "album-id")
-               assertThat(json.isSuccess, equalTo(false))
-               assertThat(json.error, equalTo("invalid-album-title"))
+               assertThatJsonFailed("invalid-album-title")
        }
 
        @Test
@@ -84,10 +84,15 @@ class EditAlbumAjaxPageTest : JsonPageTest("editAlbum.ajax", pageSupplier = ::Ed
                addRequestParameter("title", "new title")
                addRequestParameter("description", "foo http://127.0.0.1:8888/KSK@foo.html link")
                addRequestHeader("Host", "127.0.0.1:8888")
-               assertThat(json.isSuccess, equalTo(true))
+               assertThatJsonIsSuccessful()
                assertThat(json["albumId"]?.asText(), equalTo("album-id"))
                assertThat(json["title"]?.asText(), equalTo("new title"))
                assertThat(json["description"]?.asText(), equalTo("foo KSK@foo.html link"))
        }
 
+       @Test
+       fun `page can be created by dependency injection`() {
+           assertThat(baseInjector.getInstance<EditAlbumAjaxPage>(), notNullValue())
+       }
+
 }