public void BooleanField_GetValue_WhenTrue()
        {
            using (var item = new TestItemContext())
            {
                item.SetField(TestFields.BOOLEAN, "1");

                var field = new BooleanField(new LazyField(() => item[TestFields.BOOLEAN], "TEST", TestFields.BOOLEAN), null);

                Assert.IsTrue(field.Value);
            }
        }
        public void DateTimeField_HasValue_WhenTrue()
        {
            using (var item = new TestItemContext())
            {
                item.SetField(TestFields.DATETIME, DateUtil.IsoNow);

                var field = new DateTimeField(new LazyField(() => item[TestFields.DATETIME], "TEST", TestFields.DATETIME), null);

                Assert.IsTrue(field.HasValue);
            }
        }
        public void DateTimeField_HasValue_WhenFalse()
        {
            using (var item = new TestItemContext())
            {
                item.SetField(TestFields.DATETIME, string.Empty);

                var field = new DateTimeField(new LazyField(() => item[TestFields.DATETIME], "TEST", TestFields.DATETIME), null);

                Assert.IsFalse(field.HasValue);
            }
        }
        public void DateTimeField_GetValue_ReturnsDateMinWhenEmpty()
        {
            using (var item = new TestItemContext())
            {
                item.SetField(TestFields.DATETIME, string.Empty);

                var field = new DateTimeField(new LazyField(() => item[TestFields.DATETIME], "TEST", TestFields.DATETIME), null);

                Assert.AreEqual(field.Value, DateTime.MinValue);
            }
        }
        public void DateTimeField_GetValue_ReturnsValidValue()
        {
            using (var item = new TestItemContext())
            {
                var dateSet = DateUtil.IsoDateToDateTime(DateUtil.ToIsoDate(DateTime.Now)); // convert now to sitecore format and back to make sure the rounding is correct - sitecore doesn't have quite the same precision (no msec) as DateTime.Now
                item.SetField(TestFields.DATETIME, DateUtil.ToIsoDate(dateSet));

                var field = new DateTimeField(new LazyField(() => item[TestFields.DATETIME], "TEST", TestFields.DATETIME), null);

                Assert.AreEqual(field.Value, dateSet);
            }
        }