64 lines
2.0 KiB
C#
64 lines
2.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 Xunit;
|
|
|
|
namespace Microsoft.AspNetCore.Mvc.Formatters.Xml
|
|
{
|
|
public class WrapperProviderFactoryTest
|
|
{
|
|
[Fact]
|
|
public void GetProvider_ReturnsNull_IfTypeDoesNotMatch()
|
|
{
|
|
// Arrange
|
|
var provider = new WrapperProviderFactory(
|
|
typeof(ProblemDetails),
|
|
typeof(ProblemDetailsWrapper),
|
|
_ => null);
|
|
var context = new WrapperProviderContext(typeof(SerializableError), isSerialization: true);
|
|
|
|
// Act
|
|
var result = provider.GetProvider(context);
|
|
|
|
// Assert
|
|
Assert.Null(result);
|
|
}
|
|
|
|
[Fact]
|
|
public void GetProvider_ReturnsNull_IfTypeIsSubtype()
|
|
{
|
|
// Arrange
|
|
var provider = new WrapperProviderFactory(
|
|
typeof(ProblemDetails),
|
|
typeof(ProblemDetailsWrapper),
|
|
_ => null);
|
|
var context = new WrapperProviderContext(typeof(ValidationProblemDetails), isSerialization: true);
|
|
|
|
// Act
|
|
var result = provider.GetProvider(context);
|
|
|
|
// Assert
|
|
Assert.Null(result);
|
|
}
|
|
|
|
[Fact]
|
|
public void GetProvider_ReturnsValue_IfTypeMatches()
|
|
{
|
|
// Arrange
|
|
var expected = new object();
|
|
var providerFactory = new WrapperProviderFactory(
|
|
typeof(ProblemDetails),
|
|
typeof(ProblemDetailsWrapper),
|
|
_ => expected);
|
|
var context = new WrapperProviderContext(typeof(ProblemDetails), isSerialization: true);
|
|
|
|
// Act
|
|
var provider = providerFactory.GetProvider(context);
|
|
var result = provider.Wrap(new ProblemDetails());
|
|
|
|
// Assert
|
|
Assert.Same(expected, result);
|
|
}
|
|
}
|
|
}
|