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

            try
            {
                attribute.Validate(model.BasicDateRange.StartDateTime.LocalDate, testContext);
            }
            catch (Exception ex)
            {
                Assert.Fail("Unexpected Exception thrown: " + ex.Message);
            }
        }
        public void UiDateTimeGreaterThanDateAttributeOrNullValidationTestFails()
        {
            _timeZoneName = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time").StandardName;
            var model = new ValidationTestUiDateTimeRangeModel
            {
                BasicDateRange = new UiDateTimeRangeModel(_timeZoneName)
                {
                    StartDateTime = new UiDateTimeModel(_timeZoneName)
                    {
                        LocalDate = "1/14/2012"
                    },
                    EndDateTime = new UiDateTimeModel(_timeZoneName)
                    {
                        LocalDate = "5/22/2000"
                    }
                }
            };
            var testContext = new ValidationContext(model, null, null)
            {
                DisplayName = "BasicDateRange"
            };
            var attribute = new UiDateTimeGreaterThanDateAttributeOrNullValidation("EndDateTime.LocalDate", "StartDateTime.LocalDate");

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