⚗ Add all missing web pages to injection container
[Sone.git] / src / test / java / net / pterodactylus / sone / web / AllPagesTest.kt
1 package net.pterodactylus.sone.web
2
3 import com.google.inject.Guice.createInjector
4 import net.pterodactylus.sone.core.Core
5 import net.pterodactylus.sone.core.FreenetInterface
6 import net.pterodactylus.sone.main.PluginHomepage
7 import net.pterodactylus.sone.main.PluginVersion
8 import net.pterodactylus.sone.main.PluginYear
9 import net.pterodactylus.sone.test.getInstance
10 import net.pterodactylus.sone.test.isProvidedByMock
11 import net.pterodactylus.sone.web.pages.*
12 import net.pterodactylus.util.template.Template
13 import org.hamcrest.Matcher
14 import org.hamcrest.MatcherAssert.assertThat
15 import org.hamcrest.Matchers
16 import org.junit.Test
17
18 /**
19  * Test for [AllPages].
20  */
21 class AllPagesTest {
22
23         private val injector by lazy {
24                 baseInjector.createChildInjector(
25                                 PluginVersion::class.isProvidedByMock(),
26                                 PluginYear::class.isProvidedByMock(),
27                                 PluginHomepage::class.isProvidedByMock()
28                 )!!
29         }
30         private val allPages by lazy { injector.getInstance<AllPages>() }
31
32         private inline fun <reified T> instanceOf(): Matcher<T> = Matchers.instanceOf<T>(T::class.java)
33
34         @Test
35         fun `about page can be injected`() {
36                 assertThat(allPages.aboutPage, instanceOf<AboutPage>())
37         }
38
39         @Test
40         fun `bookmark page can be injected`() {
41                 assertThat(allPages.bookmarkPage, instanceOf<BookmarkPage>())
42         }
43
44         @Test
45         fun `bookmarks page can be injected`() {
46                 assertThat(allPages.bookmarksPage, instanceOf<BookmarksPage>())
47         }
48
49         @Test
50         fun `create album page can be injected`() {
51                 assertThat(allPages.createAlbumPage, instanceOf<CreateAlbumPage>())
52         }
53
54         @Test
55         fun `create post page can be injected`() {
56                 assertThat(allPages.createPostPage, instanceOf<CreatePostPage>())
57         }
58
59         @Test
60         fun `create reply page can be injected`() {
61                 assertThat(allPages.createReplyPage, instanceOf<CreateReplyPage>())
62         }
63
64         @Test
65         fun `create sone page can be injected`() {
66                 assertThat(allPages.createSonePage, instanceOf<CreateSonePage>())
67         }
68
69         @Test
70         fun `delete album page can be injected`() {
71                 assertThat(allPages.deleteAlbumPage, instanceOf<DeleteAlbumPage>())
72         }
73
74         @Test
75         fun `delete image page can be injected`() {
76                 assertThat(allPages.deleteImagePage, instanceOf<DeleteImagePage>())
77         }
78
79         @Test
80         fun `delete post page can be injected`() {
81                 assertThat(allPages.deletePostPage, instanceOf<DeletePostPage>())
82         }
83
84         @Test
85         fun `delete profile field page can be injected`() {
86                 assertThat(allPages.deleteProfileFieldPage, instanceOf<DeleteProfileFieldPage>())
87         }
88
89         @Test
90         fun `delete reply page can be injected`() {
91                 assertThat(allPages.deleteReplyPage, instanceOf<DeleteReplyPage>())
92         }
93
94         @Test
95         fun `delete sone page can be injected`() {
96                 assertThat(allPages.deleteSonePage, instanceOf<DeleteSonePage>())
97         }
98
99         @Test
100         fun `dismiss notification page can be injected`() {
101                 assertThat(allPages.dismissNotificationPage, instanceOf<DismissNotificationPage>())
102         }
103
104         @Test
105         fun `distrust page can be injected`() {
106                 assertThat(allPages.distrustPage, instanceOf<DistrustPage>())
107         }
108
109         @Test
110         fun `edit album page can be injected`() {
111                 assertThat(allPages.editAlbumPage, instanceOf<EditAlbumPage>())
112         }
113
114         @Test
115         fun `edit image page can be injected`() {
116                 assertThat(allPages.editImagePage, instanceOf<EditImagePage>())
117         }
118
119         @Test
120         fun `edit profile field page can be injected`() {
121                 assertThat(allPages.editProfileFieldPage, instanceOf<EditProfileFieldPage>())
122         }
123
124         @Test
125         fun `edit profile page can be injected`() {
126                 assertThat(allPages.editProfilePage, instanceOf<EditProfilePage>())
127         }
128
129         @Test
130         fun `follow sone page can be injected`() {
131                 assertThat(allPages.followSonePage, instanceOf<FollowSonePage>())
132         }
133
134         @Test
135         fun `get image page can be injected`() {
136                 assertThat(allPages.getImagePage, instanceOf<GetImagePage>())
137         }
138
139         @Test
140         fun `image browser page can be injected`() {
141                 assertThat(allPages.imageBrowserPage, instanceOf<ImageBrowserPage>())
142         }
143
144         @Test
145         fun `index page can be injected`() {
146                 assertThat(allPages.indexPage, instanceOf<IndexPage>())
147         }
148
149         @Test
150         fun `known sones page can be injected`() {
151                 assertThat(allPages.knownSonesPage, instanceOf<KnownSonesPage>())
152         }
153
154         @Test
155         fun `like page can be injected`() {
156                 assertThat(allPages.likePage, instanceOf<LikePage>())
157         }
158
159         @Test
160         fun `lock sone page can be injected`() {
161                 assertThat(allPages.lockSonePage, instanceOf<LockSonePage>())
162         }
163
164         @Test
165         fun `login page can be injected`() {
166                 assertThat(allPages.loginPage, instanceOf<LoginPage>())
167         }
168
169         @Test
170         fun `logout page can be injected`() {
171                 assertThat(allPages.logoutPage, instanceOf<LogoutPage>())
172         }
173
174         @Test
175         fun `mark as known page can be injected`() {
176                 assertThat(allPages.markAsKnownPage, instanceOf<MarkAsKnownPage>())
177         }
178
179         @Test
180         fun `new page can be injected`() {
181                 assertThat(allPages.newPage, instanceOf<NewPage>())
182         }
183
184         @Test
185         fun `options page can be injected`() {
186                 assertThat(allPages.optionsPage, instanceOf<OptionsPage>())
187         }
188
189         @Test
190         fun `rescue page can be injected`() {
191                 assertThat(allPages.rescuePage, instanceOf<RescuePage>())
192         }
193
194         @Test
195         fun `search page can be injected`() {
196                 assertThat(allPages.searchPage, instanceOf<SearchPage>())
197         }
198
199         @Test
200         fun `trust page can be injected`() {
201                 assertThat(allPages.trustPage, instanceOf<TrustPage>())
202         }
203
204         @Test
205         fun `unbookmark page can be injected`() {
206                 assertThat(allPages.unbookmarkPage, instanceOf<UnbookmarkPage>())
207         }
208
209         @Test
210         fun `unfollow sone page can be injected`() {
211                 assertThat(allPages.unfollowSonePage, instanceOf<UnfollowSonePage>())
212         }
213
214         @Test
215         fun `unlike page can be injected`() {
216                 assertThat(allPages.unlikePage, instanceOf<UnlikePage>())
217         }
218
219         @Test
220         fun `unlock sone page can be injected`() {
221                 assertThat(allPages.unlockSonePage, instanceOf<UnlockSonePage>())
222         }
223
224         @Test
225         fun `untrust page can be injected`() {
226                 assertThat(allPages.untrustPage, instanceOf<UntrustPage>())
227         }
228
229         @Test
230         fun `upload image page can be injected`() {
231                 assertThat(allPages.uploadImagePage, instanceOf<UploadImagePage>())
232         }
233
234         @Test
235         fun `view post page can be injected`() {
236                 assertThat(allPages.viewPostPage, instanceOf<ViewPostPage>())
237         }
238
239         @Test
240         fun `view sone page can be injected`() {
241                 assertThat(allPages.viewSonePage, instanceOf<ViewSonePage>())
242         }
243 }
244
245 val baseInjector by lazy {
246         createInjector(
247                         Core::class.isProvidedByMock(),
248                         FreenetInterface::class.isProvidedByMock(),
249                         Template::class.isProvidedByMock(),
250                         WebInterface::class.isProvidedByMock()
251         )!!
252 }