public void UiDateTimeNotInFutureValidationTestFails()
        {
            var model = new ValidationTestUiDateTimeRangeModel
            {
                BasicDateRange = new UiDateTimeRangeModel(_timeZoneName)
                {
                    StartDateTime = new UiDateTimeModel(_timeZoneName)
                    {
                        LocalDate = "1/14/2100"
                    }
                }
            };
            var testContext = new ValidationContext(model, null, null)
            {
                DisplayName = "BasicDateRange"
            };
            var attribute = new UiDateTimeNotInFutureValidation("StartDateTime.LocalDate");

            try
            {
                attribute.Validate(model.BasicDateRange.StartDateTime.LocalDate, testContext);
                Assert.Fail("Exception not thrown");
            }
            catch (ValidationException ex)
            {
                Assert.AreEqual("'Date' must be in the past.", ex.Message);
            }
            catch (Exception)
            {
                Assert.Fail("Unexpected Exception thrown");
            }
        }
        public void UiDateTimeNotInFutureValidationTestPasses()
        {
            var model = new ValidationTestUiDateTimeRangeModel
            {
                BasicDateRange = new UiDateTimeRangeModel(_timeZoneName)
                {
                    StartDateTime = new UiDateTimeModel(_timeZoneName)
                    {
                        LocalDate = "1/14/1900"
                    }
                }
            };
            var testContext = new ValidationContext(model, null, null)
            {
                DisplayName = "BasicDateRange"
            };
            var attribute = new UiDateTimeNotInFutureValidation("StartDateTime.LocalDate");

            try
            {
                attribute.Validate(model.BasicDateRange.StartDateTime.LocalDate, testContext);
            }
            catch (Exception ex)
            {
                Assert.Fail("Unexpected Exception thrown: " + ex.Message);
            }
        }
        public void UiDateTimeNotInFutureValidationTestPasses()
        {
            var model = new ValidationTestUiDateTimeRangeModel
                                                {
                                                    BasicDateRange = new UiDateTimeRangeModel(_timeZoneName) { StartDateTime = new UiDateTimeModel(_timeZoneName) { LocalDate = "1/14/1900" } }
                                                };
            var testContext = new ValidationContext(model, null, null) {DisplayName = "BasicDateRange"};
            var attribute = new UiDateTimeNotInFutureValidation("StartDateTime.LocalDate");

            try
            {
                attribute.Validate(model.BasicDateRange.StartDateTime.LocalDate, testContext);
            }
            catch (Exception ex)
            {
                Assert.Fail("Unexpected Exception thrown: " + ex.Message);
            }
        }
        public void UiDateTimeNotInFutureValidationTestFails()
        {
            var model = new ValidationTestUiDateTimeRangeModel
                                        {
                                            BasicDateRange = new UiDateTimeRangeModel(_timeZoneName) { StartDateTime = new UiDateTimeModel(_timeZoneName) { LocalDate = "1/14/2100" } }
                                        };
            var testContext = new ValidationContext(model, null, null) {DisplayName = "BasicDateRange"};
            var attribute = new UiDateTimeNotInFutureValidation("StartDateTime.LocalDate");

            try
            {
                attribute.Validate(model.BasicDateRange.StartDateTime.LocalDate, testContext);
                Assert.Fail("Exception not thrown");
            }
            catch (ValidationException ex)
            {
                Assert.AreEqual("'Date' must be in the past.", ex.Message);
            }
            catch (Exception)
            {
                Assert.Fail("Unexpected Exception thrown");
            }
        }