🎨 Add Sone.allImages accessor
authorDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Tue, 18 Feb 2020 15:43:01 +0000 (16:43 +0100)
committerDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Tue, 18 Feb 2020 15:43:47 +0000 (16:43 +0100)
src/main/kotlin/net/pterodactylus/sone/data/Sone.kt
src/test/kotlin/net/pterodactylus/sone/data/SoneTest.kt

index 46ff336..34403a1 100644 (file)
@@ -55,3 +55,7 @@ val imageCountComparator: Comparator<Sone> =
 val Sone.allAlbums: List<Album>
        get() =
                rootAlbum.albums.flatMap(Album::allAlbums)
+
+val Sone.allImages: Collection<Image>
+       get() =
+               rootAlbum.allImages
index 42980ee..fb23121 100644 (file)
@@ -154,4 +154,19 @@ class SoneTest {
                assertThat(sone.allAlbums, contains<Album>(album1, album11, album2))
        }
 
+       @Test
+       fun `allImages returns all images of a Sone`() {
+               val sone = object : IdOnlySone("1") {
+                       private val rootAlbum = AlbumImpl(this)
+                       override fun getRootAlbum() = rootAlbum
+               }
+               val album1 = AlbumImpl(sone).also(sone.rootAlbum::addAlbum)
+               val album11 = AlbumImpl(sone).also(album1::addAlbum)
+               val album2 = AlbumImpl(sone).also(sone.rootAlbum::addAlbum)
+               val image1 = createImage(sone).also(album1::addImage)
+               val image11 = createImage(sone).also(album11::addImage)
+               val image2 = createImage(sone).also(album2::addImage)
+               assertThat(sone.allImages, containsInAnyOrder(image1, image11, image2))
+       }
+
 }