1 package net.pterodactylus.sone.test
3 import com.google.common.base.Optional
4 import net.pterodactylus.sone.data.Post
5 import net.pterodactylus.sone.data.Sone
6 import net.pterodactylus.sone.database.PostBuilder
10 * [PostBuilder] implementation that returns a mocked [Post].
12 class TestPostBuilder : PostBuilder {
14 private val post = mock<Post>()
15 private var recipientId: String? = null
17 override fun copyPost(post: Post): PostBuilder = this
19 override fun from(senderId: String): PostBuilder = apply {
20 val sone = mock<Sone>()
21 whenever(sone.id).thenReturn(senderId)
22 whenever(post.sone).thenReturn(sone)
25 override fun randomId(): PostBuilder = apply {
26 whenever(post.id).thenReturn(UUID.randomUUID().toString())
29 override fun withId(id: String): PostBuilder = apply {
30 whenever(post.id).thenReturn(id)
33 override fun currentTime(): PostBuilder = apply {
34 whenever(post.time).thenReturn(System.currentTimeMillis())
37 override fun withTime(time: Long): PostBuilder = apply {
38 whenever(post.time).thenReturn(time)
41 override fun withText(text: String): PostBuilder = apply {
42 whenever(post.text).thenReturn(text)
45 override fun to(recipientId: String): PostBuilder = apply {
46 this.recipientId = recipientId
49 override fun build(): Post = post
51 whenever(post.recipientId).thenReturn(Optional.fromNullable(recipientId))