TestTokenCreator Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Uma classe responsável pela criação de tokens de teste para utilização em implementações de testes unitários dependendo da Microsoft. Validação do token IdentityModel.
public class TestTokenCreator
type TestTokenCreator = class
Public Class TestTokenCreator
- Herança
-
TestTokenCreator
Exemplos
O seguinte fornece um exemplo de como esta classe poderia ser aproveitada usando um framework de testes comum, Xunit. No entanto, os conceitos centrais serão aplicáveis a testes unitários usando qualquer framework.
O exemplo imagina uma classe, ClassWithMicrosoftIdentityModelDependency, que expõe o ValidateToken, um método que chama a Microsoft. IdentityModel e GetTokenValidationParameters que recuperam o TokenValidationParameters código em teste que realmente utilizam. Note que é importante usar o real TokenValidationParameters , pois isso permitirá que os testes unitários confirmem realmente se há uma lacuna na validação (por exemplo, certa validação importante está desativada, ValidateAudience, ValidateIssuer, etc.)
No exemplo de código seguinte, generateTokenToTest deve ser um dos métodos desta classe.
internal void AssertValidationException(Func{string} generateTokenToTest, Type innerExceptionType, string innerExceptionMessagePart)
{
try
{
ClassWithMicrosoftIdentityModelDependency.ValidateToken(
generateTokenToTest,
ClassWithMicrosoftIdentityModelDependency.GetTokenValidationParameters());
if (innerExceptionType != null || innerExceptionType != null)
throw new TestException(
string.Format(
"Expected an exception of type '{0}' containing '{1}' in the message.",
innerExceptionType,
innerExceptionMessagePart));
}
catch (Exception e)
{
Assert.Equal(typeof(SampleTestTokenValidationException), e.GetType());
Assert.Equal(innerExceptionType, e.InnerException.GetType());
if (!string.IsNullOrEmpty(innerExceptionMessagePart))
{
Assert.Contains(innerExceptionMessagePart, e.InnerException.Message);
}
}
}
[Fact]
public void TokenWithoutSignature()
{
var testTokenCreator = new TestTokenCreator();
AssertValidationException(
testTokenCreator.CreateTokenWithNoSignature,
typeof(ArgumentException),
"IDX14111");
}
Observações
Microsoft. IdentityModel.SampleTests.SampleTokenValidationClassTests contém exemplos de como esta classe pode ser utilizada para validar uma classe trivial de validação de token que depende da Microsoft. Métodos de validação de tokens da IdentityModel.
Construtores
| Name | Descrição |
|---|---|
| TestTokenCreator() |
Uma classe responsável pela criação de tokens de teste para utilização em implementações de testes unitários dependendo da Microsoft. Validação do token IdentityModel. |
Propriedades
| Name | Descrição |
|---|---|
| Audience |
Obtém ou define a Audiência para ser carimbada nos tokens criados. |
| Issuer |
Recebe ou define o emissor para ser carimbado nos tokens criados. |
| SigningCredentials |
Obtém ou define as Credenças de Assinatura usadas para assinar os tokens criados. |
Métodos
| Name | Descrição |
|---|---|
| CreateClaimsSetWithInstanceOverrides() |
Cria um conjunto padrão de reivindicações com base nos valores da instância. |
| CreateDefaultValidToken() |
Cria um token de teste válido por defeito com base nos valores e AudienceSigningCredentials valores da Issuerclasse. |
| CreateExpiredToken() |
Cria um token JWS de teste que já expirou. |
| CreateJsonPayload(IDictionary<String,Object>) |
Cria uma carga útil JSON com base na aprovação IDictionary<TKey,TValue>das reclamações. |
| CreateNotYetValidToken() |
Cria um token JWS de teste que ainda não é válido. |
| CreateToken(Dictionary<String,Object>) |
Cria um token baseado no passado Dictionary<TKey,TValue>. |
| CreateToken(SecurityTokenDescriptor) |
Cria um token baseado no passado SecurityTokenDescriptor. |
| CreateTokenDescriptorWithInstanceOverrides() |
Cria um padrão SecurityTokenDescriptor com base nos valores da instância. |
| CreateTokenWithBadAudience() |
Cria um token JWS de teste com uma audiência que não corresponde ao valor da instância configurada. |
| CreateTokenWithBadIssuer() |
Cria um token JWS de teste com um emissor que não corresponde ao valor da instância configurado. |
| CreateTokenWithBadSignatureKey() |
Cria um token JWS de teste assinado com uma chave que não corresponde ao valor da instância configurada. |
| CreateTokenWithFutureIssuedAt() |
Cria um token JWS de teste que será emitido no futuro. |
| CreateTokenWithInvalidSignature() |
Cria um token de teste com uma assinatura que não corresponde à carga útil. |
| CreateTokenWithMissingAudience() |
Cria um token JWS de teste com uma reclamação de audiência (aud) em falta. |
| CreateTokenWithMissingExpires() |
Cria um token JWS de teste com uma reclamação de Tempo de Expiração (exp) em falta. |
| CreateTokenWithMissingIssuedAt() |
Cria um token JWS de teste com uma reivindicação IssuedAt (iat) em falta. |
| CreateTokenWithMissingIssuer() |
Cria um token JWS de teste com uma reclamação do emissor (iss) em falta. |
| CreateTokenWithMissingKey() |
Cria um token JWS de teste sem uma chave de assinatura (ou seja, alg=nenhum, sem assinatura). |
| CreateTokenWithMissingNotBefore() |
Cria um token JWS de teste com uma reivindicação NotBefore (nbf) em falta. |
| CreateTokenWithNoSignature() |
Cria um token JWS de teste sem qualquer assinatura. |