Exemple #1
0
        public void TestDetails_ServiceReturnsUser_ShouldRenderCorrectViewWithModel(string username, string userId)
        {
            // Arrange
            var user = new User {
                Id = userId
            };

            var mockedService = new Mock <IUserService>();

            mockedService.Setup(s => s.GetUserByUsername(It.IsAny <string>())).Returns(user);

            var model = new UserIdViewModel();

            var mockedFactory = new Mock <IViewModelFactory>();

            mockedFactory.Setup(f => f.CreateUserIdViewModel(It.IsAny <string>())).Returns(model);

            var controller = new NutritionController(mockedService.Object, mockedFactory.Object);

            // Act, Assert
            controller
            .WithCallTo(c => c.Details(username))
            .ShouldRenderDefaultView()
            .WithModel <UserIdViewModel>(model);
        }
Exemple #2
0
        public void TestLoad_ShouldRenderCorrectViewWithModel()
        {
            // Arrange
            var viewModel = new NutritionViewModel();

            var mockedFactory = new Mock <IViewModelFactory>();

            mockedFactory.Setup(f => f.CreateNutritionViewModel(It.IsAny <Nutrition>(), It.IsAny <DateTime>()))
            .Returns(viewModel);

            var mockedDateTimeProvider       = new Mock <IDateTimeProvider>();
            var mockedNutritionService       = new Mock <INutritionService>();
            var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>();

            var date = new DateTime(2, 3, 4);

            var controller = new NutritionController(mockedFactory.Object, mockedDateTimeProvider.Object,
                                                     mockedNutritionService.Object, mockedAuthenticationProvider.Object);

            // Act, Assert
            controller
            .WithCallTo(c => c.Load(date))
            .ShouldRenderDefaultPartialView()
            .WithModel <NutritionViewModel>(m => Assert.AreSame(viewModel, m));
        }
Exemple #3
0
        public void TestInput_ShouldRenderCorrectViewWithModel()
        {
            // Arrange
            var model = new InputViewModel();

            var mockedFactory = new Mock <IViewModelFactory>();

            mockedFactory.Setup(f => f.CreateInputViewModel(It.IsAny <DateTime>())).Returns(model);

            var date = new DateTime();

            var mockedDateTimeProvider = new Mock <IDateTimeProvider>();

            mockedDateTimeProvider.Setup(p => p.GetCurrentTime()).Returns(date);

            var mockedNutritionService = new Mock <INutritionService>();

            var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>();

            var controller = new NutritionController(mockedFactory.Object, mockedDateTimeProvider.Object,
                                                     mockedNutritionService.Object, mockedAuthenticationProvider.Object);

            // Act, Assert
            controller
            .WithCallTo(c => c.Input())
            .ShouldRenderDefaultView()
            .WithModel <InputViewModel>(m => Assert.AreSame(model, m));
        }
Exemple #4
0
        public void TestStats_ShouldRenderDefaultViewWithCorrectModel(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>();

            mockedAuthenticationProvider.Setup(p => p.CurrentUserId).Returns(userId);

            var controller = new NutritionController(mockedFactory.Object, mockedDateTimeProvider.Object,
                                                     mockedNutritionService.Object, mockedAuthenticationProvider.Object);

            // Act, Assert
            controller
            .WithCallTo(c => c.Stats(null))
            .ShouldRenderDefaultPartialView()
            .WithModel <NutritionStatsViewModel>(m => Assert.AreSame(model, m));
        }
        public void TestGetNutrition_ServiceReturnsNutrition_ShouldRenderPartialViewWithModel(int id)
        {
            // Arrange
            var date = new DateTime(1, 2, 3);

            var nutrition = new Nutrition {
                Date = date
            };

            var model = new NutritionViewModel();

            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>();

            mockedNutritionService.Setup(s => s.GetById(It.IsAny <int>())).Returns(nutrition);

            var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>();

            var controller = new NutritionController(mockedFactory.Object, mockedDateTimeProvider.Object,
                                                     mockedNutritionService.Object, mockedAuthenticationProvider.Object);

            // Act, Assert
            controller
            .WithCallTo(c => c.GetNutrition(id))
            .ShouldRenderPartialView("NutritionDetails")
            .WithModel <NutritionViewModel>(model);
        }
Exemple #6
0
        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));
        }
Exemple #7
0
        public void TestIndex_ShouldRenderCorrectView()
        {
            // Arrange
            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);

            // Act, Assert
            controller
            .WithCallTo(c => c.Index())
            .ShouldRenderDefaultView();
        }
        public void TestGetNutrition_ServiceReturnsNull_ShouldRenderPartialViewWithModelNull(int id)
        {
            // Arrange
            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);

            // Act, Assert
            controller
            .WithCallTo(c => c.GetNutrition(id))
            .ShouldRenderPartialView("NutritionDetails");
        }
Exemple #9
0
        public void TestLoad_ModelStateIsNotValid_ShouldRenderDefaultPartialView()
        {
            // Arrange
            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, Assert
            controller
            .WithCallTo(c => c.Load(new DateTime()))
            .ShouldRenderDefaultPartialView();
        }
Exemple #10
0
        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));
        }