@@ -365,6 +365,179 @@ public void ChangeActivityStatus_Success()
365365 commands . Verify ( x => x . ChangeActivityStatusCommand ( dto . StatusId , dto . ActivityId ) , Times . Once ) ;
366366 }
367367
368+ [ Fact ]
369+ public void GetFavouriteActivitiesByUser_Success ( )
370+ {
371+ // Arrange
372+ int userId = 1 ;
373+ int editionId = 2 ;
374+ Mock < IActivityCommands > commands = new ( ) ;
375+ Mock < IActivityQueries > queries = new ( ) ;
376+ List < ActivityDto > dto = new ( )
377+ {
378+ new ActivityDto ( )
379+ } ;
380+
381+ queries . Setup ( x => x . FavouriteActivitiesByUserQuery ( userId , editionId ) )
382+ . Returns ( dto ) ;
383+
384+ ActivityController target = new ( commands . Object , queries . Object ) ;
385+
386+ // Act
387+ IActionResult result = target . GetFavouriteActivitiesByUser ( userId , editionId ) ;
388+
389+ // Assert
390+ var resultAsObjResult = result as ObjectResult ;
391+
392+ result . Should ( ) . NotBeNull ( ) ;
393+ resultAsObjResult . StatusCode . Should ( ) . Be ( StatusCodes . Status200OK ) ;
394+
395+ queries . Verify ( x => x . FavouriteActivitiesByUserQuery ( userId , editionId ) , Times . Once ) ;
396+ }
397+
398+ [ Fact ]
399+ public void GetFavouriteActivitiesByUser_EmptyResult_Success ( )
400+ {
401+ // Arrange
402+ int userId = 1 ;
403+ int editionId = 2 ;
404+ Mock < IActivityCommands > commands = new ( ) ;
405+ Mock < IActivityQueries > queries = new ( ) ;
406+ List < ActivityDto > dto = new ( ) ;
407+
408+ queries . Setup ( x => x . FavouriteActivitiesByUserQuery ( userId , editionId ) )
409+ . Returns ( dto ) ;
410+
411+ ActivityController target = new ( commands . Object , queries . Object ) ;
412+
413+ // Act
414+ IActionResult result = target . GetFavouriteActivitiesByUser ( userId , editionId ) ;
415+
416+ // Assert
417+ var resultAsObjResult = result as StatusCodeResult ;
418+
419+ result . Should ( ) . NotBeNull ( ) ;
420+ resultAsObjResult . StatusCode . Should ( ) . Be ( StatusCodes . Status204NoContent ) ;
421+
422+ queries . Verify ( x => x . FavouriteActivitiesByUserQuery ( userId , editionId ) , Times . Once ) ;
423+ }
424+
425+ [ Fact ]
426+ public void AddFavouriteActivity_Success ( )
427+ {
428+ // Arrange
429+ Mock < IActivityCommands > commands = new ( ) ;
430+ Mock < IActivityQueries > queries = new ( ) ;
431+ ActivityEnrollmentRequest request = new ( )
432+ {
433+ ActivityId = 1 ,
434+ UserId = 1
435+ } ;
436+
437+ commands . Setup ( x => x . AddFavouriteActivityCommand ( request ) )
438+ . Returns ( true ) ;
439+
440+ ActivityController target = new ( commands . Object , queries . Object ) ;
441+
442+ // Act
443+ IActionResult result = target . AddFavouriteActivity ( request ) ;
444+
445+ // Assert
446+ var resultAsObjResult = result as ObjectResult ;
447+
448+ result . Should ( ) . NotBeNull ( ) ;
449+ resultAsObjResult . StatusCode . Should ( ) . Be ( StatusCodes . Status200OK ) ;
450+
451+ commands . Verify ( x => x . AddFavouriteActivityCommand ( request ) , Times . Once ) ;
452+ }
453+
454+ [ Fact ]
455+ public void AddFavouriteActivity_Fail_Success ( )
456+ {
457+ // Arrange
458+ Mock < IActivityCommands > commands = new ( ) ;
459+ Mock < IActivityQueries > queries = new ( ) ;
460+ ActivityEnrollmentRequest request = new ( )
461+ {
462+ ActivityId = 1 ,
463+ UserId = 1
464+ } ;
465+
466+ commands . Setup ( x => x . AddFavouriteActivityCommand ( request ) )
467+ . Returns ( false ) ;
468+
469+ ActivityController target = new ( commands . Object , queries . Object ) ;
470+
471+ // Act
472+ IActionResult result = target . AddFavouriteActivity ( request ) ;
473+
474+ // Assert
475+ var resultAsObjResult = result as ObjectResult ;
476+
477+ result . Should ( ) . NotBeNull ( ) ;
478+ resultAsObjResult . StatusCode . Should ( ) . Be ( StatusCodes . Status400BadRequest ) ;
479+
480+ commands . Verify ( x => x . AddFavouriteActivityCommand ( request ) , Times . Once ) ;
481+ }
482+
483+ [ Fact ]
484+ public void RemoveFavouriteActivity_Success ( )
485+ {
486+ // Arrange
487+ Mock < IActivityCommands > commands = new ( ) ;
488+ Mock < IActivityQueries > queries = new ( ) ;
489+ ActivityEnrollmentRequest request = new ( )
490+ {
491+ ActivityId = 1 ,
492+ UserId = 1
493+ } ;
494+
495+ commands . Setup ( x => x . RemoveFavouriteActivityCommand ( request ) )
496+ . Returns ( true ) ;
497+
498+ ActivityController target = new ( commands . Object , queries . Object ) ;
499+
500+ // Act
501+ IActionResult result = target . RemoveFavouriteActivity ( request ) ;
502+
503+ // Assert
504+ var resultAsObjResult = result as ObjectResult ;
505+
506+ result . Should ( ) . NotBeNull ( ) ;
507+ resultAsObjResult . StatusCode . Should ( ) . Be ( StatusCodes . Status200OK ) ;
508+
509+ commands . Verify ( x => x . RemoveFavouriteActivityCommand ( request ) , Times . Once ) ;
510+ }
511+
512+ [ Fact ]
513+ public void RemoveFavouriteActivity_Fail_Success ( )
514+ {
515+ // Arrange
516+ Mock < IActivityCommands > commands = new ( ) ;
517+ Mock < IActivityQueries > queries = new ( ) ;
518+ ActivityEnrollmentRequest request = new ( )
519+ {
520+ ActivityId = 1 ,
521+ UserId = 1
522+ } ;
523+
524+ commands . Setup ( x => x . RemoveFavouriteActivityCommand ( request ) )
525+ . Returns ( false ) ;
526+
527+ ActivityController target = new ( commands . Object , queries . Object ) ;
528+
529+ // Act
530+ IActionResult result = target . RemoveFavouriteActivity ( request ) ;
531+
532+ // Assert
533+ var resultAsObjResult = result as ObjectResult ;
534+
535+ result . Should ( ) . NotBeNull ( ) ;
536+ resultAsObjResult . StatusCode . Should ( ) . Be ( StatusCodes . Status400BadRequest ) ;
537+
538+ commands . Verify ( x => x . RemoveFavouriteActivityCommand ( request ) , Times . Once ) ;
539+ }
540+
368541 [ Fact ]
369542 public void GetActivitiesFiltered_Success ( )
370543 {
0 commit comments