Example #1
0
        public void should_return_stop_and_write_304_response_code_if_the_ifnonematch_header_matches_the_current_etag()
        {
            setRequestIfNoneMatch("12345");

            theCache.Register(theHash, new Header[] { new Header(HttpResponseHeader.ETag, "12345"), });

            theFilter.Filter(theServiceArguments).ShouldEqual(DoNext.Stop);

            theServiceArguments.Get <IHttpWriter>()
            .AssertWasCalled(x => x.WriteResponseCode(HttpStatusCode.NotModified));
        }
Example #2
0
        public void register_saves_a_copy_of_the_enumerable_and_not_the_same()
        {
            var headers = new Header[] { new Header("a", "1"), new Header("b", "2"), new Header("c", "3") };

            var hash = Guid.NewGuid().ToString();

            var cache = new HeadersCache();

            cache.Register(hash, headers);

            cache.Current(hash).ShouldNotBeTheSameAs(headers);
        }
Example #3
0
        public void register_and_fetch()
        {
            var headers = new Header[] { new Header("a", "1"), new Header("b", "2"), new Header("c", "3") };

            var hash = Guid.NewGuid().ToString();

            var cache = new HeadersCache();

            cache.Register(hash, headers);

            cache.Current(hash).ShouldHaveTheSameElementsAs(headers);
        }
Example #4
0
        public void eject_clears_it_out()
        {
            var headers = new Header[] { new Header("a", "1"), new Header("b", "2"), new Header("c", "3") };

            var hash = Guid.NewGuid().ToString();

            var cache = new HeadersCache();

            cache.Register(hash, headers);

            cache.Eject(hash);

            cache.Current(hash).Any().ShouldBeFalse();
        }