Ejemplo n.º 1
0
        public async Task Execute(IJobExecutionContext context)
        {
            var inputPath        = context.Trigger.JobDataMap.GetString("INPUT_PATH");
            var outputDirPath    = context.Trigger.JobDataMap.GetString("OUTPUT_DIR_PATH");
            var completedDirPath = context.Trigger.JobDataMap.GetString("COMPLETED_DIR_PATH");

            var fileName = Path.GetFileName(inputPath);

            var outputPath    = Path.Combine(outputDirPath, fileName);
            var completedPath = Path.Combine(completedDirPath, fileName);

            using (var fileStream = File.OpenRead(inputPath))
            {
                var salesReportCsv = new SalesReportCsvReader(fileStream, "ç");
                salesReportCsv.Process();

                var summary = new SalesReportCsvWriter(salesReportCsv);
                using (var fs = File.OpenWrite(outputPath))
                {
                    summary.Save(fs);
                }
            }

            File.Move(inputPath, completedPath);
        }
        public void MinMaxSalaryValueTest()
        {
            {
                var ms = TestUtils.GetStreamFromString(@"001ç3245678865434çPauloç79228162514264337593543950335");

                var ish = new SalesReportCsvReader(ms, "ç");
                ish.Process();

                Assert.AreEqual(1, ish.Result.Length);

                var sellerPaulo = ish.Result[0] as Seller;

                Assert.AreEqual("3245678865434", sellerPaulo.CPF);
                Assert.AreEqual("Paulo", sellerPaulo.Name);
                Assert.AreEqual(decimal.MaxValue, sellerPaulo.Salary);
            }

            {
                var ms = TestUtils.GetStreamFromString(@"001ç3245678865434çPauloç-79228162514264337593543950335");

                var ish = new SalesReportCsvReader(ms, "ç");
                ish.Process();

                Assert.AreEqual(1, ish.Result.Length);

                var sellerPaulo = ish.Result[0] as Seller;

                Assert.AreEqual("3245678865434", sellerPaulo.CPF);
                Assert.AreEqual("Paulo", sellerPaulo.Name);
                Assert.AreEqual(decimal.MinValue, sellerPaulo.Salary);
            }
        }
        public void AllValuesParsedCorrectly()
        {
            var ms = TestUtils.GetStreamFromString(@"001ç3245678865434çPauloç40000.99
002ç2345675434544345çJose da SilvaçRural
003ç08ç[1-34-10,2-33-1.50,3-40-0.10]çPaulo");

            var ish = new SalesReportCsvReader(ms, "ç");

            ish.Process();

            Assert.AreEqual(3, ish.Result.Length);

            var sellerPaulo  = ish.Sellers[0] as Seller;
            var customerJose = ish.Customers[0] as Customer;
            var sale_08      = ish.Sales[0] as Sale;

            Assert.AreEqual("3245678865434", sellerPaulo.CPF);
            Assert.AreEqual("Paulo", sellerPaulo.Name);
            Assert.AreEqual(40000.99M, sellerPaulo.Salary);

            Assert.AreEqual("2345675434544345", customerJose.CNPJ);
            Assert.AreEqual("Jose da Silva", customerJose.Name);
            Assert.AreEqual("Rural", customerJose.BusinessArea);

            Assert.AreEqual(8, sale_08.SaleId);
            Assert.AreEqual("Paulo", sale_08.SoldBy);
            Assert.AreEqual(3, sale_08.SoldItems.Count);

            {
                var sale_08_item1 = sale_08.SoldItems[0] as ItemSold;

                Assert.AreEqual(1, sale_08_item1.Id);
                Assert.AreEqual(34, sale_08_item1.Quantity);
                Assert.AreEqual(10M, sale_08_item1.Price);
            }

            {
                var sale_08_item2 = sale_08.SoldItems[1] as ItemSold;

                Assert.AreEqual(2, sale_08_item2.Id);
                Assert.AreEqual(33, sale_08_item2.Quantity);
                Assert.AreEqual(1.5M, sale_08_item2.Price);
            }

            {
                var sale_08_item3 = sale_08.SoldItems[2] as ItemSold;

                Assert.AreEqual(3, sale_08_item3.Id);
                Assert.AreEqual(40, sale_08_item3.Quantity);
                Assert.AreEqual(0.1M, sale_08_item3.Price);
            }
        }
        public void SingleItemParse()
        {
            var ms = TestUtils.GetStreamFromString("001;98765432100;John;652500.58");

            var ish = new SalesReportCsvReader(ms, ";");

            ish.Process();

            Assert.AreEqual(1, ish.Result.Length);

            var john = ish.Result[0] as Seller;

            Assert.AreEqual("98765432100", john.CPF);
            Assert.AreEqual("John", john.Name);
            Assert.AreEqual(652500.58M, john.Salary);
        }
Ejemplo n.º 5
0
        public (string, SalesReportCsvWriter) GetSaveText(string text)
        {
            var ish = new SalesReportCsvReader(TestUtils.GetStreamFromString(text), "ç");

            ish.Process();

            var summary = new SalesReportCsvWriter(ish, ";");

            var outputStream = new MemoryStream();

            summary.Save(outputStream);

            using (var sr = new StreamReader(new MemoryStream(outputStream.ToArray())))
            {
                sr.ReadLine();
                return(sr.ReadLine(), summary);
            }
        }
        public void MultipleItemsParse()
        {
            var ms = TestUtils.GetStreamFromString(@"001ç1234567891234çPedroç50000
001ç3245678865434çPauloç40000.99
002ç2345675434544345çJose da SilvaçRural
002ç2345675433444345çEduardo PereiraçRural
003ç10ç[1-10-100,2-30-2.50,3-40-3.10]çPedro
003ç08ç[1-34-10,2-33-1.50,3-40-0.10]çPaulo");

            var ish = new SalesReportCsvReader(ms, "ç");

            ish.Process();

            Assert.AreEqual(6, ish.Result.Length);

            Assert.AreEqual(2, ish.Sellers.Count);
            Assert.AreEqual(2, ish.Customers.Count);
            Assert.AreEqual(2, ish.Sales.Count);
        }
        public void EmptyItemsParsedCorrectly()
        {
            var stringsToTest = new string[] { "003ç08ç[]çPaulo da Silva Santos Oliveira Garcia Ramos Pereira Borba Guimarães",
                                               "003ç08ççPaulo da Silva Santos Oliveira Garcia Ramos Pereira Borba Guimarães",
                                               "003ç08ç[ ]çPaulo da Silva Santos Oliveira Garcia Ramos Pereira Borba Guimarães",
                                               "003ç08ç[     \t\t\t\t     ]çPaulo da Silva Santos Oliveira Garcia Ramos Pereira Borba Guimarães", };

            foreach (var stringToTest in stringsToTest)
            {
                var ms = TestUtils.GetStreamFromString(stringToTest);

                var ish = new SalesReportCsvReader(ms, "ç");
                ish.Process();

                Assert.AreEqual(1, ish.Result.Length, stringToTest);

                var sale_08 = ish.Result[0] as Sale;
                Assert.AreEqual(8, sale_08.SaleId, stringToTest);
                Assert.AreEqual("Paulo da Silva Santos Oliveira Garcia Ramos Pereira Borba Guimarães", sale_08.SoldBy, stringToTest);
                Assert.AreEqual(0, sale_08.SoldItems.Count, stringToTest);
            }
        }