feat(etl): add MapOrdinal override to ColumnDropTransformer
This commit is contained in:
@@ -63,4 +63,7 @@ public class ColumnDropTransformer : DataTransformerBase
|
||||
|
||||
/// <inheritdoc />
|
||||
public override bool IsDBNull(int ordinal, IDataReader source) => source.IsDBNull(_ordinalMap![ordinal]);
|
||||
|
||||
/// <inheritdoc />
|
||||
public override int MapOrdinal(int transformedOrdinal, IDataReader source) => _ordinalMap![transformedOrdinal];
|
||||
}
|
||||
|
||||
@@ -71,6 +71,21 @@ public class ColumnDropTransformerTests
|
||||
Assert.Equal("Value", reader.GetName(2));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void MapOrdinal_DroppedColumn_MapsCorrectly()
|
||||
{
|
||||
// Arrange - drop column B (ordinal 1), so C becomes ordinal 1
|
||||
var source = CreateMockReader(new[] { "A", "B", "C" });
|
||||
var transformer = new ColumnDropTransformer("B");
|
||||
transformer.Transform(source);
|
||||
|
||||
// Act - transformed ordinal 1 should map to source ordinal 2 (C)
|
||||
var result = transformer.MapOrdinal(1, source);
|
||||
|
||||
// Assert
|
||||
Assert.Equal(2, result);
|
||||
}
|
||||
|
||||
private static IDataReader CreateMockReader(string[] columns, object[]? values = null)
|
||||
{
|
||||
var reader = Substitute.For<IDataReader>();
|
||||
|
||||
Reference in New Issue
Block a user