81 lines
2.3 KiB
C#
81 lines
2.3 KiB
C#
using Microsoft.Extensions.DependencyInjection;
|
|
using OwnerNumberMigration.ValueParsing;
|
|
|
|
namespace OwnerNumberMigrationTest.ValueParsing;
|
|
|
|
public class ParsingStrategyFactoryTest
|
|
{
|
|
private readonly IParsingStrategyFactory _factory;
|
|
|
|
private readonly SingleValueArrayStrategy _singleArray = new();
|
|
private readonly CommaStringArrayStrategy _comma = new();
|
|
private readonly SingleValueStrategy _single = new();
|
|
|
|
public ParsingStrategyFactoryTest()
|
|
{
|
|
var services = new ServiceCollection();
|
|
services.AddSingleton(_singleArray);
|
|
services.AddSingleton(_comma);
|
|
services.AddSingleton(_single);
|
|
|
|
_factory = new ParsingStrategyFactory(services.BuildServiceProvider());
|
|
}
|
|
|
|
[Test]
|
|
public void CreateParsingStrategy_PersonNumber_ReturnsSingleArrayStrategy()
|
|
{
|
|
const string Attribute = "PersonNumber";
|
|
|
|
var strategy = _factory.CreateParsingStrategy<string[]>(Attribute);
|
|
|
|
Assert.AreSame(_singleArray, strategy);
|
|
}
|
|
|
|
[Test]
|
|
public void CreateParsingStrategy_PersonNumbers_ReturnsCommaStrategy()
|
|
{
|
|
const string Attribute = "PersonNumbers";
|
|
|
|
var strategy = _factory.CreateParsingStrategy<string[]>(Attribute);
|
|
|
|
Assert.AreSame(_comma, strategy);
|
|
}
|
|
|
|
[Test]
|
|
public void CreateParsingStrategy_OrganizationNumber_ReturnsSingleArrayStrategy()
|
|
{
|
|
const string Attribute = "OrganizationNumber";
|
|
|
|
var strategy = _factory.CreateParsingStrategy<string[]>(Attribute);
|
|
|
|
Assert.AreSame(_singleArray, strategy);
|
|
}
|
|
|
|
[Test]
|
|
public void CreateParsingStrategy_OrganizationNumbers_ReturnsCommaStrategy()
|
|
{
|
|
const string Attribute = "OrganizationNumbers";
|
|
|
|
var strategy = _factory.CreateParsingStrategy<string[]>(Attribute);
|
|
|
|
Assert.AreSame(_comma, strategy);
|
|
}
|
|
|
|
[Test]
|
|
public void CreateParsingStrategy_AccountNumber_ReturnsSingleValueStrategy()
|
|
{
|
|
const string Attribute = "AccountNumber";
|
|
|
|
var strategy = _factory.CreateParsingStrategy<string>(Attribute);
|
|
|
|
Assert.AreSame(_single, strategy);
|
|
}
|
|
|
|
[Test]
|
|
public void CreateParsingStrategy_UnkownValue_ThrowsException()
|
|
{
|
|
var attribute = Guid.NewGuid().ToString();
|
|
|
|
Assert.Throws<NotImplementedException>(() => _factory.CreateParsingStrategy<dynamic>(attribute));
|
|
}
|
|
} |