public void IfCreationDateIsInTheFutureThereShouldBeAnError()
        {
            var userAccessorMock = new Mock <IUserAccessor>();

            userAccessorMock.Setup(x => x.GetCurrentUsersGender()).Returns(GenderType.Male);
            CreateOrEditBodyMeasurementRequestValidator validator = new CreateOrEditBodyMeasurementRequestValidator(userAccessorMock.Object);

            validator.ShouldHaveValidationErrorFor(x => x.DateAdded, DateTime.Today.AddDays(1));
        }
        // Hip circumference can be null if gender is male
        public void HipCircumferenceAndGenderTypeIsMaleTests()
        {
            var userAccessorMock = new Mock <IUserAccessor>();

            userAccessorMock.Setup(x => x.GetCurrentUsersGender()).Returns(GenderType.Male);
            CreateOrEditBodyMeasurementRequestValidator validator = new CreateOrEditBodyMeasurementRequestValidator(userAccessorMock.Object);

            validator.ShouldNotHaveValidationErrorFor(x => x.HipCircumference, (double?)null);
            validator.ShouldNotHaveValidationErrorFor(x => x.HipCircumference, (double?)0);
            validator.ShouldNotHaveValidationErrorFor(x => x.HipCircumference, (double?)10.4);
        }
        public void ValidationShouldSucceedIfAllFieldsAreValid()
        {
            var userAccessorMock = new Mock <IUserAccessor>();

            userAccessorMock.Setup(x => x.GetCurrentUsersGender()).Returns(GenderType.Male);
            CreateOrEditBodyMeasurementRequestValidator validator             = new CreateOrEditBodyMeasurementRequestValidator(userAccessorMock.Object);
            CreateOrEditBodyMeasurementRequest          createBodyMeasurement = new CreateOrEditBodyMeasurementRequest
            {
                NeckCircumference  = 10,
                WaistCircumference = 10,
                HipCircumference   = 10,
                Height             = 60,
                Weight             = 100,
                DateAdded          = DateTime.Today,
            };

            ValidationResult validationResult = validator.Validate(createBodyMeasurement);

            Assert.IsTrue(validationResult.IsValid);
        }