public void Missing_query_string_datetime_returns_false()
        {
            _mockRequest.SetupGet(r => r.QueryString)
            .Returns(new NameValueCollection());
            var sut = new DOSSpecifyDispoTimeFeature();

            Assert.IsFalse(sut.HasDate(_mockRequest.Object));
        }
        public void Valid_datetime_returns_true()
        {
            _mockRequest.SetupGet(r => r.QueryString)
            .Returns(new NameValueCollection()
            {
                { _dosSearchDateTimeKeyname, _currentTime.ToString("yyyy-MM-dd HH:mm") }
            });
            var sut = new DOSSpecifyDispoTimeFeature();

            Assert.IsTrue(sut.HasDate(_mockRequest.Object));
        }
        public void Invalid_datetime_format_throws_exception()
        {
            _mockRequest.SetupGet(r => r.QueryString)
            .Returns(new NameValueCollection()
            {
                { _dosSearchDateTimeKeyname, "01/01/2019 12:00:00" }
            });
            var sut = new DOSSpecifyDispoTimeFeature();

            sut.HasDate(_mockRequest.Object);
        }
        public void Empty_datetime_returns_false()
        {
            _mockRequest.SetupGet(r => r.QueryString)
            .Returns(new NameValueCollection()
            {
                { _dosSearchDateTimeKeyname, string.Empty }
            });
            var sut = new DOSSpecifyDispoTimeFeature();

            Assert.IsFalse(sut.HasDate(_mockRequest.Object));
        }
        public void Valid_datetime_past_returns_same_datetime()
        {
            var date = _currentTime.AddMinutes(-1);

            _mockRequest.SetupGet(r => r.QueryString)
            .Returns(new NameValueCollection()
            {
                { _dosSearchDateTimeKeyname, date.ToString("yyyy-MM-dd HH:mm") }
            });
            var sut = new DOSSpecifyDispoTimeFeature(_mockClock.Object);

            Assert.AreEqual(date, sut.GetDosSearchDateTime(_mockRequest.Object));
        }
        public void Greater_than_one_year_in_future_datetime_returns_datetime_now()
        {
            var date = _currentTime.AddYears(1).AddMinutes(1);

            _mockRequest.SetupGet(r => r.QueryString)
            .Returns(new NameValueCollection()
            {
                { _dosSearchDateTimeKeyname, date.ToString("yyyy-MM-dd HH:mm") }
            });
            var sut = new DOSSpecifyDispoTimeFeature(_mockClock.Object);

            Assert.AreEqual(_mockClock.Object.Now, sut.GetDosSearchDateTime(_mockRequest.Object));
        }
        public void Is_enabled_returns_false_by_default()
        {
            var sut = new DOSSpecifyDispoTimeFeature();

            Assert.IsFalse(sut.IsEnabled);
        }