X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Ftest%2FMocks.kt;h=e90c0801cf784120dccd2ff887cfb3c9d292cdec;hb=9fab35abd7dc86afe186ed69a86758a3a0ac426c;hp=ae2ecd6a8440c92f25c5c4a8db5ee95aa55283e2;hpb=f049280a40ddf05f02400e7f0d93a24dea4545c2;p=Sone.git diff --git a/src/test/kotlin/net/pterodactylus/sone/test/Mocks.kt b/src/test/kotlin/net/pterodactylus/sone/test/Mocks.kt index ae2ecd6..e90c080 100644 --- a/src/test/kotlin/net/pterodactylus/sone/test/Mocks.kt +++ b/src/test/kotlin/net/pterodactylus/sone/test/Mocks.kt @@ -17,14 +17,23 @@ package net.pterodactylus.sone.test -import com.google.common.base.* -import freenet.crypt.* -import freenet.keys.* -import net.pterodactylus.sone.data.* -import net.pterodactylus.sone.data.SoneOptions.* -import net.pterodactylus.sone.data.impl.* -import net.pterodactylus.sone.text.* -import net.pterodactylus.sone.utils.* +import com.google.common.base.Optional +import freenet.crypt.DummyRandomSource +import freenet.keys.FreenetURI +import freenet.keys.InsertableClientSSK +import net.pterodactylus.sone.data.Image +import net.pterodactylus.sone.data.Post +import net.pterodactylus.sone.data.PostReply +import net.pterodactylus.sone.data.Sone +import net.pterodactylus.sone.data.SoneOptions.DefaultSoneOptions +import net.pterodactylus.sone.data.impl.IdOnlySone +import net.pterodactylus.sone.data.impl.ImageImpl +import net.pterodactylus.sone.freenet.wot.DefaultIdentity +import net.pterodactylus.sone.freenet.wot.DefaultOwnIdentity +import net.pterodactylus.sone.freenet.wot.Identity +import net.pterodactylus.sone.freenet.wot.OwnIdentity +import net.pterodactylus.sone.utils.asFreenetBase64 +import net.pterodactylus.sone.utils.asOptional val remoteSone1 = createRemoteSone() val remoteSone2 = createRemoteSone() @@ -36,31 +45,52 @@ val createRequestUri: FreenetURI get() = InsertableClientSSK.createRandom(DummyR val createInsertUri: FreenetURI get() = InsertableClientSSK.createRandom(DummyRandomSource(), "").insertURI fun createId() = InsertableClientSSK.createRandom(DummyRandomSource(), "").uri.routingKey.asFreenetBase64 -fun createLocalSone(id: String? = createId()) = object : IdOnlySone(id) { +fun createOwnIdentity(id: String = "", nickname: String = "", requestUri: String = "", insertUri: String = "", contexts: Set = setOf(), properties: Map = mapOf()): OwnIdentity = + DefaultOwnIdentity(id, nickname, requestUri, insertUri).apply { + setContexts(contexts) + this.properties = properties + } + +fun createIdentity(id: String = "", nickname: String = "", requestUri: String = "", contexts: Set = setOf(), properties: Map = mapOf()): Identity = + DefaultIdentity(id, nickname, requestUri).apply { + setContexts(contexts) + this.properties = properties + } + +fun createLocalSone(id: String = createId(), identity: Identity = createOwnIdentity(id)): Sone = object : IdOnlySone(id) { private val options = DefaultSoneOptions() + private val friends = mutableListOf() + override fun getIdentity(): Identity = identity override fun getOptions() = options override fun isLocal() = true + override fun getFriends() = friends + override fun hasFriend(friendSoneId: String) = friendSoneId in friends +} + +fun createRemoteSone(id: String = createId(), identity: Identity = createIdentity(id)): Sone = object : IdOnlySone(id) { + override fun getIdentity(): Identity = identity } -fun createRemoteSone(id: String? = createId()) = IdOnlySone(id) -fun createPost(text: String = "", sone: Sone = remoteSone1, known: Boolean = false, time: Long = 1): Post.EmptyPost { +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 emptyPostReply(text: String = "", post: Post? = createPost(), sone: Sone = remoteSone1, known: Boolean = false, time: Long = 1) = object : PostReply { - override val id = "reply-id" +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 = Optional.fromNullable(post) override fun getTime() = time override fun getText() = text override fun isKnown() = known - override fun setKnown(known: Boolean): PostReply = this } fun createImage(sone: Sone): Image =