Пример #1
0
        public void TestLoad_ShouldRenderCorrectViewWithModel()
        {
            // Arrange
            var viewModel = new MeasurementViewModel();

            var mockedFactory = new Mock <IViewModelFactory>();

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

            var mockedDateTimeProvider       = new Mock <IDateTimeProvider>();
            var mockedMeasurementService     = new Mock <IMeasurementService>();
            var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>();

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

            var controller = new MeasurementController(mockedAuthenticationProvider.Object,
                                                       mockedMeasurementService.Object, mockedFactory.Object);

            // Act, Assert
            controller
            .WithCallTo(c => c.Load(date))
            .ShouldRenderDefaultPartialView()
            .WithModel <MeasurementViewModel>(m => Assert.AreSame(viewModel, m));
        }
Пример #2
0
        public void TestStats_ShouldRenderDefaultViewWithCorrectModel(string userId)
        {
            // Arrange
            var model = new MeasurementStatsViewModel();

            var mockedFactory = new Mock <IViewModelFactory>();

            mockedFactory.Setup(f => f.CreateMeasurementStatsViewModel(It.IsAny <IEnumerable <Measurement> >())).Returns(model);

            var mockedMeasurementService = new Mock <IMeasurementService>();

            var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>();

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

            var controller = new MeasurementController(mockedAuthenticationProvider.Object,
                                                       mockedMeasurementService.Object,
                                                       mockedFactory.Object);

            // Act, Assert
            controller
            .WithCallTo(c => c.Stats(null))
            .ShouldRenderDefaultPartialView()
            .WithModel <MeasurementStatsViewModel>(m => Assert.AreSame(model, m));
        }
Пример #3
0
        public void TestGetMeasurement_ServiceReturnsMeasurement_ShouldRenderPartialViewWithModel(int id)
        {
            // Arrange
            var date = new DateTime(1, 2, 3);

            var measurement = new Measurement {
                Date = date
            };

            var model = new MeasurementViewModel();

            var mockedFactory = new Mock <IViewModelFactory>();

            mockedFactory.Setup(f => f.CreateMeasurementViewModel(It.IsAny <Measurement>(), It.IsAny <DateTime>()))
            .Returns(model);

            var mockedDateTimeProvider = new Mock <IDateTimeProvider>();

            var mockedMeasurementService = new Mock <IMeasurementService>();

            mockedMeasurementService.Setup(s => s.GetById(It.IsAny <int>())).Returns(measurement);

            var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>();

            var controller = new MeasurementController(mockedAuthenticationProvider.Object,
                                                       mockedMeasurementService.Object, mockedFactory.Object);

            // Act, Assert
            controller
            .WithCallTo(c => c.GetMeasurement(id))
            .ShouldRenderPartialView("MeasurementDetails")
            .WithModel <MeasurementViewModel>(model);
        }
Пример #4
0
        public void TestSave_ModelStateIsNotValid_ShouldRenderCorrectPartialViewWithModel(int height,
                                                                                          double weightKg,
                                                                                          double bodyFatPercent,
                                                                                          int chest,
                                                                                          int shoulders,
                                                                                          int forearm,
                                                                                          int arm,
                                                                                          int waist,
                                                                                          int hips,
                                                                                          int thighs,
                                                                                          int calves,
                                                                                          int neck,
                                                                                          int wrist,
                                                                                          int ankle,
                                                                                          string userId)
        {
            // Arrange,
            var date = new DateTime(2, 3, 4);

            var model = new MeasurementViewModel
            {
                Date           = date,
                Height         = height,
                WeightKg       = weightKg,
                BodyFatPercent = bodyFatPercent,
                Chest          = chest,
                Shoulders      = shoulders,
                Forearm        = forearm,
                Arm            = arm,
                Waist          = waist,
                Hips           = hips,
                Thighs         = thighs,
                Calves         = calves,
                Neck           = neck,
                Wrist          = wrist,
                Ankle          = ankle
            };

            var mockedFactory                = new Mock <IViewModelFactory>();
            var mockedDateTimeProvider       = new Mock <IDateTimeProvider>();
            var mockedMeasurementService     = new Mock <IMeasurementService>();
            var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>();

            var controller = new MeasurementController(mockedAuthenticationProvider.Object,
                                                       mockedMeasurementService.Object,
                                                       mockedFactory.Object);

            controller.ModelState.AddModelError("", "");

            // Act
            controller.Save(model);

            // Assert
            controller
            .WithCallTo(c => c.Save(model))
            .ShouldRenderPartialView("Load")
            .WithModel <MeasurementViewModel>(m => Assert.AreSame(model, m));
        }
Пример #5
0
        public void TestGetMeasurement_ServiceReturnsNull_ShouldRenderPartialViewWithModelNull(int id)
        {
            // Arrange
            var mockedFactory                = new Mock <IViewModelFactory>();
            var mockedDateTimeProvider       = new Mock <IDateTimeProvider>();
            var mockedMeasurementService     = new Mock <IMeasurementService>();
            var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>();

            var controller = new MeasurementController(mockedAuthenticationProvider.Object,
                                                       mockedMeasurementService.Object, mockedFactory.Object);

            // Act, Assert
            controller
            .WithCallTo(c => c.GetMeasurement(id))
            .ShouldRenderPartialView("MeasurementDetails");
        }
Пример #6
0
        public void TestLoad_ModelStateIsNotValid_ShouldRenderCorrectView()
        {
            // Arrange
            var mockedFactory                = new Mock <IViewModelFactory>();
            var mockedDateTimeProvider       = new Mock <IDateTimeProvider>();
            var mockedMeasurementService     = new Mock <IMeasurementService>();
            var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>();

            var controller = new MeasurementController(mockedAuthenticationProvider.Object,
                                                       mockedMeasurementService.Object, mockedFactory.Object);

            controller.ModelState.AddModelError("", "");

            // Act, Assert
            controller
            .WithCallTo(c => c.Load(new DateTime()))
            .ShouldRenderDefaultPartialView();
        }
Пример #7
0
        public void TestSave_ModelIdHasValue_ShouldRenderCorrectPartialViewWithModel(int height,
                                                                                     double weightKg,
                                                                                     double bodyFatPercent,
                                                                                     int chest,
                                                                                     int shoulders,
                                                                                     int forearm,
                                                                                     int arm,
                                                                                     int waist,
                                                                                     int hips,
                                                                                     int thighs,
                                                                                     int calves,
                                                                                     int neck,
                                                                                     int wrist,
                                                                                     int ankle,
                                                                                     string userId)
        {
            // Arrange,
            var date = new DateTime(2, 3, 4);

            var model = new MeasurementViewModel
            {
                Date           = date,
                Height         = height,
                WeightKg       = weightKg,
                BodyFatPercent = bodyFatPercent,
                Chest          = chest,
                Shoulders      = shoulders,
                Forearm        = forearm,
                Arm            = arm,
                Waist          = waist,
                Hips           = hips,
                Thighs         = thighs,
                Calves         = calves,
                Neck           = neck,
                Wrist          = wrist,
                Ankle          = ankle
            };

            var mockedFactory = new Mock <IViewModelFactory>();

            mockedFactory.Setup(f => f.CreateMeasurementViewModel(It.IsAny <Measurement>(), It.IsAny <DateTime>()))
            .Returns(model);

            var mockedDateTimeProvider = new Mock <IDateTimeProvider>();

            var measurement = new Measurement();

            var mockedMeasurementService = new Mock <IMeasurementService>();

            mockedMeasurementService.Setup(s => s.EditMeasurement(It.IsAny <string>(), It.IsAny <DateTime>(),
                                                                  It.IsAny <int>(), It.IsAny <int>(), It.IsAny <double>(), It.IsAny <double>(),
                                                                  It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(),
                                                                  It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>()))
            .Returns(measurement);

            var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>();

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

            var controller = new MeasurementController(mockedAuthenticationProvider.Object,
                                                       mockedMeasurementService.Object,
                                                       mockedFactory.Object);

            // Act
            var result = controller.Save(model) as PartialViewResult;

            // Assert
            controller
            .WithCallTo(c => c.Save(model))
            .ShouldRenderPartialView("Load")
            .WithModel <MeasurementViewModel>(m => Assert.AreSame(model, m));
        }