/
SimpleLinkBuilderTest.kt
127 lines (101 loc) · 2.69 KB
/
SimpleLinkBuilderTest.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
package io.github.freshtuna.halo.util.linkBuilder
import org.junit.jupiter.api.Assertions.*
import org.junit.jupiter.api.DisplayName
import org.junit.jupiter.api.Test
class SimpleLinkBuilderTest {
@Test
@DisplayName("tests all features of SimpleLinkBuilder")
fun test1() {
/**
* given
*/
val userIdKey = "user"
val postIdKey = "post"
val pageKey = "page"
val sortKey = "sort"
val sizeKey = "size"
val testTemplate = "/user/{${userIdKey}}/posts/{${postIdKey}}/comments"
/**
* when
*/
val userId = "freshtuna"
val postId = "29381"
val page = "1"
val sort = "asc"
val size = "5"
val baseUrl = "https://stackoverflow.com"
val link = SimpleLinkBuilder.builder()
.setTemplate(testTemplate)
.setRoot(baseUrl)
.addArg(userIdKey, userId)
.addArg(postIdKey, postId)
.addQuery(pageKey, page)
.addQuery(sortKey, sort)
.addQuery(sizeKey, size)
.build()
/**
* then
*/
val expected = "${baseUrl}/user/${userId}/posts/${postId}/comments?${pageKey}=${page}&${sortKey}=${sort}&${sizeKey}=${size}"
assertEquals(expected, link)
}
@Test
@DisplayName("setPath test")
fun test2() {
/**
* given
*/
val root = "https://stackoverflow.com"
val testTemplate = "/users/me"
/**
* when
*/
val link = SimpleLinkBuilder.builder()
.setPath(testTemplate)
.setRoot(root)
.build()
/**
* then
*/
val expected = "${root}${testTemplate}"
assertEquals(expected, link)
}
@Test
@DisplayName("setTemplate test")
fun test3() {
/**
* given
*/
val root = "https://stackoverflow.com"
val testTemplate = "/users/me"
/**
* when
*/
val link = SimpleLinkBuilder.builder()
.setTemplate(testTemplate)
.setRoot(root)
.build()
/**
* then
*/
val expected = "${root}${testTemplate}"
assertEquals(expected, link)
}
@Test
@DisplayName("ending or starting slash problem test")
fun test4() {
/**
* given
*/
val testTemplate = "/hahahaha"
val root = "iamroot/"
/**
* when
*/
val link = SimpleLinkBuilder.builder()
.setTemplate(testTemplate)
.setRoot(root)
.build()
assertEquals(link, "iamroot/hahahaha")
}
}