@@ -228,7 +228,9 @@ mod handlers {
228
228
#[ cfg( test) ]
229
229
mod tests {
230
230
use crate :: http_server:: SERVER_BASE_PATH ;
231
- use mithril_common:: entities:: SignedEntityType ;
231
+ use crate :: signed_entity_service:: MockSignedEntityService ;
232
+ use mithril_common:: entities:: { Beacon , SignedEntity , SignedEntityType } ;
233
+ use mithril_common:: signable_builder:: Artifact ;
232
234
use mithril_common:: sqlite:: HydrationError ;
233
235
use mithril_common:: test_utils:: apispec:: APISpec ;
234
236
use mithril_common:: test_utils:: fake_data;
@@ -239,7 +241,6 @@ mod tests {
239
241
use warp:: test:: request;
240
242
241
243
use super :: * ;
242
- use crate :: database:: provider:: MockSignedEntityStorer ;
243
244
244
245
fn setup_router (
245
246
dependency_manager : Arc < DependencyManager > ,
@@ -254,19 +255,39 @@ mod tests {
254
255
. and ( routes ( dependency_manager) . with ( cors) )
255
256
}
256
257
258
+ pub fn create_signed_entities < T > (
259
+ signed_entity_type : SignedEntityType ,
260
+ records : Vec < T > ,
261
+ ) -> Vec < SignedEntity < T > >
262
+ where
263
+ T : Artifact ,
264
+ {
265
+ records
266
+ . into_iter ( )
267
+ . enumerate ( )
268
+ . map ( |( idx, record) | SignedEntity {
269
+ signed_entity_id : format ! ( "{idx}" ) ,
270
+ signed_entity_type : signed_entity_type. to_owned ( ) ,
271
+ certificate_id : format ! ( "certificate-{idx}" ) ,
272
+ artifact : record,
273
+ created_at : "2023-01-19T13:43:05.618857482Z" . to_string ( ) ,
274
+ } )
275
+ . collect ( )
276
+ }
277
+
257
278
#[ tokio:: test]
258
279
async fn test_snapshots_get_ok ( ) {
259
- let signed_entity_records = shared :: tests :: create_signed_entity_records (
280
+ let signed_entities = create_signed_entities (
260
281
SignedEntityType :: CardanoImmutableFilesFull ( Beacon :: default ( ) ) ,
261
282
fake_data:: snapshots ( 5 ) ,
262
283
) ;
263
- let mut mock_signed_entity_storer = MockSignedEntityStorer :: new ( ) ;
264
- mock_signed_entity_storer
265
- . expect_get_last_signed_entities_by_type ( )
266
- . return_once ( |_, _ | Ok ( signed_entity_records ) )
284
+ let mut mock_signed_entity_service = MockSignedEntityService :: new ( ) ;
285
+ mock_signed_entity_service
286
+ . expect_get_last_signed_snapshots ( )
287
+ . return_once ( |_| Ok ( signed_entities ) )
267
288
. once ( ) ;
268
289
let mut dependency_manager = initialize_dependencies ( ) . await ;
269
- dependency_manager. signed_entity_storer = Arc :: new ( mock_signed_entity_storer ) ;
290
+ dependency_manager. signed_entity_service = Arc :: new ( mock_signed_entity_service ) ;
270
291
271
292
let method = Method :: GET . as_str ( ) ;
272
293
let path = "/artifact/snapshots" ;
@@ -289,13 +310,13 @@ mod tests {
289
310
290
311
#[ tokio:: test]
291
312
async fn test_snapshots_get_ko ( ) {
292
- let mut mock_signed_entity_storer = MockSignedEntityStorer :: new ( ) ;
293
- mock_signed_entity_storer
294
- . expect_get_last_signed_entities_by_type ( )
295
- . return_once ( |_, _ | Err ( HydrationError :: InvalidData ( "invalid data" . to_string ( ) ) . into ( ) ) )
313
+ let mut mock_signed_entity_service = MockSignedEntityService :: new ( ) ;
314
+ mock_signed_entity_service
315
+ . expect_get_last_signed_snapshots ( )
316
+ . return_once ( |_| Err ( HydrationError :: InvalidData ( "invalid data" . to_string ( ) ) . into ( ) ) )
296
317
. once ( ) ;
297
318
let mut dependency_manager = initialize_dependencies ( ) . await ;
298
- dependency_manager. signed_entity_storer = Arc :: new ( mock_signed_entity_storer ) ;
319
+ dependency_manager. signed_entity_service = Arc :: new ( mock_signed_entity_service ) ;
299
320
300
321
let method = Method :: GET . as_str ( ) ;
301
322
let path = "/artifact/snapshots" ;
@@ -318,20 +339,20 @@ mod tests {
318
339
319
340
#[ tokio:: test]
320
341
async fn test_snapshot_digest_get_ok ( ) {
321
- let signed_entity_record = shared :: tests :: create_signed_entity_records (
342
+ let signed_entity = create_signed_entities (
322
343
SignedEntityType :: CardanoImmutableFilesFull ( Beacon :: default ( ) ) ,
323
344
fake_data:: snapshots ( 1 ) ,
324
345
)
325
346
. first ( )
326
347
. unwrap ( )
327
348
. to_owned ( ) ;
328
- let mut mock_signed_entity_storer = MockSignedEntityStorer :: new ( ) ;
329
- mock_signed_entity_storer
330
- . expect_get_signed_entity ( )
331
- . return_once ( |_| Ok ( Some ( signed_entity_record ) ) )
349
+ let mut mock_signed_entity_service = MockSignedEntityService :: new ( ) ;
350
+ mock_signed_entity_service
351
+ . expect_get_signed_snapshot_by_id ( )
352
+ . return_once ( |_| Ok ( Some ( signed_entity ) ) )
332
353
. once ( ) ;
333
354
let mut dependency_manager = initialize_dependencies ( ) . await ;
334
- dependency_manager. signed_entity_storer = Arc :: new ( mock_signed_entity_storer ) ;
355
+ dependency_manager. signed_entity_service = Arc :: new ( mock_signed_entity_service ) ;
335
356
336
357
let method = Method :: GET . as_str ( ) ;
337
358
let path = "/artifact/snapshot/{digest}" ;
@@ -354,13 +375,13 @@ mod tests {
354
375
355
376
#[ tokio:: test]
356
377
async fn test_snapshot_digest_get_ok_nosnapshot ( ) {
357
- let mut mock_signed_entity_storer = MockSignedEntityStorer :: new ( ) ;
358
- mock_signed_entity_storer
359
- . expect_get_signed_entity ( )
378
+ let mut mock_signed_entity_service = MockSignedEntityService :: new ( ) ;
379
+ mock_signed_entity_service
380
+ . expect_get_signed_snapshot_by_id ( )
360
381
. return_once ( |_| Ok ( None ) )
361
382
. once ( ) ;
362
383
let mut dependency_manager = initialize_dependencies ( ) . await ;
363
- dependency_manager. signed_entity_storer = Arc :: new ( mock_signed_entity_storer ) ;
384
+ dependency_manager. signed_entity_service = Arc :: new ( mock_signed_entity_service ) ;
364
385
365
386
let method = Method :: GET . as_str ( ) ;
366
387
let path = "/artifact/snapshot/{digest}" ;
@@ -383,13 +404,13 @@ mod tests {
383
404
384
405
#[ tokio:: test]
385
406
async fn test_snapshot_digest_get_ko ( ) {
386
- let mut mock_signed_entity_storer = MockSignedEntityStorer :: new ( ) ;
387
- mock_signed_entity_storer
388
- . expect_get_signed_entity ( )
407
+ let mut mock_signed_entity_service = MockSignedEntityService :: new ( ) ;
408
+ mock_signed_entity_service
409
+ . expect_get_signed_snapshot_by_id ( )
389
410
. return_once ( |_| Err ( HydrationError :: InvalidData ( "invalid data" . to_string ( ) ) . into ( ) ) )
390
411
. once ( ) ;
391
412
let mut dependency_manager = initialize_dependencies ( ) . await ;
392
- dependency_manager. signed_entity_storer = Arc :: new ( mock_signed_entity_storer ) ;
413
+ dependency_manager. signed_entity_service = Arc :: new ( mock_signed_entity_service ) ;
393
414
394
415
let method = Method :: GET . as_str ( ) ;
395
416
let path = "/artifact/snapshot/{digest}" ;
@@ -412,20 +433,20 @@ mod tests {
412
433
413
434
#[ tokio:: test]
414
435
async fn test_snapshot_download_get_ok ( ) {
415
- let signed_entity_record = shared :: tests :: create_signed_entity_records (
436
+ let signed_entity = create_signed_entities (
416
437
SignedEntityType :: CardanoImmutableFilesFull ( Beacon :: default ( ) ) ,
417
438
fake_data:: snapshots ( 1 ) ,
418
439
)
419
440
. first ( )
420
441
. unwrap ( )
421
442
. to_owned ( ) ;
422
- let mut mock_signed_entity_storer = MockSignedEntityStorer :: new ( ) ;
423
- mock_signed_entity_storer
424
- . expect_get_signed_entity ( )
425
- . return_once ( |_| Ok ( Some ( signed_entity_record ) ) )
443
+ let mut mock_signed_entity_service = MockSignedEntityService :: new ( ) ;
444
+ mock_signed_entity_service
445
+ . expect_get_signed_snapshot_by_id ( )
446
+ . return_once ( |_| Ok ( Some ( signed_entity ) ) )
426
447
. once ( ) ;
427
448
let mut dependency_manager = initialize_dependencies ( ) . await ;
428
- dependency_manager. signed_entity_storer = Arc :: new ( mock_signed_entity_storer ) ;
449
+ dependency_manager. signed_entity_service = Arc :: new ( mock_signed_entity_service ) ;
429
450
430
451
let method = Method :: GET . as_str ( ) ;
431
452
let path = "/artifact/snapshot/{digest}/download" ;
@@ -448,13 +469,13 @@ mod tests {
448
469
449
470
#[ tokio:: test]
450
471
async fn test_snapshot_download_get_ok_nosnapshot ( ) {
451
- let mut mock_signed_entity_storer = MockSignedEntityStorer :: new ( ) ;
452
- mock_signed_entity_storer
453
- . expect_get_signed_entity ( )
472
+ let mut mock_signed_entity_service = MockSignedEntityService :: new ( ) ;
473
+ mock_signed_entity_service
474
+ . expect_get_signed_snapshot_by_id ( )
454
475
. return_once ( |_| Ok ( None ) )
455
476
. once ( ) ;
456
477
let mut dependency_manager = initialize_dependencies ( ) . await ;
457
- dependency_manager. signed_entity_storer = Arc :: new ( mock_signed_entity_storer ) ;
478
+ dependency_manager. signed_entity_service = Arc :: new ( mock_signed_entity_service ) ;
458
479
459
480
let method = Method :: GET . as_str ( ) ;
460
481
let path = "/artifact/snapshot/{digest}/download" ;
@@ -477,13 +498,13 @@ mod tests {
477
498
478
499
#[ tokio:: test]
479
500
async fn test_snapshot_download_get_ko ( ) {
480
- let mut mock_signed_entity_storer = MockSignedEntityStorer :: new ( ) ;
481
- mock_signed_entity_storer
482
- . expect_get_signed_entity ( )
501
+ let mut mock_signed_entity_service = MockSignedEntityService :: new ( ) ;
502
+ mock_signed_entity_service
503
+ . expect_get_signed_snapshot_by_id ( )
483
504
. return_once ( |_| Err ( HydrationError :: InvalidData ( "invalid data" . to_string ( ) ) . into ( ) ) )
484
505
. once ( ) ;
485
506
let mut dependency_manager = initialize_dependencies ( ) . await ;
486
- dependency_manager. signed_entity_storer = Arc :: new ( mock_signed_entity_storer ) ;
507
+ dependency_manager. signed_entity_service = Arc :: new ( mock_signed_entity_service ) ;
487
508
488
509
let method = Method :: GET . as_str ( ) ;
489
510
let path = "/artifact/snapshot/{digest}/download" ;
0 commit comments