コード例 #1
0
        public async Task Should_Filter_The_Csv_File_Correctly()
        {
            string csvFileUrl = "https://beezupcdn.blob.core.windows.net/recruitment/bigfile.csv";

            ILogger <CsvReaderService>      logger = Substitute.For <ILogger <CsvReaderService> >();
            ICsvFilterService               csvFilter;
            ICsvReaderService               csvReaderService = new CsvReaderService(logger);
            IAsyncEnumerable <ParsedCsvRow> filteredRows;

            using (IReader csvReader = await csvReaderService.GetCsvReaderAsync(csvFileUrl))
            {
                Assert.NotNull(csvReader);

                if (csvReader != null)
                {
                    csvFilter = new CsvFilterService();

                    filteredRows = csvFilter.FilterCsvOnSumAsync(csvReader);

                    await foreach (ParsedCsvRow row in filteredRows)
                    {
                        Assert.False(string.IsNullOrEmpty(row.Type));
                        Assert.True(Enum.IsDefined(typeof(ParsingResult), row.Type));

                        if (row.Type == Enum.GetName(typeof(ParsingResult), ParsingResult.ok))
                        {
                            Assert.True(row.SumCD > 100);
                            Assert.True(string.IsNullOrEmpty(row.ErrorMessage));
                        }

                        if (row.Type == Enum.GetName(typeof(ParsingResult), ParsingResult.error))
                        {
                            Assert.Null(row.SumCD);
                            Assert.False(string.IsNullOrEmpty(row.ErrorMessage));
                        }
                    }
                }
            }
        }