public void GetSetString()
        {
            var props = new AuthenticationProperties();

            Assert.Null(props.GetString("foo"));
            Assert.Equal(0, props.Items.Count);

            props.SetString("foo", "foo bar");
            Assert.Equal("foo bar", props.GetString("foo"));
            Assert.Equal("foo bar", props.Items["foo"]);
            Assert.Equal(1, props.Items.Count);

            props.SetString("foo", "foo baz");
            Assert.Equal("foo baz", props.GetString("foo"));
            Assert.Equal("foo baz", props.Items["foo"]);
            Assert.Equal(1, props.Items.Count);

            props.SetString("bar", "xy");
            Assert.Equal("xy", props.GetString("bar"));
            Assert.Equal("xy", props.Items["bar"]);
            Assert.Equal(2, props.Items.Count);

            props.SetString("bar", string.Empty);
            Assert.Equal(string.Empty, props.GetString("bar"));
            Assert.Equal(string.Empty, props.Items["bar"]);

            props.SetString("foo", null);
            Assert.Null(props.GetString("foo"));
            Assert.Equal(1, props.Items.Count);

            props.SetString("doesntexist", null);
            Assert.False(props.Items.ContainsKey("doesntexist"));
            Assert.Equal(1, props.Items.Count);
        }