This commit is contained in:
Zeeshaun
2026-03-13 09:11:35 -05:00
parent f004c8205a
commit c2d6bda458
197 changed files with 14970 additions and 0 deletions
@@ -0,0 +1,32 @@
using OwnerNumberMigration.ValueParsing;
using OwnerNumberMigrationTest.TestDataFactories;
namespace OwnerNumberMigrationTest.ValueParsing;
public class CommaStringArrayStrategyTest
{
private readonly IValueParsingStrategy<string[]> _parsingStrategy = new CommaStringArrayStrategy();
[Test]
public void Parse_StringContainsSingleValue_ReturnsAnArrayContainingOnlyTheValue()
{
var owners = Guid.NewGuid().ToString();
var parsedOwners = _parsingStrategy.Parse(owners);
Assert.AreEqual(1, parsedOwners.Length);
CollectionAssert.Contains(parsedOwners, owners);
}
[Test]
public void Parse_StringContainsCommas_ReturnsAnArrayContainingTheValueSplitOnComma()
{
var ownerCount = new Random(DateTime.Now.Millisecond).Next(3, 10);
var owners = string.Join(",", EnumerableDataSeriesFactory.CreateSeries(() => Guid.NewGuid().ToString(), ownerCount));
var parsedOwners = _parsingStrategy.Parse(owners);
Assert.AreEqual(ownerCount, parsedOwners.Length);
CollectionAssert.AreEquivalent(parsedOwners, owners.Split(","));
}
}
@@ -0,0 +1,81 @@
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));
}
}
@@ -0,0 +1,19 @@
using OwnerNumberMigration.ValueParsing;
namespace OwnerNumberMigrationTest.ValueParsing;
public class SingleValueArrayStrategyTest
{
private readonly IValueParsingStrategy<string[]> _parsingStrategy = new SingleValueArrayStrategy();
[Test]
public void ParseOwners_AllCases_ReturnsAnArrayContainingOnlyTheValue()
{
var owners = Guid.NewGuid().ToString();
var parsedOwners = _parsingStrategy.Parse(owners);
Assert.AreEqual(1, parsedOwners.Length);
CollectionAssert.Contains(parsedOwners, owners);
}
}
@@ -0,0 +1,18 @@
using OwnerNumberMigration.ValueParsing;
namespace OwnerNumberMigrationTest.ValueParsing;
public class SingleValueStrategyTest
{
private readonly IValueParsingStrategy<string> _parsingStrategy = new SingleValueStrategy();
[Test]
public void ParseOwners_AllCases_ReturnsAnArrayContainingOnlyTheValue()
{
var account = Guid.NewGuid().ToString();
var parsedAccount = _parsingStrategy.Parse(account);
Assert.AreEqual(account, parsedAccount);
}
}