From: David ‘Bombe’ Roden Date: Sun, 20 Nov 2016 15:15:22 +0000 (+0100) Subject: Add unit test for image accessor X-Git-Tag: 0.9.7^2~405 X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=commitdiff_plain;h=b42525b536c259a21454296d32031fdb48b15a9d Add unit test for image accessor --- diff --git a/src/test/java/net/pterodactylus/sone/template/ImageAccessorTest.kt b/src/test/java/net/pterodactylus/sone/template/ImageAccessorTest.kt new file mode 100644 index 0000000..eb692ba --- /dev/null +++ b/src/test/java/net/pterodactylus/sone/template/ImageAccessorTest.kt @@ -0,0 +1,55 @@ +package net.pterodactylus.sone.template + +import net.pterodactylus.sone.data.Album +import net.pterodactylus.sone.data.Image +import net.pterodactylus.sone.test.mock +import net.pterodactylus.sone.test.whenever +import org.hamcrest.MatcherAssert.assertThat +import org.hamcrest.Matchers.equalTo +import org.hamcrest.Matchers.nullValue +import org.junit.Before +import org.junit.Test + +/** + * Unit test for [ImageAccessor]. + */ +class ImageAccessorTest { + + private val accessor = ImageAccessor() + private val album = mock() + private val images = listOf(mock(), mock()) + + @Before + fun setupImages() { + whenever(album.images).thenReturn(images) + images.forEach { + whenever(it.album).thenReturn(album) + } + } + + @Test + fun `accessor returns next image for first image`() { + assertThat(accessor.get(null, images[0], "next"), equalTo(images[1])) + } + + @Test + fun `accessor returns null for next image of second image`() { + assertThat(accessor.get(null, images[1], "next"), nullValue()) + } + + @Test + fun `accessor returns previous image for second image`() { + assertThat(accessor.get(null, images[1], "previous"), equalTo(images[0])) + } + + @Test + fun `accessor returns null for previous image of first image`() { + assertThat(accessor.get(null, images[0], "previous"), nullValue()) + } + + @Test + fun `accessor uses reflection accessor for all other members`() { + assertThat(accessor.get(null, images[0], "hashCode"), equalTo(images[0].hashCode())) + } + +}