Example #1
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 #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
        protected override void beforeEach()
        {
            theWriter = new StubOutputWriter();
            Services.Inject <IOutputWriter>(theWriter);

            theWriter.Output.AppendHeader(HttpResponseHeaders.ETag, "12345");
            theWriter.Output.AppendHeader("a", "1");

            theHeaders = new HeadersCache();
            Services.Inject <IHeadersCache>(theHeaders);

            theResultingOutput = ClassUnderTest.CreateOutput(theResource, () => MockFor <IActionBehavior>().Invoke());
        }
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();
        }
        public void SetUp()
        {
            theHeaders = new KeyValues();
            var requestData = new RequestData(new FlatValueSource(theHeaders, RequestDataSource.Header.ToString()));

            theServiceArguments = new ServiceArguments();

            theServiceArguments.Set(typeof(IRequestData), requestData);

            stash <IHttpWriter>();
            stash <ICurrentChain>();

            theCache = new HeadersCache();

            theHash = Guid.NewGuid().ToString();

            theSource = MockRepository.GenerateMock <Func <ServiceArguments, string> >();
            theSource.Stub(x => x.Invoke(theServiceArguments)).Return(theHash);

            theFilter = new EtagInvocationFilter(theCache, theSource);
        }