1 package net.pterodactylus.sone.core
3 import com.google.inject.Guice
4 import net.pterodactylus.sone.data.impl.IdOnlySone
5 import net.pterodactylus.sone.freenet.wot.DefaultIdentity
6 import net.pterodactylus.sone.freenet.wot.DefaultOwnIdentity
7 import net.pterodactylus.sone.test.createInsertUri
8 import net.pterodactylus.sone.test.createRequestUri
9 import net.pterodactylus.sone.test.getInstance
10 import org.hamcrest.MatcherAssert.assertThat
11 import org.hamcrest.Matchers.emptyArray
12 import org.hamcrest.Matchers.equalTo
13 import org.hamcrest.Matchers.notNullValue
14 import org.hamcrest.Matchers.nullValue
15 import kotlin.test.Test
18 * Unit test for [SoneUriCreator].
20 class SoneUriCreatorTest {
22 private val soneUriCreator = SoneUriCreator()
24 private val requestUri = soneUriCreator.getRequestUri(sone)
25 private val insertUri = soneUriCreator.getInsertUri(sone)
28 fun `generated request URI is a USK`() {
29 assertThat(requestUri.keyType, equalTo("USK"))
33 fun `generated request URI has correct doc name`() {
34 assertThat(requestUri.docName, equalTo("Sone"))
38 fun `generated request URI has no meta strings`() {
39 assertThat(requestUri.allMetaStrings, emptyArray())
43 fun `generated request URI has correct edition`() {
44 assertThat(requestUri.suggestedEdition, equalTo(123L))
48 fun `insert URI is null if sone’s identity is not an own identity`() {
49 val remoteSone = object : IdOnlySone("id") {
50 override fun getIdentity() = DefaultIdentity("id", "name", createRequestUri.toString())
52 assertThat(soneUriCreator.getInsertUri(remoteSone), nullValue())
56 fun `generated insert URI is a USK`() {
57 assertThat(insertUri!!.keyType, equalTo("USK"))
61 fun `generated insert URI has correct doc name`() {
62 assertThat(insertUri!!.docName, equalTo("Sone"))
66 fun `generated insert URI has no meta strings`() {
67 assertThat(insertUri!!.allMetaStrings, emptyArray())
71 fun `generated insert URI has correct edition`() {
72 assertThat(insertUri!!.suggestedEdition, equalTo(123L))
76 fun `creator can be created by guice`() {
77 val injector = Guice.createInjector()
78 assertThat(injector.getInstance<SoneUriCreator>(), notNullValue())
83 private val sone = object : IdOnlySone("id") {
84 override fun getIdentity() =
85 DefaultOwnIdentity("id", "name", createRequestUri.toString(), createInsertUri.toString())
87 override fun getLatestEdition() = 123L