Esempio n. 1
0
        public async Task Build_InvalidRequest_ErrorResult()
        {
            // Arrange
            var tokenExchangeContext = new ExtensionGrantValidationContext();

            this.requestValidatorMock.Setup(x => x.ValidateAsync(tokenExchangeContext.Request))
            .ReturnsAsync(this.errorResult);

            var target = new TokenExchangeGrant(this.requestValidatorMock.Object, this.resultBuilder);

            // Act
            await target.ValidateAsync(tokenExchangeContext).ConfigureAwait(false);

            // Assert
            Assert.IsTrue(tokenExchangeContext.Result.IsError);
            Assert.AreEqual("invalid_request", tokenExchangeContext.Result.Error);
            Assert.AreEqual(this.errorResult.ErrorDescription, tokenExchangeContext.Result.ErrorDescription);
            this.requestValidatorMock.Verify(v => v.ValidateAsync(It.IsAny <ValidatedTokenRequest>()), Times.Once());
        }
Esempio n. 2
0
        public async Task Build_ValidRequest_SuccessResult()
        {
            // Arrange
            var expectedSub         = this.successResult.SubjectTokenValidationResult.Claims.Sub();
            var expectedClientId    = this.successResult.SubjectTokenValidationResult.Client.ClientId;
            var expectedClientClaim = "customValueFromSubject";

            var tokenExchangeContext = new ExtensionGrantValidationContext()
            {
                Request = new ValidatedTokenRequest
                {
                    Client = new Client
                    {
                        ClientId = "dummyClientFromRequest",
                    },
                    ClientClaims = new List <Claim> {
                        new Claim("client_custom_type", "customValueFromRequest")
                    }
                }
            };

            this.requestValidatorMock.Setup(x => x.ValidateAsync(tokenExchangeContext.Request))
            .ReturnsAsync(this.successResult);

            var target = new TokenExchangeGrant(this.requestValidatorMock.Object, this.resultBuilder);

            // Act
            await target.ValidateAsync(tokenExchangeContext).ConfigureAwait(false);

            // Assert
            Assert.IsFalse(tokenExchangeContext.Result.IsError);
            Assert.AreEqual(expectedSub, tokenExchangeContext.Result.Subject.Claims.Sub());
            Assert.AreEqual(expectedClientId, tokenExchangeContext.Request.Client.ClientId);
            Assert.AreEqual(expectedClientClaim, tokenExchangeContext.Request.ClientClaims.FirstOrDefault(c => c.Type == "client_custom_type").Value);
            this.requestValidatorMock.Verify(v => v.ValidateAsync(It.IsAny <ValidatedTokenRequest>()), Times.Once());
        }