public void WhenNullOrWhiteSpaceFilename_ShouldNotWriteToProductionAndDebugFiles(string fileName) { //---------------Arrange------------------- var fileSystem = Substitute.For <IFileSystem>(); var writer = new CompositeCsvFileWriter(fileSystem); var customers = new CustomerTestDataFactory().CreateCustomers(5); //---------------Act---------------- writer.Write(fileName, customers); //---------------Assert ---------------------- fileSystem.DidNotReceive().WriteLine(Arg.Any <string>(), Arg.Any <string>()); fileSystem.DidNotReceive().WriteLine(Arg.Any <string>(), Arg.Any <string>()); }
public void WhenNoDuplicateCustomers_ShouldRemoveDuplicates() { //---------------Arrange------------------- var expected = 12; var totalRecords = 12; var removeDuplicatesStrategy = new RemoveDuplicatesStrategy(); var customers = new CustomerTestDataFactory().CreateCustomers(totalRecords); //---------------Act---------------- var result = removeDuplicatesStrategy.Apply(customers); //---------------Assert ---------------------- Assert.AreEqual(expected, result.Count); }
public void Apply_WhenDuplicateCustomers_ShouldReturnOriginalInput() { //---------------Arrange------------------- var expected = 12; var numberOfRecords = 12; var strategy = new NullDuplicatesStrategy(); var duplicateCount = 2; var customers = new CustomerTestDataFactory() .CreateCustomersWithDuplicates(numberOfRecords, duplicateCount); //---------------Act---------------- var result = strategy.Apply(customers); //---------------Assert ---------------------- Assert.AreEqual(expected, result.Count); Assert.AreEqual(result, customers); }
public void WhenNotNullCustomers_ShouldWriteToProductionAndDebugFiles() { //---------------Arrange------------------- var productionBatchSize = 15000; var debugBatchSize = 20; var numberOfRecords = 15003; var fileName = "file.csv"; var fileSystem = Substitute.For <IFileSystem>(); var writer = new CompositeCsvFileWriter(fileSystem); var customers = new CustomerTestDataFactory().CreateCustomersWithDuplicates(numberOfRecords, 2); //---------------Act---------------- writer.Write(fileName, customers); //---------------Assert ---------------------- fileSystem.Received(productionBatchSize).WriteLine("1_file.csv", Arg.Any <string>()); fileSystem.Received(2).WriteLine("2_file.csv", Arg.Any <string>()); fileSystem.Received(debugBatchSize).WriteLine("1_debug_file.csv", Arg.Any <string>()); fileSystem.Received(3).WriteLine("751_debug_file.csv", Arg.Any <string>()); }