TestTokenCreator Classe

Definição

Uma classe responsável por criar tokens de teste para uso em implementações de teste de unidade, dependendo de Microsoft. Validação do token IdentityModel.

public class TestTokenCreator
type TestTokenCreator = class
Public Class TestTokenCreator
Herança
TestTokenCreator

Exemplos

O exemplo a seguir fornece um exemplo de como essa classe pode ser aproveitada usando uma estrutura de teste comum, o Xunit. No entanto, os principais conceitos serão aplicáveis ao teste de unidade usando qualquer estrutura.

O exemplo imagina uma classe, ClassWithMicrosoftIdentityModelDependency, que expõe ValidateToken, um método que chama o Microsoft. Biblioteca IdentityModel e GetTokenValidationParameters que recupera o TokenValidationParameters código em teste realmente usa. Observe que é importante usar o real TokenValidationParameters , pois isso permitirá que os testes de unidade confirmem se há uma lacuna na validação (por exemplo, determinada validação importante está desabilitada, ValidateAudienceetc ValidateIssuer.)

No exemplo de código a seguir, generateTokenToTest deve ser um dos métodos dessa 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");
}

Comentários

Microsoft. IdentityModel.SampleTests.SampleTokenValidationClassTests contém exemplos de como essa classe pode ser aproveitada para validar uma classe de validação de token trivial que depende de Microsoft. Métodos de validação de token do IdentityModel.

Construtores

Nome Description
TestTokenCreator()

Uma classe responsável por criar tokens de teste para uso em implementações de teste de unidade, dependendo de Microsoft. Validação do token IdentityModel.

Propriedades

Nome Description
Audience

Obtém ou define o Público a ser carimbado nos tokens criados.

Issuer

Obtém ou define o emissor a ser carimbado nos tokens criados.

SigningCredentials

Obtém ou define as SigningCredentials usadas para assinar os tokens criados.

Métodos

Nome Description
CreateClaimsSetWithInstanceOverrides()

Cria um conjunto padrão de declarações com base nos valores da instância.

CreateDefaultValidToken()

Cria um token de teste válido padrão com base nos valores e Issuer valores da AudienceSigningCredentials classe.

CreateExpiredToken()

Cria um token JWS de teste que já passou da expiração.

CreateJsonPayload(IDictionary<String,Object>)

Cria uma carga JSON com base na aprovação IDictionary<TKey,TValue>de declarações.

CreateNotYetValidToken()

Cria um token JWS de teste que ainda não é válido.

CreateToken(Dictionary<String,Object>)

Cria um token com base na passagem Dictionary<TKey,TValue>.

CreateToken(SecurityTokenDescriptor)

Cria um token com base na passagem SecurityTokenDescriptor.

CreateTokenDescriptorWithInstanceOverrides()

Cria um padrão SecurityTokenDescriptor com base nos valores da instância.

CreateTokenWithBadAudience()

Cria um token JWS de teste com um público-alvo 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 de 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 é emitido no futuro.

CreateTokenWithInvalidSignature()

Cria um token de teste com uma assinatura que não corresponde ao conteúdo.

CreateTokenWithMissingAudience()

Cria um token JWS de teste com uma declaração de audiência ausente (aud).

CreateTokenWithMissingExpires()

Cria um token JWS de teste com uma declaração de tempo de expiração (exp) ausente.

CreateTokenWithMissingIssuedAt()

Cria um token JWS de teste com uma declaração IssuedAt (iat) ausente.

CreateTokenWithMissingIssuer()

Cria um token JWS de teste com uma declaração de emissor ausente (iss).

CreateTokenWithMissingKey()

Cria um token JWS de teste sem uma chave de assinatura (ou seja, alg=none, sem assinatura).

CreateTokenWithMissingNotBefore()

Cria um token JWS de teste com uma declaração NotBefore (nbf) ausente.

CreateTokenWithNoSignature()

Cria um token JWS de teste sem nenhuma assinatura.

Aplica-se a