TestTokenCreator Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Clase responsable de crear tokens de prueba para su uso en implementaciones de pruebas unitarias en función de Microsoft. Validación de tokens de IdentityModel.
public class TestTokenCreator
type TestTokenCreator = class
Public Class TestTokenCreator
- Herencia
-
TestTokenCreator
Ejemplos
A continuación se proporciona un ejemplo de cómo se podría aprovechar esta clase mediante un marco de pruebas común, Xunit. Sin embargo, los conceptos básicos se aplicarán a las pruebas unitarias mediante cualquier marco de trabajo.
En el ejemplo se imagina una clase ClassWithMicrosoftIdentityModelDependency, que expone ValidateToken, un método que llama al Microsoft. La biblioteca IdentityModel y GetTokenValidationParameters, que recupera realmente el TokenValidationParameters código sometido a prueba. Tenga en cuenta que es importante usar el real TokenValidationParameters , ya que permitirá que las pruebas unitarias confirmen realmente si hay un hueco en la validación (por ejemplo, se deshabilita cierta validación importante, ValidateAudience, ValidateIssuer, etc.).
En el ejemplo de código siguiente, generateTokenToTest debe ser uno de los métodos de esta clase.
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");
}
Comentarios
Microsoft. IdentityModel.SampleTests.SampleTokenValidationClassTests contiene ejemplos sobre cómo se puede aprovechar esta clase para validar una clase de validación de tokens trivial que depende de Microsoft. Métodos de validación de tokens de IdentityModel.
Constructores
| Nombre | Description |
|---|---|
| TestTokenCreator() |
Clase responsable de crear tokens de prueba para su uso en implementaciones de pruebas unitarias en función de Microsoft. Validación de tokens de IdentityModel. |
Propiedades
| Nombre | Description |
|---|---|
| Audience |
Obtiene o establece la audiencia que se va a marcar en los tokens creados. |
| Issuer |
Obtiene o establece el emisor que se va a marcar en los tokens creados. |
| SigningCredentials |
Obtiene o establece los signingCredentials usados para firmar los tokens creados. |
Métodos
| Nombre | Description |
|---|---|
| CreateClaimsSetWithInstanceOverrides() |
Crea un conjunto predeterminado de notificaciones en función de los valores de instancia. |
| CreateDefaultValidToken() |
Crea un token de prueba válido predeterminado basado en los valores y AudienceSigningCredentials de Issuerla clase . |
| CreateExpiredToken() |
Crea un token de JWS de prueba que está después de su expiración. |
| CreateJsonPayload(IDictionary<String,Object>) |
Crea una carga JSON basada en el pasado IDictionary<TKey,TValue>de notificaciones. |
| CreateNotYetValidToken() |
Crea un token de JWS de prueba que aún no es válido. |
| CreateToken(Dictionary<String,Object>) |
Crea un token basado en el objeto pasado Dictionary<TKey,TValue>. |
| CreateToken(SecurityTokenDescriptor) |
Crea un token basado en el objeto pasado SecurityTokenDescriptor. |
| CreateTokenDescriptorWithInstanceOverrides() |
Crea un valor predeterminado SecurityTokenDescriptor basado en los valores de instancia. |
| CreateTokenWithBadAudience() |
Crea un token JWS de prueba con una audiencia que no coincide con el valor de instancia configurado. |
| CreateTokenWithBadIssuer() |
Crea un token JWS de prueba con un emisor que no coincide con el valor de instancia configurado. |
| CreateTokenWithBadSignatureKey() |
Crea un token JWS de prueba firmado con una clave que no coincide con el valor de instancia configurado. |
| CreateTokenWithFutureIssuedAt() |
Crea un token de JWS de prueba que se emite en el futuro. |
| CreateTokenWithInvalidSignature() |
Crea un token de prueba con una firma que no coincide con la carga. |
| CreateTokenWithMissingAudience() |
Crea un token de JWS de prueba con una notificación de audiencia (aud) que falta. |
| CreateTokenWithMissingExpires() |
Crea un token JWS de prueba con una notificación de tiempo de expiración (exp) que falta. |
| CreateTokenWithMissingIssuedAt() |
Crea un token JWS de prueba con una notificación IssuedAt (iat) que falta. |
| CreateTokenWithMissingIssuer() |
Crea un token de JWS de prueba con una notificación de emisor que falta (iss). |
| CreateTokenWithMissingKey() |
Crea un token JWS de prueba sin una clave de firma (es decir, alg=none, sin firma). |
| CreateTokenWithMissingNotBefore() |
Crea un token JWS de prueba con una notificación NotBefore (nbf) que falta. |
| CreateTokenWithNoSignature() |
Crea un token de JWS de prueba sin ninguna firma. |