From b42525b536c259a21454296d32031fdb48b15a9d Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20=E2=80=98Bombe=E2=80=99=20Roden?= Date: Sun, 20 Nov 2016 16:15:22 +0100 Subject: [PATCH] Add unit test for image accessor --- .../sone/template/ImageAccessorTest.kt | 55 ++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/test/java/net/pterodactylus/sone/template/ImageAccessorTest.kt 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())) + } + +} -- 2.7.4