+
+fun createPost(text: String = "", sone: Sone? = remoteSone1, known: Boolean = false, time: Long = 1, loaded: Boolean = true, recipient: Sone? = null): Post {
+ return object : Post.EmptyPost("post-id") {
+ override fun getRecipientId() = recipient?.id.asOptional()
+ override fun getRecipient() = recipient.asOptional()
+ override fun getSone() = sone
+ override fun getText() = text
+ override fun isKnown() = known
+ override fun getTime() = time
+ override fun isLoaded() = loaded
+ }
+}
+
+fun createPostReply(text: String = "text", post: Post? = createPost(), sone: Sone = remoteSone1, known: Boolean = false, time: Long = 1, id: String = "reply-id") = object : PostReply {
+ override val id = id
+ override fun getSone() = sone
+ override fun getPostId() = post!!.id
+ override fun getPost(): Optional<Post> = Optional.fromNullable(post)
+ override fun getTime() = time
+ override fun getText() = text
+ override fun isKnown() = known
+}
+
+fun createImage(sone: Sone): Image =
+ ImageImpl().modify().setSone(sone).update()