/// <summary> /// Adds a type representing an <see cref="ICompressionProvider"/>. /// </summary> /// <param name="providerType">Type representing an <see cref="ICompressionProvider"/>.</param> /// <remarks> /// Provider instances will be created using an <see cref="IServiceProvider" />. /// </remarks> public void Add(Type providerType) { if (providerType == null) { throw new ArgumentNullException(nameof(providerType)); } if (!typeof(ICompressionProvider).IsAssignableFrom(providerType)) { throw new ArgumentException($"The provider must implement {nameof(ICompressionProvider)}.", nameof(providerType)); } var factory = new CompressionProviderFactory(providerType); Add(factory); }
/// <summary> /// Adds a type representing an <see cref="ICompressionProvider"/>. /// </summary> /// <param name="providerType">Type representing an <see cref="ICompressionProvider"/>.</param> /// <remarks> /// Provider instances will be created using an <see cref="IServiceProvider" />. /// </remarks> public void Add([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] Type providerType) { if (providerType == null) { throw new ArgumentNullException(nameof(providerType)); } if (!typeof(ICompressionProvider).IsAssignableFrom(providerType)) { throw new ArgumentException($"The provider must implement {nameof(ICompressionProvider)}.", nameof(providerType)); } var factory = new CompressionProviderFactory(providerType); Add(factory); }
public static TheoryData <JWEDecompressionTheoryData> JWEDecompressionTheoryData() { var compressionProviderFactoryForCustom = new CompressionProviderFactory() { CustomCompressionProvider = new SampleCustomCompressionProvider("MyAlgorithm") }; var compressionProviderFactoryForCustom2 = new CompressionProviderFactory() { CustomCompressionProvider = new SampleCustomCompressionProviderDecompressAndCompressAlwaysFail("MyAlgorithm") }; return(new TheoryData <JWEDecompressionTheoryData>() { new JWEDecompressionTheoryData { ValidationParameters = Default.JWECompressionTokenValidationParameters, JWECompressionString = ReferenceTokens.JWECompressionTokenWithDEF, CompressionProviderFactory = CompressionProviderFactory.Default, TestId = "ValidAlgorithm" }, new JWEDecompressionTheoryData { ValidationParameters = Default.JWECompressionTokenValidationParameters, JWECompressionString = ReferenceTokens.JWECompressionTokenWithUnsupportedAlgorithm, CompressionProviderFactory = CompressionProviderFactory.Default, TestId = "InvalidAlgorithm", ExpectedException = new ExpectedException(typeof(SecurityTokenDecompressionFailedException), "IDX10679:", typeof(NotSupportedException)) }, new JWEDecompressionTheoryData { ValidationParameters = Default.JWECompressionTokenValidationParameters, JWECompressionString = ReferenceTokens.JWEInvalidCompressionTokenWithDEF, CompressionProviderFactory = CompressionProviderFactory.Default, TestId = "InvalidToken", ExpectedException = new ExpectedException(typeof(SecurityTokenDecompressionFailedException), "IDX10679:", typeof(InvalidDataException)) }, new JWEDecompressionTheoryData { ValidationParameters = Default.JWECompressionTokenValidationParameters, JWECompressionString = ReferenceTokens.JWECompressionTokenWithDEF, CompressionProviderFactory = null, TestId = "NullCompressionProviderFactory", ExpectedException = ExpectedException.ArgumentNullException("IDX10000:") }, new JWEDecompressionTheoryData { ValidationParameters = Default.JWECompressionTokenValidationParameters, CompressionProviderFactory = compressionProviderFactoryForCustom, JWECompressionString = ReferenceTokens.JWECompressionTokenWithCustomAlgorithm, TestId = "CustomCompressionProviderSucceeds" }, new JWEDecompressionTheoryData { ValidationParameters = Default.JWECompressionTokenValidationParameters, JWECompressionString = ReferenceTokens.JWEInvalidCompressionTokenWithDEF, CompressionProviderFactory = compressionProviderFactoryForCustom2, TestId = "CustomCompressionProviderFails", ExpectedException = new ExpectedException(typeof(SecurityTokenDecompressionFailedException), "IDX10679:", typeof(InvalidOperationException)) } }); }