aspnetcore/test/Microsoft.Extensions.WebEnc.../EncoderServiceProviderExten...

104 lines
3.0 KiB
C#

// 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;
}
}
}
}