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>());
            }
Пример #2
0
            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>());
            }