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), }); }
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)); }
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) {} }