package net.pterodactylus.sone.test
-import com.google.common.base.Optional
import net.pterodactylus.sone.data.Post
-import net.pterodactylus.sone.data.Sone
import net.pterodactylus.sone.database.PostBuilder
import java.util.UUID
*/
class TestPostBuilder : PostBuilder {
- private val post = mock<Post>()
+ private var id: String? = null
+ private var soneId: String? = null
private var recipientId: String? = null
+ private var time: Long? = null
+ private var text: String? = null
override fun copyPost(post: Post): PostBuilder = this
override fun from(senderId: String): PostBuilder = apply {
- val sone = mock<Sone>()
- whenever(sone.id).thenReturn(senderId)
- whenever(post.sone).thenReturn(sone)
+ soneId = senderId
}
override fun randomId(): PostBuilder = apply {
- whenever(post.id).thenReturn(UUID.randomUUID().toString())
+ id = UUID.randomUUID().toString()
}
override fun withId(id: String): PostBuilder = apply {
- whenever(post.id).thenReturn(id)
+ this.id = id
}
override fun currentTime(): PostBuilder = apply {
- whenever(post.time).thenReturn(System.currentTimeMillis())
+ time = System.currentTimeMillis()
}
override fun withTime(time: Long): PostBuilder = apply {
- whenever(post.time).thenReturn(time)
+ this.time = time
}
override fun withText(text: String): PostBuilder = apply {
- whenever(post.text).thenReturn(text)
+ this.text = text
}
override fun to(recipientId: String): PostBuilder = apply {
this.recipientId = recipientId
}
- override fun build(): Post = post
- .also {
- whenever(post.recipientId).thenReturn(Optional.fromNullable(recipientId))
- }
+ override fun build(): Post =
+ createPost(text!!, sone = createRemoteSone(soneId!!), time = time!!, recipient = recipientId?.let { createRemoteSone(it) }, id = id!!)
}