Język

TestTokenCreator Klasa

Definicja

Klasa odpowiedzialna za tworzenie tokenów testowych do użycia w implementacjach testów jednostkowych w zależności od Microsoft. Weryfikacja tokenu IdentityModel.

public class TestTokenCreator
type TestTokenCreator = class
Public Class TestTokenCreator
Dziedziczenie
TestTokenCreator

Przykłady

Poniżej przedstawiono przykład wykorzystania tej klasy przy użyciu wspólnej platformy testowania Xunit. Podstawowe pojęcia będą jednak stosowane do testowania jednostkowego przy użyciu dowolnej platformy.

W tym przykładzie przedstawiono klasę ClassWithMicrosoftIdentityModelDependency, która uwidacznia metodę ValidateToken wywołującą Microsoft. Biblioteka IdentityModel i getTokenValidationParameters, która pobiera TokenValidationParameters kod testowy faktycznie używa. Należy pamiętać, że ważne jest użycie wartości rzeczywistej TokenValidationParameters , ponieważ pozwoli to testom jednostkowym rzeczywiście potwierdzić, czy istnieje luka w walidacji (np. niektóre ważne walidacje są wyłączone, ValidateAudience, ValidateIssueritp.)

W poniższym przykładzie kodu metoda generateTokenToTest powinna być jedną z metod z tej klasy.

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");
}

Uwagi

Microsoft. IdentityModel.SampleTests.SampleTokenValidationClassTests zawiera przykłady wykorzystania tej klasy do sprawdzania poprawności trywialnych klas weryfikacji tokenów, która zależy od Microsoft. Metody weryfikacji tokenu modelu IdentityModel.

Konstruktory

Nazwa Opis
TestTokenCreator()

Klasa odpowiedzialna za tworzenie tokenów testowych do użycia w implementacjach testów jednostkowych w zależności od Microsoft. Weryfikacja tokenu IdentityModel.

Właściwości

Nazwa Opis
Audience

Pobiera lub ustawia grupę odbiorców na sygnaturę na utworzonych tokenach.

Issuer

Pobiera lub ustawia wystawcę, który ma być sygnaturowany na utworzonych tokenach.

SigningCredentials

Pobiera lub ustawia wartości SigningCredentials używane do podpisywania utworzonych tokenów.

Metody

Nazwa Opis
CreateClaimsSetWithInstanceOverrides()

Tworzy domyślny zestaw oświadczeń na podstawie wartości wystąpienia.

CreateDefaultValidToken()

Tworzy domyślny prawidłowy token testowy na podstawie wartości i SigningCredentials klasyIssuerAudience.

CreateExpiredToken()

Tworzy testowy token JWS, który jest przeszłości jego wygaśnięciem.

CreateJsonPayload(IDictionary<String,Object>)

Tworzy ładunek JSON na podstawie przekazanych IDictionary<TKey,TValue>oświadczeń.

CreateNotYetValidToken()

Tworzy testowy token JWS, który nie jest jeszcze prawidłowy.

CreateToken(Dictionary<String,Object>)

Tworzy token na podstawie przekazanego Dictionary<TKey,TValue>elementu .

CreateToken(SecurityTokenDescriptor)

Tworzy token na podstawie przekazanego SecurityTokenDescriptorelementu .

CreateTokenDescriptorWithInstanceOverrides()

Tworzy wartość domyślną SecurityTokenDescriptor na podstawie wartości wystąpienia.

CreateTokenWithBadAudience()

Tworzy testowy token JWS z odbiorcą, który nie jest zgodny ze skonfigurowaną wartością wystąpienia.

CreateTokenWithBadIssuer()

Tworzy testowy token JWS z wystawcą, który nie jest zgodny ze skonfigurowaną wartością wystąpienia.

CreateTokenWithBadSignatureKey()

Tworzy testowy token JWS podpisany przy użyciu klucza, który nie jest zgodny z skonfigurowaną wartością wystąpienia.

CreateTokenWithFutureIssuedAt()

Tworzy testowy token JWS wystawiony w przyszłości.

CreateTokenWithInvalidSignature()

Tworzy token testowy z podpisem, który nie jest zgodny z ładunkiem.

CreateTokenWithMissingAudience()

Tworzy testowy token JWS z brakującym oświadczeniem odbiorców (aud).

CreateTokenWithMissingExpires()

Tworzy testowy token JWS z brakującym oświadczeniem czasu wygaśnięcia (exp).

CreateTokenWithMissingIssuedAt()

Tworzy testowy token JWS z brakującym oświadczeniem IssuedAt (iat).

CreateTokenWithMissingIssuer()

Tworzy testowy token JWS z brakującym oświadczeniem wystawcy (iss).

CreateTokenWithMissingKey()

Tworzy testowy token JWS bez klucza podpisywania (tj. alg=none, no signature).

CreateTokenWithMissingNotBefore()

Tworzy testowy token JWS z brakującym oświadczeniem NotBefore (nbf).

CreateTokenWithNoSignature()

Tworzy testowy token JWS bez żadnego podpisu.

Dotyczy