public void Replace() { // Arrange IEnumerable <ITupleReplace> replaces = new List <ITupleReplace>() { CreateReplace("A", "Z"), CreateReplace("B", "V", "B"), }; var csvDataOk = new CsvData(); var aListA = new List <string>() { "A1", "A2", "A3", "A4" }; var aListB = new List <string>() { "AB1", "AB2", "AB3", "AB4" }; csvDataOk.Add("A", aListA); csvDataOk.Add("B", aListB); var lines = csvDataOk.GetLines(); // Act var result = CsvActionCreator.Create( replaces); // Assert foreach (var item in result) { lines.ToList().ForEach(item); } lines.ToList().ForEach( x => { Assert.IsTrue(x["A"].Contains("Z")); Assert.IsTrue(!x["A"].Contains("A")); Assert.IsTrue(x["B"].Contains("Z")); Assert.IsTrue(!x["B"].Contains("A")); Assert.IsTrue(x["B"].Contains("V")); Assert.IsTrue(!x["B"].Contains("B")); } ); }
internal static IServiceCollection AddConfiguration(this IServiceCollection services, IConfiguration config) { services.AddTransient(x => config); foreach (var item in CsvLineRuleCreator.Create(config.output)) { services.AddTransient(x => item); } foreach (var item in CsvActionCreator.Create(config.output.replaces)) { services.AddTransient(x => item); } foreach (var item in CsvActionCreator.Create(config.output.types)) { services.AddTransient(x => item); } return(services); }
public void Types() { // Arrange IEnumerable <ITypeColumn> types = new List <ITypeColumn>() { CreateType(ETypeColumn.text, "Z"), CreateType(ETypeColumn.number, "B"), CreateType(ETypeColumn.number, "C") }; var csvDataOk = new CsvData(); var aListA = new List <string>() { "A1", "A2", "A3", "A4" }; var aListB = new List <string>() { "1", "2", "3", "4" }; var aListC = new List <string>() { "c1", "c2", "c3", "c4" }; csvDataOk.Add("A", aListA); csvDataOk.Add("B", aListB); csvDataOk.Add("C", aListC); var lines = csvDataOk.GetLines(); // Act var result = CsvActionCreator.Create(types).ToList(); foreach (var item in lines) { result[0](item); result[1](item); Assert.ThrowsException <FormatException>(() => result[2](item)); } // Assert }