public async Task MessageReceived_MoreThanOneToken()
        {
            // Arrange

            var inner       = Mock.Of <JwtBearerEvents>();
            var events      = this.CreateQueryStringJwtBearerEvents(inner);
            var context     = new DefaultMessageReceivedContext();
            var queryString = $"?{events.QueryStringParameterName}=foo&{events.QueryStringParameterName}=bar";

            context.Request.QueryString = new QueryString(queryString);

            // Act

            await events.MessageReceived(context);

            // Assert

            Assert.Null(context.Token);

            Assert.NotNull(context.Result?.Failure);
            Assert.Equal(
                $"Only one '{events.QueryStringParameterName}' query string parameter " +
                $"can be defined. However, 2 were included in the request.",
                context.Result.Failure.Message
                );

            Assert.Equal((int)HttpStatusCode.Unauthorized, context.Response.StatusCode);
            Mock.Get(inner).Verify(e => e.MessageReceived(context));
        }
        public async Task MessageReceived_WhiteSpaceToken(String value)
        {
            // Arrange

            var inner       = Mock.Of <JwtBearerEvents>();
            var events      = this.CreateQueryStringJwtBearerEvents(inner);
            var context     = new DefaultMessageReceivedContext();
            var queryString = $"?{events.QueryStringParameterName}{value}";

            context.Request.QueryString = new QueryString(queryString);

            // Act

            await events.MessageReceived(context);

            // Assert

            Assert.Null(context.Token);

            Assert.NotNull(context.Result);
            Assert.Equal(
                $"The '{events.QueryStringParameterName}' query string parameter was " +
                $"defined, but a value to represent the token was not included.",
                context.Result.Failure?.Message
                );

            Assert.Equal((int)HttpStatusCode.Unauthorized, context.Response.StatusCode);
            Mock.Get(inner).Verify(e => e.MessageReceived(context));
        }
Exemple #3
0
        public async Task MessageReceived_Wraps()
        {
            // Arrange

            var inner   = Mock.Of <JwtBearerEvents>();
            var wrapper = this.CreateJwtBearerEvents(inner);
            var context = new DefaultMessageReceivedContext();

            // Act

            await wrapper.MessageReceived(context);

            // Assert

            Mock.Get(inner).Verify(events => events.MessageReceived(context));
        }
        public async Task MessageReceived_NoQueryStringParameterName(String queryString)
        {
            // Arrange

            var inner   = Mock.Of <JwtBearerEvents>();
            var events  = this.CreateJwtBearerEvents(inner);
            var context = new DefaultMessageReceivedContext();

            context.Request.QueryString = new QueryString(queryString);

            // Act

            await events.MessageReceived(context);

            // Assert

            Assert.Null(context.Token);
            Assert.Null(context.Result);
            Mock.Get(inner).Verify(e => e.MessageReceived(context));
        }
        public async Task MessageReceived_ValidCustomToken(string customQueryStringParameterName)
        {
            // Arrange

            var inner   = Mock.Of <JwtBearerEvents>();
            var events  = new QueryStringJwtBearerEventsWrapper(inner, customQueryStringParameterName);
            var context = new DefaultMessageReceivedContext();

            const string token       = "foo";
            var          queryString = $"?{customQueryStringParameterName}={token}";

            context.Request.QueryString = new QueryString(queryString);

            // Act

            await events.MessageReceived(context);

            // Assert

            Assert.Equal(token, context.Token);
            Assert.Null(context.Result);
            Mock.Get(inner).Verify(e => e.MessageReceived(context));
        }