public async void Delete_WhenIdNotExists_ShouldReturnNotFound() { var mealService = new Mock <IMealService>(); var classUnderTest = new MealController(mealService.Object, _mapper); var id = Guid.NewGuid(); mealService.Setup(a => a.DeleteByIdAsync(It.Is <Guid>(g => g == id))) .ReturnsAsync(0); var result = await classUnderTest.Delete(id); Assert.IsType <NotFoundResult>(result); mealService.VerifyAll(); }
public void DeleteTest() { //always fails because There is a workout that depends on this Mealtype // Arrange MealController controller = new MealController(); // Act List <Meal> loadAll = controller.Get() as List <Meal>; //grab first result Meal m = loadAll[0]; int results = controller.Delete(m); Assert.IsTrue(results > 0); }
public void CannotDeleteSomeoneElseMeal() { // Arrange Mock <IMealRepository> mealMock = new Mock <IMealRepository>(); Mock <IStudentRepository> studentMock = new Mock <IStudentRepository>(); Student student = new Student() { Id = "101", FirstName = "Ginni", LastName = "Wassell" }; Meal meal = new Meal() { Id = 100, Title = "Compound - Strawberry", Description = " ", Price = 1.50, Date = DateTime.Now.AddDays(6), MaxGuests = 1, }; ClaimsPrincipal identity = new ClaimsPrincipal(new ClaimsIdentity(new Claim[] { new Claim(ClaimTypes.NameIdentifier, student.Id) })); meal.Cook = student; student.CookAtMeals.Add(meal); studentMock.Setup(s => s.Students).Returns(new List <Student>() { student }); mealMock.Setup(m => m.Meals).Returns(new List <Meal>() { meal }); mealMock.Setup(m => m.Delete(It.IsAny <int>())).Returns((int mealId) => { if (meal.Cook.Id == student.Id) { return(true); } return(false); }); MealController controller = new MealController(mealMock.Object, studentMock.Object) { ControllerContext = new ControllerContext() { HttpContext = new DefaultHttpContext() { User = identity } } }; // Act meal.Cook = new Student() { Id = "abc" }; ViewResult viewResult = controller.Delete(new MealButtonViewModel() { MealId = 100 }) as ViewResult; // Assert Assert.Equal("Error", viewResult?.ViewName); }
public void CannotDeleteMealWithGuests() { // Arrange Mock <IMealRepository> mealMock = new Mock <IMealRepository>(); Mock <IStudentRepository> studentMock = new Mock <IStudentRepository>(); Student student = new Student() { FirstName = "Ginni", LastName = "Wassell" }; Meal meal = new Meal() { Id = 100, Cook = student, Title = "Compound - Strawberry", Description = " ", Price = 1.50, Date = DateTime.Now.AddDays(6), MaxGuests = 1, }; student.CookAtMeals.Add(meal); mealMock.Setup(m => m.Meals).Returns(new List <Meal>() { meal }); mealMock.Setup(m => m.Join(It.IsAny <int>(), It.IsAny <string>())).Returns((int mealId, string user) => { if (meal.Guests.Count < meal.MaxGuests) { meal.Guests.Add(new Guest()); return(true); } return(false); }); mealMock.Setup(m => m.Delete(It.IsAny <int>())).Returns((int mealId) => { if (meal.Guests.Count == 0) { return(true); } return(false); }); MealController controller = new MealController(mealMock.Object, studentMock.Object); // Act RedirectResult redirectResult = controller.Delete(new MealButtonViewModel() { MealId = 100 }) as RedirectResult; controller.Join(new MealButtonViewModel() { MealId = 100 }); ViewResult viewResult = controller.Delete(new MealButtonViewModel() { MealId = 100 }) as ViewResult; // Assert Assert.Equal("Error", viewResult?.ViewName); }