Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }