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");
            }
        }