diff --git a/src/Microsoft.Extensions.WebEncoders/EncoderServiceCollectionExtensions.cs b/src/Microsoft.Extensions.WebEncoders/EncoderServiceCollectionExtensions.cs index 80f1987c17..df3946099c 100644 --- a/src/Microsoft.Extensions.WebEncoders/EncoderServiceCollectionExtensions.cs +++ b/src/Microsoft.Extensions.WebEncoders/EncoderServiceCollectionExtensions.cs @@ -11,6 +11,12 @@ namespace Microsoft.Extensions.DependencyInjection { public static class EncoderServiceCollectionExtensions { + /// + /// Adds , and + /// to the specified . + /// + /// The . + /// The instance after the encoders have been added. public static IServiceCollection AddWebEncoders(this IServiceCollection services) { if (services == null) @@ -21,6 +27,13 @@ namespace Microsoft.Extensions.DependencyInjection return AddWebEncoders(services, configureOptions: null); } + /// + /// Adds , and + /// to the specified . + /// + /// The . + /// A callback to configure . + /// The instance after the encoders have been added. public static IServiceCollection AddWebEncoders(this IServiceCollection services, Action configureOptions) { if (services == null) diff --git a/src/Microsoft.Extensions.WebEncoders/EncoderServiceProviderExtensions.cs b/src/Microsoft.Extensions.WebEncoders/EncoderServiceProviderExtensions.cs deleted file mode 100644 index 8d9d2da4e8..0000000000 --- a/src/Microsoft.Extensions.WebEncoders/EncoderServiceProviderExtensions.cs +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using System.Text.Encodings.Web; - -namespace Microsoft.Extensions.WebEncoders -{ - /// - /// Contains extension methods for fetching encoders from an . - /// - public static class EncoderServiceProviderExtensions - { - /// - /// Retrieves an from an . - /// - /// - /// This method is guaranteed never to return null. - /// It will return a default encoder instance if does not contain one or is null. - /// - public static HtmlEncoder GetHtmlEncoder(this IServiceProvider serviceProvider) - { - return (HtmlEncoder)serviceProvider?.GetService(typeof(HtmlEncoder)) ?? HtmlEncoder.Default; - } - - /// - /// Retrieves an from an . - /// - /// - /// This method is guaranteed never to return null. - /// It will return a default encoder instance if does not contain one or is null. - /// - public static JavaScriptEncoder GetJavaScriptEncoder(this IServiceProvider serviceProvider) - { - return (JavaScriptEncoder)serviceProvider?.GetService(typeof(JavaScriptEncoder)) ?? JavaScriptEncoder.Default; - } - - /// - /// Retrieves an from an . - /// - /// - /// This method is guaranteed never to return null. - /// It will return a default encoder instance if does not contain one or is null. - /// - public static UrlEncoder GetUrlEncoder(this IServiceProvider serviceProvider) - { - return (UrlEncoder)serviceProvider?.GetService(typeof(UrlEncoder)) ?? UrlEncoder.Default; - } - } -} diff --git a/test/Microsoft.Extensions.WebEncoders.Tests/EncoderServiceCollectionExtensionsTests.cs b/test/Microsoft.Extensions.WebEncoders.Tests/EncoderServiceCollectionExtensionsTests.cs index 8e060102bb..0178bba2d5 100644 --- a/test/Microsoft.Extensions.WebEncoders.Tests/EncoderServiceCollectionExtensionsTests.cs +++ b/test/Microsoft.Extensions.WebEncoders.Tests/EncoderServiceCollectionExtensionsTests.cs @@ -77,13 +77,13 @@ namespace Microsoft.Extensions.WebEncoders // Assert var serviceProvider = serviceCollection.BuildServiceProvider(); - var htmlEncoder = serviceProvider.GetHtmlEncoder(); + var htmlEncoder = serviceProvider.GetRequiredService(); Assert.Equal("HtmlEncode[[abcde]]", htmlEncoder.Encode("abcde")); - var javaScriptEncoder = serviceProvider.GetJavaScriptEncoder(); + var javaScriptEncoder = serviceProvider.GetRequiredService(); Assert.Equal("JavaScriptEncode[[abcde]]", javaScriptEncoder.Encode("abcde")); - var urlEncoder = serviceProvider.GetUrlEncoder(); + var urlEncoder = serviceProvider.GetRequiredService(); Assert.Equal("a%62c%64e", urlEncoder.Encode("abcde")); } } diff --git a/test/Microsoft.Extensions.WebEncoders.Tests/EncoderServiceProviderExtensionsTests.cs b/test/Microsoft.Extensions.WebEncoders.Tests/EncoderServiceProviderExtensionsTests.cs deleted file mode 100644 index 01492e759e..0000000000 --- a/test/Microsoft.Extensions.WebEncoders.Tests/EncoderServiceProviderExtensionsTests.cs +++ /dev/null @@ -1,103 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using System; -using System.Text.Encodings.Web; -using Xunit; - -namespace Microsoft.Extensions.WebEncoders -{ - public class EncoderServiceProviderExtensionsTests - { - [Fact] - public void GetHtmlEncoder_ServiceProviderDoesNotHaveEncoder_UsesDefault() - { - // Arrange - var serviceProvider = new TestServiceProvider(); - - // Act - var retVal = serviceProvider.GetHtmlEncoder(); - - // Assert - Assert.Same(HtmlEncoder.Default, retVal); - } - - [Fact] - public void GetHtmlEncoder_ServiceProviderHasEncoder_ReturnsRegisteredInstance() - { - // Arrange - var expectedEncoder = HtmlEncoder.Default; - var serviceProvider = new TestServiceProvider() { Service = expectedEncoder }; - - // Act - var retVal = serviceProvider.GetHtmlEncoder(); - - // Assert - Assert.Same(expectedEncoder, retVal); - } - - [Fact] - public void GetJavaScriptEncoder_ServiceProviderDoesNotHaveEncoder_UsesDefault() - { - // Arrange - var serviceProvider = new TestServiceProvider(); - - // Act - var retVal = serviceProvider.GetJavaScriptEncoder(); - - // Assert - Assert.Same(JavaScriptEncoder.Default, retVal); - } - - [Fact] - public void GetJavaScriptEncoder_ServiceProviderHasEncoder_ReturnsRegisteredInstance() - { - // Arrange - var expectedEncoder = JavaScriptEncoder.Default; - var serviceProvider = new TestServiceProvider() { Service = expectedEncoder }; - - // Act - var retVal = serviceProvider.GetJavaScriptEncoder(); - - // Assert - Assert.Same(expectedEncoder, retVal); - } - - [Fact] - public void GetUrlEncoder_ServiceProviderDoesNotHaveEncoder_UsesDefault() - { - // Arrange - var serviceProvider = new TestServiceProvider(); - - // Act - var retVal = serviceProvider.GetUrlEncoder(); - - // Assert - Assert.Same(UrlEncoder.Default, retVal); - } - - [Fact] - public void GetUrlEncoder_ServiceProviderHasEncoder_ReturnsRegisteredInstance() - { - // Arrange - var expectedEncoder = UrlEncoder.Default; - var serviceProvider = new TestServiceProvider() { Service = expectedEncoder }; - - // Act - var retVal = serviceProvider.GetUrlEncoder(); - - // Assert - Assert.Same(expectedEncoder, retVal); - } - - private class TestServiceProvider : IServiceProvider - { - public object Service { get; set; } - - public object GetService(Type serviceType) - { - return Service; - } - } - } -} diff --git a/test/Microsoft.Extensions.WebEncoders.Tests/project.json b/test/Microsoft.Extensions.WebEncoders.Tests/project.json index 4d81779a7c..62fb30b458 100644 --- a/test/Microsoft.Extensions.WebEncoders.Tests/project.json +++ b/test/Microsoft.Extensions.WebEncoders.Tests/project.json @@ -2,7 +2,6 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "1.0.0-*", "Microsoft.Extensions.WebEncoders": "1.0.0-*", - "Newtonsoft.Json": "6.0.6", "xunit.runner.aspnet": "2.0.0-aspnet-*" }, "commands": { @@ -15,10 +14,6 @@ }, "frameworks": { "dnx451": { }, - "dnxcore50": { - "dependencies": { - "System.Text.Encoding.Extensions": "4.0.11-*" - } - } + "dnxcore50": { } } }