public void DateTimeColumnVM_FromPOCO()
        {
            //given
            var columnPOCO = new DateTimeColumnPOCO()
            {
                MinValue = new DateTime(2000, 1, 1),
                MaxValue = new DateTime(2010, 1, 1)
            };
            //when
            var columnVM = new DateTimeColumnVM(columnPOCO);

            //then
            Assert.AreEqual(columnPOCO.MinValue, columnVM.MinValue);
            Assert.AreEqual(columnPOCO.MaxValue, columnVM.MaxValue);
        }
        public void Validate_MinMaxCondition()
        {
            //given
            var columnVM = new DateTimeColumnVM()
            {
                MinValue = new DateTime(2010, 1, 1),
                MaxValue = new DateTime(200, 1, 1)
            };
            //when
            var validationResults = columnVM.Validate(null);

            //then
            Assert.AreEqual(1, validationResults.Count());
            Assert.IsTrue(validationResults.First().MemberNames.Contains(nameof(DateTimeColumnVM.MaxValue)));
            Assert.IsTrue(validationResults.First().MemberNames.Contains(nameof(DateTimeColumnVM.MinValue)));
        }
        public void Validate_GenerateDataWhenRequired()
        {
            //given
            var columnPOCO = new DateTimeColumnPOCO()
            {
                Required = true
            };
            var columnVM = new DateTimeColumnVM()
            {
                InternalName = "test column name",
                GenerateData = false,
                MinValue     = new DateTime(2000, 1, 1),
                MaxValue     = new DateTime(2010, 1, 1)
            };

            columnVM.SyncModels(columnPOCO);
            //when
            var validationResults = columnVM.Validate(null);

            //then
            Assert.AreEqual(1, validationResults.Count());
            Assert.IsTrue(validationResults.First().MemberNames.Contains(nameof(DateTimeColumnVM.GenerateData)));
        }