66 lines
2.2 KiB
C#
66 lines
2.2 KiB
C#
using JdeScoping.DataAccess.Interfaces;
|
|
using JdeScoping.DataSync.Etl.Destinations;
|
|
using NSubstitute;
|
|
|
|
namespace JdeScoping.DataSync.Tests.Etl.Destinations;
|
|
|
|
public class DbBulkMergeDestinationTests
|
|
{
|
|
[Fact]
|
|
public void Constructor_SetsDestinationName()
|
|
{
|
|
var factory = Substitute.For<IDbConnectionFactory>();
|
|
var dest = new DbBulkMergeDestination(factory, "WorkOrder", new[] { "OrderNumber" });
|
|
Assert.Equal("BulkMerge:WorkOrder", dest.DestinationName);
|
|
}
|
|
|
|
[Fact]
|
|
public void Constructor_NullFactory_ThrowsArgumentNullException()
|
|
{
|
|
Assert.Throws<ArgumentNullException>(() =>
|
|
new DbBulkMergeDestination(null!, "WorkOrder", new[] { "Id" }));
|
|
}
|
|
|
|
[Fact]
|
|
public void Constructor_NullTableName_ThrowsArgumentNullException()
|
|
{
|
|
var factory = Substitute.For<IDbConnectionFactory>();
|
|
Assert.Throws<ArgumentNullException>(() =>
|
|
new DbBulkMergeDestination(factory, null!, new[] { "Id" }));
|
|
}
|
|
|
|
[Fact]
|
|
public void Constructor_EmptyTableName_ThrowsArgumentException()
|
|
{
|
|
var factory = Substitute.For<IDbConnectionFactory>();
|
|
Assert.Throws<ArgumentException>(() =>
|
|
new DbBulkMergeDestination(factory, "", new[] { "Id" }));
|
|
}
|
|
|
|
[Fact]
|
|
public void Constructor_EmptyMatchColumns_ThrowsArgumentException()
|
|
{
|
|
var factory = Substitute.For<IDbConnectionFactory>();
|
|
Assert.Throws<ArgumentException>(() =>
|
|
new DbBulkMergeDestination(factory, "WorkOrder", Array.Empty<string>()));
|
|
}
|
|
|
|
[Fact]
|
|
public void Constructor_NullMatchColumns_ThrowsArgumentNullException()
|
|
{
|
|
var factory = Substitute.For<IDbConnectionFactory>();
|
|
Assert.Throws<ArgumentNullException>(() =>
|
|
new DbBulkMergeDestination(factory, "WorkOrder", null!));
|
|
}
|
|
|
|
[Fact]
|
|
public void Constructor_WithUpdateColumns_Succeeds()
|
|
{
|
|
var factory = Substitute.For<IDbConnectionFactory>();
|
|
var dest = new DbBulkMergeDestination(factory, "WorkOrder",
|
|
new[] { "OrderNumber" },
|
|
updateColumns: new[] { "Status", "Description" });
|
|
Assert.Equal("BulkMerge:WorkOrder", dest.DestinationName);
|
|
}
|
|
}
|