@@ -36,6 +36,7 @@ import io.dataswift.models.hat.{ DataCredit, DataDebitOwner, Owner }
36
36
import net .codingwell .scalaguice .ScalaModule
37
37
import org .hatdex .hat .api .service ._
38
38
import org .hatdex .hat .api .service .applications .{ TestApplicationProvider , TrustedApplicationProvider }
39
+ // import io.dataswift.models.hat.applications._
39
40
import org .hatdex .hat .authentication .HatApiAuthEnvironment
40
41
import org .hatdex .hat .authentication .models .HatUser
41
42
import org .hatdex .hat .dal .HatDbSchemaMigration
@@ -50,13 +51,27 @@ import org.scalatestplus.mockito.MockitoSugar
50
51
import play .api .http .HttpErrorHandler
51
52
import play .api .i18n .{ Lang , MessagesApi }
52
53
import play .api .inject .guice .GuiceApplicationBuilder
53
- import play .api .{ Application , Configuration , Logger }
54
+ import play .api .{ Application => PlayApplication , Configuration , Logger }
54
55
55
56
import java .io .StringReader
56
57
import java .util .UUID
57
58
import scala .concurrent .ExecutionContext .Implicits .global
58
59
import scala .concurrent .duration ._
59
60
import scala .concurrent .{ Await , Future }
61
+ import io .dataswift .models .hat .FormattedText
62
+ import org .joda .time .{ DateTime , LocalDateTime }
63
+ import io .dataswift .models .hat .Drawable
64
+ import io .dataswift .models .hat .UserRole
65
+ import io .dataswift .models .hat .applications .ApplicationStatus
66
+ import io .dataswift .models .hat .applications .ApplicationSetup
67
+ import io .dataswift .models .hat .applications .ApplicationPermissions
68
+ import io .dataswift .models .hat .applications .ApplicationDeveloper
69
+ import io .dataswift .models .hat .applications .ApplicationInfo
70
+ import io .dataswift .models .hat .applications .Version
71
+ import io .dataswift .models .hat .applications .ApplicationKind
72
+ import io .dataswift .models .hat .applications .Application
73
+ import io .dataswift .models .hat .applications .DataFeedItem
74
+ import io .dataswift .models .hat .applications .ApplicationGraphics
60
75
61
76
abstract class HATTestContext extends PostgresqlSpec with MockitoSugar with BeforeAndAfter {
62
77
@@ -191,8 +206,13 @@ mO9kGhALaD5okBcI/VuAQiFvBXdK0ii/nVcBApXEu47PG4oYUgPI
191
206
Seq (DataCredit (" " ), DataCredit (" namespace" )),
192
207
enabled = true
193
208
)
209
+
194
210
implicit lazy val environment : Environment [HatApiAuthEnvironment ] = FakeEnvironment [HatApiAuthEnvironment ](
195
- Seq (owner.loginInfo -> owner, dataDebitUser.loginInfo -> dataDebitUser, dataCreditUser.loginInfo -> dataCreditUser),
211
+ Seq (
212
+ owner.loginInfo -> owner,
213
+ dataDebitUser.loginInfo -> dataDebitUser,
214
+ dataCreditUser.loginInfo -> dataCreditUser
215
+ ),
196
216
hatServer
197
217
)
198
218
@@ -204,6 +224,128 @@ mO9kGhALaD5okBcI/VuAQiFvBXdK0ii/nVcBApXEu47PG4oYUgPI
204
224
" evolutions/hat-database-schema/14_newHat.sql"
205
225
)
206
226
227
+ // Application
228
+ val kindAuth : ApplicationKind .Kind = ApplicationKind .App (
229
+ url = " https://itunes.apple.com/gb/app/notables/id1338778866?mt=8" ,
230
+ iosUrl = Some (" https://itunes.apple.com/gb/app/notables/id1338778866?mt=8" ),
231
+ androidUrl = None
232
+ )
233
+
234
+ val descriptionAuth : FormattedText = FormattedText (
235
+ text = " " ,
236
+ markdown = None ,
237
+ html = None
238
+ )
239
+
240
+ val dataPreviewAuth : Seq [DataFeedItem ] = List .empty
241
+
242
+ val graphicsAuth : ApplicationGraphics = ApplicationGraphics (
243
+ banner = Drawable (normal = " " , small = None , large = None , xlarge = None ),
244
+ logo = Drawable (
245
+ normal = " " ,
246
+ small = None ,
247
+ large = None ,
248
+ xlarge = None
249
+ ),
250
+ screenshots = List (
251
+ Drawable (
252
+ normal = " " ,
253
+ large = None ,
254
+ small = None ,
255
+ xlarge = None
256
+ ),
257
+ Drawable (
258
+ normal = " " ,
259
+ large = None ,
260
+ small = None ,
261
+ xlarge = None
262
+ ),
263
+ Drawable (
264
+ normal = " " ,
265
+ large = None ,
266
+ small = None ,
267
+ xlarge = None
268
+ )
269
+ )
270
+ )
271
+
272
+ val appInfoAuth : ApplicationInfo = ApplicationInfo (
273
+ version = Version (1 , 0 , 0 ),
274
+ updateNotes = None ,
275
+ published = true ,
276
+ name = " Notables" ,
277
+ headline = " All your words" ,
278
+ description = descriptionAuth,
279
+ hmiDescription = None ,
280
+ termsUrl = " https://example.com/terms" ,
281
+ privacyPolicyUrl = None ,
282
+ dataUsePurpose = " Data Will be processed by Notables for the following purpose..." ,
283
+ supportContact
= " [email protected] " ,
284
+ rating = None ,
285
+ dataPreview = dataPreviewAuth,
286
+ graphics = graphicsAuth,
287
+ primaryColor = None ,
288
+ callbackUrl = None
289
+ )
290
+
291
+ val developerAuth : ApplicationDeveloper = ApplicationDeveloper (
292
+ id = " dex" ,
293
+ name = " HATDeX" ,
294
+ url = " https://hatdex.org" ,
295
+ country = Some (" United Kingdom" ),
296
+ logo = Some (
297
+ Drawable (
298
+ normal =
299
+ " https://s3-eu-west-1.amazonaws.com/hubofallthings-com-dexservi-dexpublicassetsbucket-kex8hb7fsdge/notablesapp/0x0ss.png" ,
300
+ small = None ,
301
+ large = None ,
302
+ xlarge = None
303
+ )
304
+ )
305
+ )
306
+
307
+ val permissionsAuth : ApplicationPermissions = ApplicationPermissions (
308
+ rolesGranted = List (
309
+ UserRole .userRoleDeserialize(" namespacewrite" , Some (" rumpel" )),
310
+ UserRole .userRoleDeserialize(" namespaceread" , Some (" rumpel" )),
311
+ UserRole .userRoleDeserialize(" datadebit" , Some (" app-notables" ))
312
+ ),
313
+ dataRetrieved = None ,
314
+ dataRequired = None
315
+ )
316
+
317
+ val setupAuth : ApplicationSetup .External = ApplicationSetup .External (
318
+ url = None ,
319
+ iosUrl = None ,
320
+ androidUrl = None ,
321
+ testingUrl = None ,
322
+ validRedirectUris = List (" https://api.onezero-me.com/" ),
323
+ deauthorizeCallbackUrl = None ,
324
+ onboarding = None ,
325
+ preferences = None ,
326
+ dependencies = None
327
+ )
328
+
329
+ val appStatusAuth : ApplicationStatus .Internal = ApplicationStatus .Internal (
330
+ compatibility = Version (1 , 0 , 0 ),
331
+ dataPreviewEndpoint = None ,
332
+ staticDataPreviewEndpoint = None ,
333
+ recentDataCheckEndpoint = Some (" /rumpel/notablesv1" ),
334
+ versionReleaseDate = DateTime .parse(" 2018-07-24T12:00:00" )
335
+ )
336
+
337
+ val notablesAppAuth : Application =
338
+ Application (
339
+ id = " notablesAuth" ,
340
+ kind = kindAuth,
341
+ info = appInfoAuth,
342
+ developer = developerAuth,
343
+ permissions = permissionsAuth,
344
+ dependencies = None ,
345
+ setup = setupAuth,
346
+ status = appStatusAuth
347
+ )
348
+
207
349
def databaseReady (): Future [Unit ] = {
208
350
val schemaMigration = new HatDbSchemaMigration (application.configuration, db, global)
209
351
schemaMigration
@@ -253,10 +395,10 @@ mO9kGhALaD5okBcI/VuAQiFvBXdK0ii/nVcBApXEu47PG4oYUgPI
253
395
254
396
class EmptyAppProviderModule extends ScalaModule {
255
397
override def configure (): Unit =
256
- bind[TrustedApplicationProvider ].toInstance(new TestApplicationProvider (Seq ()))
398
+ bind[TrustedApplicationProvider ].toInstance(new TestApplicationProvider (Seq (notablesAppAuth )))
257
399
}
258
400
259
- lazy val application : Application =
401
+ lazy val application : PlayApplication =
260
402
new GuiceApplicationBuilder ()
261
403
.configure(conf)
262
404
.overrides(new IntegrationSpecModule )
0 commit comments