-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<SoneUriCreator>(), notNullValue())
- }
-
-}
-
-private val sone = object : IdOnlySone("id") {
- override fun getIdentity() =
- DefaultOwnIdentity("id", "name", createRequestUri.toString(), createInsertUri.toString())
-
- override fun getLatestEdition() = 123L
-}