public void DefaultCachePeriodOverridesExpiryDateIfSooner()
        {
            // Expires after 30 hours
            var expiryDate = _startDate.AddHours(30);

            // Should pick the default timespan, not expiry date
            var service   = new HttpCachingService();
            var freshness = service.WorkOutCacheFreshness(_startDate, _defaultCachePeriod, new List <DateTime>()
            {
                expiryDate
            });

            Assert.AreEqual(freshness.FreshFor, _defaultCachePeriod);
            Assert.AreEqual(freshness.FreshUntil, _startDate.Add(_defaultCachePeriod));
        }
        public void ExpiryDateOverridesDefaultCachePeriodIfSooner()
        {
            // Expires after 23 hours
            var expiryDate = _startDate.AddHours(23);

            // Should pick the expiry date, not default timespan
            var service   = new HttpCachingService();
            var freshness = service.WorkOutCacheFreshness(_startDate, _defaultCachePeriod, new List <DateTime>()
            {
                expiryDate
            });

            Assert.AreEqual(freshness.FreshFor, expiryDate - _startDate);
            Assert.AreEqual(freshness.FreshUntil, expiryDate);
        }
        public void EarliestExpiryDateWins()
        {
            var expiryDate1 = _startDate.AddHours(15);
            var expiryDate2 = _startDate.AddHours(7);
            var expiryDate3 = _startDate.AddHours(11);

            // Should pick second expiry date
            var service   = new HttpCachingService();
            var freshness = service.WorkOutCacheFreshness(_startDate, _defaultCachePeriod, new List <DateTime>()
            {
                expiryDate1, expiryDate2, expiryDate3
            });

            Assert.AreEqual(freshness.FreshFor, expiryDate2 - _startDate);
            Assert.AreEqual(freshness.FreshUntil, expiryDate2);
        }