♻️ Replace Sone URI creator with Kotlin version
[Sone.git] / src / test / java / net / pterodactylus / sone / core / SoneUriCreatorTest.kt
1 package net.pterodactylus.sone.core
2
3 import net.pterodactylus.sone.data.impl.IdOnlySone
4 import net.pterodactylus.sone.freenet.wot.DefaultIdentity
5 import net.pterodactylus.sone.freenet.wot.DefaultOwnIdentity
6 import net.pterodactylus.sone.test.createInsertUri
7 import net.pterodactylus.sone.test.createRequestUri
8 import org.hamcrest.MatcherAssert.assertThat
9 import org.hamcrest.Matchers.emptyArray
10 import org.hamcrest.Matchers.equalTo
11 import org.hamcrest.Matchers.nullValue
12 import kotlin.test.Test
13
14 /**
15  * Unit test for [SoneUriCreator].
16  */
17 class SoneUriCreatorTest {
18
19         private val soneUriCreator = SoneUriCreator()
20
21         private val requestUri = soneUriCreator.getRequestUri(sone)
22         private val insertUri = soneUriCreator.getInsertUri(sone)
23
24         @Test
25         fun `generated request URI is a USK`() {
26                 assertThat(requestUri.keyType, equalTo("USK"))
27         }
28
29         @Test
30         fun `generated request URI has correct doc name`() {
31                 assertThat(requestUri.docName, equalTo("Sone"))
32         }
33
34         @Test
35         fun `generated request URI has no meta strings`() {
36                 assertThat(requestUri.allMetaStrings, emptyArray())
37         }
38
39         @Test
40         fun `generated request URI has correct edition`() {
41                 assertThat(requestUri.suggestedEdition, equalTo(123L))
42         }
43
44         @Test
45         fun `insert URI is null if sone’s identity is not an own identity`() {
46                 val remoteSone = object : IdOnlySone("id") {
47                         override fun getIdentity() = DefaultIdentity("id", "name", createRequestUri.toString())
48                 }
49                 assertThat(soneUriCreator.getInsertUri(remoteSone), nullValue())
50         }
51
52         @Test
53         fun `generated insert URI is a USK`() {
54                 assertThat(insertUri!!.keyType, equalTo("USK"))
55         }
56
57         @Test
58         fun `generated insert URI has correct doc name`() {
59                 assertThat(insertUri!!.docName, equalTo("Sone"))
60         }
61
62         @Test
63         fun `generated insert URI has no meta strings`() {
64                 assertThat(insertUri!!.allMetaStrings, emptyArray())
65         }
66
67         @Test
68         fun `generated insert URI has correct edition`() {
69                 assertThat(insertUri!!.suggestedEdition, equalTo(123L))
70         }
71
72 }
73
74 private val sone = object : IdOnlySone("id") {
75         override fun getIdentity() =
76                         DefaultOwnIdentity("id", "name", createRequestUri.toString(), createInsertUri.toString())
77
78         override fun getLatestEdition() = 123L
79 }