Пример #1
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));
        }
Пример #2
0
        public void TestSave_ModelStateIsValid_ShouldCallAuthenticationProviderCurrentUserId(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 mockedMeasurementService     = new Mock <IMeasurementService>();
            var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>();

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

            // Act
            controller.Save(model);

            // Assert
            mockedAuthenticationProvider.Verify(p => p.CurrentUserId, Times.Once);
        }
Пример #3
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));
        }
Пример #4
0
        public void TestSave_ModelIdDoesNotHaveValue_ShouldSetModelSaveResult(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.CreateMeasurement(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>(), It.IsAny <string>(), It.IsAny <DateTime>()))
            .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
            Assert.AreEqual(Constants.SavedSuccessfully, ((MeasurementViewModel)result.Model).SaveResult);
        }