public object Any(FailsAfterOnce request)
        {
            if (FailsAfterOnce.Count++ > 0)
            {
                throw new Exception("Can only be called once");
            }

            return(new HttpResult(request)
            {
                Age = request.Age,
                ETag = request.ETag,
                MaxAge = request.MaxAge,
                Expires = request.Expires,
                LastModified = request.LastModified,
                CacheControl = request.CacheControl.GetValueOrDefault(CacheControl.None),
            });
        }
示例#2
0
        public void CachedServiceClient_does_return_cached_after_FailedResponse()
        {
            var client = GetCachedServiceClient();

            FailsAfterOnce.Count = 0;

            var request = new FailsAfterOnce {
                ETag = "etag", MaxAge = TimeSpan.FromSeconds(0)
            };
            var response = client.Get(request);

            Assert.That(client.ErrorFallbackHits, Is.EqualTo(0));
            Assert.That(response, Is.EqualTo(request));

            response = client.Get(request);
            Assert.That(client.ErrorFallbackHits, Is.EqualTo(1));
            Assert.That(response, Is.EqualTo(request));
        }
示例#3
0
        public void CachedServiceClient_does_not_return_NoCache_after_FailedResponse()
        {
            var client = GetCachedServiceClient();

            FailsAfterOnce.Count = 0;

            var request = new FailsAfterOnce {
                ETag = "etag", CacheControl = CacheControl.NoCache
            };
            var response = client.Get(request);

            Assert.That(client.ErrorFallbackHits, Is.EqualTo(0));
            Assert.That(response, Is.EqualTo(request));

            try
            {
                client.Get(request);
                Assert.Fail("Should throw");
            }
            catch (Exception) {}
        }