Merge branch 'release-0.9.7'
[Sone.git] / src / test / java / net / pterodactylus / sone / template / AlbumAccessorTest.java
index afc2a54..56d2f29 100644 (file)
@@ -1,17 +1,24 @@
 package net.pterodactylus.sone.template;
 
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.allOf;
 import static org.hamcrest.Matchers.contains;
+import static org.hamcrest.Matchers.greaterThanOrEqualTo;
 import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.lessThanOrEqualTo;
+import static org.hamcrest.Matchers.nullValue;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
+import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
 
-import net.pterodactylus.sone.TestUtil;
 import net.pterodactylus.sone.data.Album;
+import net.pterodactylus.sone.data.Image;
 import net.pterodactylus.sone.data.Profile;
 import net.pterodactylus.sone.data.Sone;
+import net.pterodactylus.sone.test.TestUtil;
 
 import org.hamcrest.Description;
 import org.hamcrest.Matcher;
@@ -90,4 +97,25 @@ public class AlbumAccessorTest {
                };
        }
 
+       @Test
+       public void albumImageIsGeneratedRandomly() {
+               Image image = mock(Image.class);
+               List<Image> albumImages = Arrays.asList(mock(Image.class), image);
+               when(album.getImages()).thenReturn(albumImages);
+               int matchedImage = 0;
+               for (int i = 0; i < 1000; i++) {
+                       Image randomImage = (Image) albumAccessor.get(null, album, "albumImage");
+                       if (randomImage == image) {
+                               matchedImage++;
+                       }
+               }
+               assertThat(matchedImage, allOf(greaterThanOrEqualTo(250), lessThanOrEqualTo(750)));
+       }
+
+       @Test
+       public void albumImageIsNullIfThereAreNoImagesInAnAlbum() {
+               when(album.getImages()).thenReturn(Collections.<Image>emptyList());
+               assertThat(albumAccessor.get(null, album, "albumImage"), nullValue());
+       }
+
 }