public void TestStats_ShouldCallFactoryCreateNutritionStatsViewModel(string userId) { // Arrange var model = new NutritionStatsViewModel(); var mockedFactory = new Mock <IViewModelFactory>(); mockedFactory.Setup(f => f.CreateNutritionStatsViewModel(It.IsAny <IEnumerable <Nutrition> >())).Returns(model); var mockedDateTimeProvider = new Mock <IDateTimeProvider>(); var nutritions = new List <Nutrition> { new Nutrition(), new Nutrition() }; var mockedNutritionService = new Mock <INutritionService>(); mockedNutritionService.Setup(s => s.GetUserNutritionsSortedByDate(It.IsAny <string>())).Returns(nutritions); 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.Stats(null); // Assert mockedFactory.Verify(f => f.CreateNutritionStatsViewModel(nutritions), Times.Once); }
public void TestStats_NoIdProvidedAndIsAuthenticated_ShouldSetModelCanDeleteToTrue() { // Arrange var model = new NutritionStatsViewModel(); var mockedFactory = new Mock <IViewModelFactory>(); mockedFactory.Setup(f => f.CreateNutritionStatsViewModel(It.IsAny <IEnumerable <Nutrition> >())).Returns(model); var mockedDateTimeProvider = new Mock <IDateTimeProvider>(); var mockedNutritionService = new Mock <INutritionService>(); var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>(); mockedAuthenticationProvider.Setup(p => p.IsAuthenticated).Returns(true); var controller = new NutritionController(mockedFactory.Object, mockedDateTimeProvider.Object, mockedNutritionService.Object, mockedAuthenticationProvider.Object); // Act controller.Stats(null); // Assert Assert.IsTrue(model.CanDelete); }
public void TestStats_WithId_ShouldNotCallAuthenticationProviderCurrentUserId(string userId) { // Arrange var model = new NutritionStatsViewModel(); var mockedFactory = new Mock <IViewModelFactory>(); mockedFactory.Setup(f => f.CreateNutritionStatsViewModel(It.IsAny <IEnumerable <Nutrition> >())).Returns(model); 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); // Act controller.Stats(userId); // Assert mockedAuthenticationProvider.Verify(p => p.CurrentUserId, Times.Never); }
public void TestStats_NoIdProvided_ShouldCallAuthenticationIsAuthenticated() { // Arrange var model = new NutritionStatsViewModel(); var mockedFactory = new Mock <IViewModelFactory>(); mockedFactory.Setup(f => f.CreateNutritionStatsViewModel(It.IsAny <IEnumerable <Nutrition> >())).Returns(model); 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); // Act controller.Stats(null); // Assert mockedAuthenticationProvider.Verify(p => p.IsAuthenticated, Times.Once); }