public void Should_load_valid_test_data()
        {
            // Given
            var payload = new DefaultSessionObjectFormatterFixture.Payload
            {
                BoolValue = true
            };

            var cookieData = GenerateCookieData(new Dictionary <string, object>
            {
                { "key1", payload }
            });

            var store =
                new CookieBasedSessions(this.aesEncryptionProvider, this.defaultHmacProvider, this.defaultObjectSerializer);

            var request =
                new Request("GET", "/", "http");

            request.Cookies.Add(store.CookieName, cookieData.ToString());

            // When
            var result = store.Load(request);

            // Then
            result.Count.ShouldEqual(1);
            result.First().Value.ShouldBeOfType(typeof(DefaultSessionObjectFormatterFixture.Payload));
        }
示例#2
0
        public void Should_be_able_to_load_an_object_previously_saved_to_session()
        {
            var response = new Response();
            var session  = new Session(new Dictionary <string, object>());
            var payload  = new DefaultSessionObjectFormatterFixture.Payload(27, true, "Test string");
            var store    = new CookieBasedSessions(this.rijndaelEncryptionProvider, this.defaultHmacProvider, this.defaultObjectSerializer);

            session["testObject"] = payload;
            store.Save(session, response);
            var request = new Request("GET", "/", "http");

            request.Cookies.Add(Helpers.HttpUtility.UrlEncode(response.Cookies.First().Name), Helpers.HttpUtility.UrlEncode(response.Cookies.First().Value));

            var result = store.Load(request);

            result["testObject"].ShouldEqual(payload);
        }
示例#3
0
        public void Should_be_able_to_save_a_complex_object_to_session()
        {
            var response = new Response();
            var session  = new Session(new Dictionary <string, object>());
            var payload  = new DefaultSessionObjectFormatterFixture.Payload(27, true, "Test string");
            var store    = new CookieBasedSessions(this.rijndaelEncryptionProvider, this.defaultHmacProvider, this.defaultObjectSerializer);

            session["testObject"] = payload;

            store.Save(session, response);

            response.Cookies.Count.ShouldEqual(1);
            var cookie = response.Cookies.First();

            cookie.Name.ShouldEqual(store.CookieName);
            cookie.Value.ShouldNotBeNull();
            cookie.Value.ShouldNotBeEmpty();
        }