1 package net.pterodactylus.sone.test
3 import net.pterodactylus.sone.data.Post
4 import net.pterodactylus.sone.database.PostBuilder
8 * [PostBuilder] implementation that returns a mocked [Post].
10 class TestPostBuilder : PostBuilder {
12 private var id: String? = null
13 private var soneId: String? = null
14 private var recipientId: String? = null
15 private var time: Long? = null
16 private var text: String? = null
18 override fun copyPost(post: Post): PostBuilder = this
20 override fun from(senderId: String): PostBuilder = apply {
24 override fun randomId(): PostBuilder = apply {
25 id = UUID.randomUUID().toString()
28 override fun withId(id: String): PostBuilder = apply {
32 override fun currentTime(): PostBuilder = apply {
33 time = System.currentTimeMillis()
36 override fun withTime(time: Long): PostBuilder = apply {
40 override fun withText(text: String): PostBuilder = apply {
44 override fun to(recipientId: String): PostBuilder = apply {
45 this.recipientId = recipientId
48 override fun build(): Post =
49 createPost(text!!, sone = createRemoteSone(soneId!!), time = time!!, recipient = recipientId?.let { createRemoteSone(it) }, id = id!!)