public void AddFavoriteMission_Validation_Test(int id, bool exists, int expected) { //Arrange User dbUser = new User { UserId = 1, UserName = "******", Password = "******", EMail = "*****@*****.**" }; Mock <IUserRepository> userRepoMock = new Mock <IUserRepository>(); userRepoMock.Setup(u => u.GetById(It.IsAny <int>())).Returns(dbUser); Mock <IMissionRepository> missionRepoMock = new Mock <IMissionRepository>(); missionRepoMock.Setup(r => r.Exists(It.IsAny <int>())).Returns(exists); Mock <IFavoriteMissionRepository> favoriteMissionRepoMock = new Mock <IFavoriteMissionRepository>(); favoriteMissionRepoMock.Setup(r => r.Insert(It.IsAny <FavoriteMission>())); favoriteMissionRepoMock.Setup(r => r.Update(It.IsAny <FavoriteMission>())); favoriteMissionRepoMock.Setup(r => r.Save()); Mock <IUnitOfWork> mockUOF = new Mock <IUnitOfWork>(); mockUOF.Setup(uow => uow.UserRepository).Returns(userRepoMock.Object); mockUOF.Setup(uow => uow.MissionRepository).Returns(missionRepoMock.Object); mockUOF.Setup(uow => uow.FavoriteMissionRepository).Returns(favoriteMissionRepoMock.Object); var controller = new MissionController(mockUOF.Object, httpContextAccessorMock); //Act var result = controller.AddFavoriteMission(id); //Assert Assert.IsType <ActionResult <HttpResponse> >(result); if (expected == StatusCodes.Status400BadRequest) { Assert.Equal(expected, (result.Result as ObjectResult).StatusCode); } else { Assert.Equal(expected, (result.Result as StatusCodeResult).StatusCode); } }