public void TestSave_ModelStateIsNotValid_ShouldNotCallAuthenticationProviderCurrentUserId(int calories, int protein, int carbs, int fats, double water, int fiber, int sugar, string notes, string userId) { // Arrange, var date = new DateTime(2, 3, 4); var model = new NutritionViewModel { Date = date, Calories = calories, Protein = protein, Carbs = carbs, Fats = fats, WaterInLitres = water, Fiber = fiber, Sugar = sugar, Notes = notes }; var mockedFactory = new Mock <IViewModelFactory>(); var mockedDateTimeProvider = new Mock <IDateTimeProvider>(); var mockedNutritionService = new Mock <INutritionService>(); var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>(); var controller = new NutritionController(mockedFactory.Object, mockedDateTimeProvider.Object, mockedNutritionService.Object, mockedAuthenticationProvider.Object); controller.ModelState.AddModelError("", ""); // Act controller.Save(model); // Assert mockedAuthenticationProvider.Verify(p => p.CurrentUserId, Times.Never); }
public void TestSave_ModelIdHasValue_ShouldRenderCorrectPartialViewWithModel(int id, int calories, int protein, int carbs, int fats, double water, int fiber, int sugar, string notes, string userId) { // Arrange, var date = new DateTime(2, 3, 4); var model = new NutritionViewModel { Date = date, Calories = calories, Protein = protein, Carbs = carbs, Fats = fats, WaterInLitres = water, Fiber = fiber, Sugar = sugar, Notes = notes, Id = id }; var mockedFactory = new Mock <IViewModelFactory>(); mockedFactory.Setup(f => f.CreateNutritionViewModel(It.IsAny <Nutrition>(), It.IsAny <DateTime>())) .Returns(model); var mockedDateTimeProvider = new Mock <IDateTimeProvider>(); var nutrition = new Nutrition(); var mockedNutritionService = new Mock <INutritionService>(); mockedNutritionService.Setup(s => s.EditNutrition(It.IsAny <string>(), It.IsAny <DateTime>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <double>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>())) .Returns(nutrition); var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>(); mockedAuthenticationProvider.Setup(p => p.CurrentUserId).Returns(userId); var controller = new NutritionController(mockedFactory.Object, mockedDateTimeProvider.Object, mockedNutritionService.Object, mockedAuthenticationProvider.Object); // Act var result = controller.Save(model) as PartialViewResult; // Assert controller .WithCallTo(c => c.Save(model)) .ShouldRenderPartialView("Load") .WithModel <NutritionViewModel>(m => Assert.AreSame(model, m)); }
public void TestSave_ModelIdHasValue_ShouldCallFactoryCreateNutritionViewModelWithResultFromService(int id, int calories, int protein, int carbs, int fats, double water, int fiber, int sugar, string notes, string userId) { // Arrange, var date = new DateTime(2, 3, 4); var model = new NutritionViewModel { Date = date, Calories = calories, Protein = protein, Carbs = carbs, Fats = fats, WaterInLitres = water, Fiber = fiber, Sugar = sugar, Notes = notes, Id = id }; var mockedFactory = new Mock <IViewModelFactory>(); mockedFactory.Setup(f => f.CreateNutritionViewModel(It.IsAny <Nutrition>(), It.IsAny <DateTime>())) .Returns(model); var mockedDateTimeProvider = new Mock <IDateTimeProvider>(); var nutrition = new Nutrition(); var mockedNutritionService = new Mock <INutritionService>(); mockedNutritionService.Setup(s => s.EditNutrition(It.IsAny <string>(), It.IsAny <DateTime>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <double>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>())) .Returns(nutrition); var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>(); mockedAuthenticationProvider.Setup(p => p.CurrentUserId).Returns(userId); var controller = new NutritionController(mockedFactory.Object, mockedDateTimeProvider.Object, mockedNutritionService.Object, mockedAuthenticationProvider.Object); // Act controller.Save(model); // Assert mockedFactory.Verify(f => f.CreateNutritionViewModel(nutrition, date), Times.Once); }
public void TestSave_ModelIdDoesNotHaveValue_ShouldSetModelSaveResult(int calories, int protein, int carbs, int fats, double water, int fiber, int sugar, string notes, string userId) { // Arrange, var date = new DateTime(2, 3, 4); var model = new NutritionViewModel { Date = date, Calories = calories, Protein = protein, Carbs = carbs, Fats = fats, WaterInLitres = water, Fiber = fiber, Sugar = sugar, Notes = notes }; var mockedFactory = new Mock <IViewModelFactory>(); mockedFactory.Setup(f => f.CreateNutritionViewModel(It.IsAny <Nutrition>(), It.IsAny <DateTime>())) .Returns(model); var mockedDateTimeProvider = new Mock <IDateTimeProvider>(); var nutrition = new Nutrition(); var mockedNutritionService = new Mock <INutritionService>(); mockedNutritionService.Setup(s => s.CreateNutrition(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <double>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <DateTime>())) .Returns(nutrition); var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>(); mockedAuthenticationProvider.Setup(p => p.CurrentUserId).Returns(userId); var controller = new NutritionController(mockedFactory.Object, mockedDateTimeProvider.Object, mockedNutritionService.Object, mockedAuthenticationProvider.Object); // Act var result = controller.Save(model) as PartialViewResult; // Assert Assert.AreEqual(Constants.SavedSuccessfully, ((NutritionViewModel)result.Model).SaveResult); }
public void TestSave_ModelIdDoesNotHaveValue_ShouldCallServiceCreateNutrition(int calories, int protein, int carbs, int fats, double water, int fiber, int sugar, string notes, string userId) { // Arrange, var date = new DateTime(2, 3, 4); var model = new NutritionViewModel { Date = date, Calories = calories, Protein = protein, Carbs = carbs, Fats = fats, WaterInLitres = water, Fiber = fiber, Sugar = sugar, Notes = notes }; var mockedFactory = new Mock <IViewModelFactory>(); mockedFactory.Setup(f => f.CreateNutritionViewModel(It.IsAny <Nutrition>(), It.IsAny <DateTime>())) .Returns(model); var mockedDateTimeProvider = new Mock <IDateTimeProvider>(); var mockedNutritionService = new Mock <INutritionService>(); var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>(); mockedAuthenticationProvider.Setup(p => p.CurrentUserId).Returns(userId); var controller = new NutritionController(mockedFactory.Object, mockedDateTimeProvider.Object, mockedNutritionService.Object, mockedAuthenticationProvider.Object); // Act controller.Save(model); // Assert mockedNutritionService.Verify(s => s.CreateNutrition(calories, protein, carbs, fats, water, fiber, sugar, notes, userId, date), Times.Once); }
public void TestSave_ModelStateIsNotValid_ShouldRenderCorrectPartialViewWithModel(int calories, int protein, int carbs, int fats, double water, int fiber, int sugar, string notes, string userId) { // Arrange, var date = new DateTime(2, 3, 4); var model = new NutritionViewModel { Date = date, Calories = calories, Protein = protein, Carbs = carbs, Fats = fats, WaterInLitres = water, Fiber = fiber, Sugar = sugar, Notes = notes }; var mockedFactory = new Mock <IViewModelFactory>(); var mockedDateTimeProvider = new Mock <IDateTimeProvider>(); var mockedNutritionService = new Mock <INutritionService>(); var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>(); var controller = new NutritionController(mockedFactory.Object, mockedDateTimeProvider.Object, mockedNutritionService.Object, mockedAuthenticationProvider.Object); controller.ModelState.AddModelError("", ""); // Act controller.Save(model); // Assert controller .WithCallTo(c => c.Save(model)) .ShouldRenderPartialView("Load") .WithModel <NutritionViewModel>(m => Assert.AreSame(model, m)); }