X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FSoneUriCreatorTest.kt;fp=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FSoneUriCreatorTest.kt;h=ae8f25b69c5a9c4541fd286fc233bf23948a72d0;hp=0000000000000000000000000000000000000000;hb=fe7976d8e9806d6ad27581e71707a790bc46498e;hpb=80deddc6b581421556370b31aec51d1ae902fa14 diff --git a/src/test/kotlin/net/pterodactylus/sone/core/SoneUriCreatorTest.kt b/src/test/kotlin/net/pterodactylus/sone/core/SoneUriCreatorTest.kt new file mode 100644 index 0000000..ae8f25b --- /dev/null +++ b/src/test/kotlin/net/pterodactylus/sone/core/SoneUriCreatorTest.kt @@ -0,0 +1,88 @@ +package net.pterodactylus.sone.core + +import com.google.inject.Guice +import net.pterodactylus.sone.data.impl.IdOnlySone +import net.pterodactylus.sone.freenet.wot.DefaultIdentity +import net.pterodactylus.sone.freenet.wot.DefaultOwnIdentity +import net.pterodactylus.sone.test.createInsertUri +import net.pterodactylus.sone.test.createRequestUri +import net.pterodactylus.sone.test.getInstance +import org.hamcrest.MatcherAssert.assertThat +import org.hamcrest.Matchers.emptyArray +import org.hamcrest.Matchers.equalTo +import org.hamcrest.Matchers.notNullValue +import org.hamcrest.Matchers.nullValue +import kotlin.test.Test + +/** + * Unit test for [SoneUriCreator]. + */ +class SoneUriCreatorTest { + + private val soneUriCreator = SoneUriCreator() + + private val requestUri = soneUriCreator.getRequestUri(sone) + private val insertUri = soneUriCreator.getInsertUri(sone) + + @Test + fun `generated request URI is a USK`() { + assertThat(requestUri.keyType, equalTo("USK")) + } + + @Test + fun `generated request URI has correct doc name`() { + assertThat(requestUri.docName, equalTo("Sone")) + } + + @Test + fun `generated request URI has no meta strings`() { + assertThat(requestUri.allMetaStrings, emptyArray()) + } + + @Test + fun `generated request URI has correct edition`() { + assertThat(requestUri.suggestedEdition, equalTo(123L)) + } + + @Test + fun `insert URI is null if sone’s identity is not an own identity`() { + val remoteSone = object : IdOnlySone("id") { + override fun getIdentity() = DefaultIdentity("id", "name", createRequestUri.toString()) + } + assertThat(soneUriCreator.getInsertUri(remoteSone), nullValue()) + } + + @Test + fun `generated insert URI is a USK`() { + assertThat(insertUri!!.keyType, equalTo("USK")) + } + + @Test + fun `generated insert URI has correct doc name`() { + assertThat(insertUri!!.docName, equalTo("Sone")) + } + + @Test + fun `generated insert URI has no meta strings`() { + assertThat(insertUri!!.allMetaStrings, emptyArray()) + } + + @Test + fun `generated insert URI has correct edition`() { + assertThat(insertUri!!.suggestedEdition, equalTo(123L)) + } + + @Test + fun `creator can be created by guice`() { + val injector = Guice.createInjector() + assertThat(injector.getInstance(), notNullValue()) + } + +} + +private val sone = object : IdOnlySone("id") { + override fun getIdentity() = + DefaultOwnIdentity("id", "name", createRequestUri.toString(), createInsertUri.toString()) + + override fun getLatestEdition() = 123L +}