bd7ddaca63d1ff1be8176f9865745d13f5c737c3
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / fcp / GetLocalSonesCommandTest.kt
1 package net.pterodactylus.sone.fcp
2
3 import net.pterodactylus.sone.core.Core
4 import net.pterodactylus.sone.test.whenever
5 import org.hamcrest.MatcherAssert.assertThat
6 import org.hamcrest.Matchers.equalTo
7 import org.junit.Test
8
9 /**
10  * Unit test for [GetLocalSonesCommand].
11  */
12 class GetLocalSonesCommandTest : SoneCommandTest() {
13
14         override fun createCommand(core: Core) = GetLocalSonesCommand(core)
15
16         @Test
17         fun `command does not require write access`() {
18                 assertThat(command.requiresWriteAccess(), equalTo(false))
19         }
20
21         @Test
22         fun `command returns local sones`() {
23                 val localSones = setOf(
24                                 createSone("Id1", "Name1", "First1", "Last1", 1000L),
25                                 createSone("Id2", "Name2", "First2", "Last2", 2000L)
26                 )
27                 whenever(core.localSones).thenReturn(localSones)
28                 val response = command.execute(null)
29                 val replyParameters = response.replyParameters
30                 assertThat(replyParameters["Message"], equalTo("ListLocalSones"))
31                 assertThat(replyParameters["LocalSones.Count"], equalTo("2"))
32                 assertThat(replyParameters["LocalSones.0.ID"], equalTo("Id1"))
33                 assertThat(replyParameters["LocalSones.0.Name"], equalTo("Name1"))
34                 assertThat(replyParameters["LocalSones.0.NiceName"], equalTo("First1 Last1"))
35                 assertThat(replyParameters["LocalSones.0.Time"], equalTo("1000"))
36                 assertThat(replyParameters["LocalSones.1.ID"], equalTo("Id2"))
37                 assertThat(replyParameters["LocalSones.1.Name"], equalTo("Name2"))
38                 assertThat(replyParameters["LocalSones.1.NiceName"], equalTo("First2 Last2"))
39                 assertThat(replyParameters["LocalSones.1.Time"], equalTo("2000"))
40         }
41
42 }