Пример #1
0
        public void Test_ProvideValue()
        {
            // Arrange.
            var extension = new EnumValuesExtension(typeof(TestEnum));

            // Act.
            var values = (TestEnum[])extension.ProvideValue(new Mock <IServiceProvider>().Object);

            // Assert.
            AssertThat.SequenceEqual(new[] { TestEnum.Value1, TestEnum.Value2, TestEnum.Value3 }, values);
        }
Пример #2
0
        public OAuth2.DataModels.TokenResponse Post(TokenRequest request)
        {
            if (request.grant_type == null || request.grant_type.Value == AuthTypes.code || request.grant_type.Value == AuthTypes.token)
            {
                Response.StatusCode = 400;
                throw new OAuth2.DataModels.TokenRequestError()
                      {
                          error             = OAuth2.DataModels.ErrorCodes.invalid_request,
                          error_description = "Missing or invalid grant type. Valid: " + string.Join(", ", EnumValuesExtension <AuthTypes> .GetValues().Where((cur) => cur != AuthTypes.token && cur != AuthTypes.code))
                      };
            }

            OAuth2.DataModels.Client client = ValidateClient(request.client_id, request.client_password);

            Uri clientUri = ValidateRedirectURI(request.redirect_uri, client.redirect_uri);

            switch (request.grant_type.Value)
            {
            case AuthTypes.client_credentials:
                return(HandleClientCredentialsGrant(request, client));

            case AuthTypes.password:
                return(HandlePasswordGrant(request, client));

            case AuthTypes.authorization_code:
                HandleCodeExchange(request, client);
                return(null);

            case AuthTypes.refresh_token:
                HandleRefreshTokenGrant(request, client);
                return(null);

            default:
                throw new DataModels.TokenRequestError(DataModels.ErrorCodes.invalid_request, string.Format("Grant Type {0} is not supported", request.grant_type.Value));
            }
        }