예제 #1
0
        public IEnumerable <Statement> GetStatements(DateTime startDate, DateTime endDate, string bankIds)
        {
            var bankIdsList       = bankIds.Split(",");
            var allStatements     = _statementRepository.GetStatements();
            var desiredStatements = allStatements.Where(s => startDate <= s.Date && s.Date <= endDate && bankIdsList.Contains(s.BankId));

            var countStatements = desiredStatements.Count();

            _logger?.LogInformation("Returning {countStatements} statements for {startDate} to {endDate}", countStatements, startDate, endDate);

            return(desiredStatements.OrderBy(s => s.Date));
        }
        public void Test_GetStatements_DateRange()
        {
            _statementRepo.GetStatements().ReturnsForAnyArgs(new List <Statement> {
                new Statement(new DateTime(2021, 5, 1), "sender", "subject", 100, "bankId"),
                new Statement(new DateTime(2021, 5, 2), "sender", "subject", 100, "bankId"),
                new Statement(new DateTime(2021, 7, 1), "sender", "subject", 100, "bankId"),
            });
            _sut = new StatementService(_statementRepo, null, _finTsExecutor);

            var statements = _sut.GetStatements(new DateTime(2021, 5, 1), new DateTime(2021, 5, 2), "bankId");

            statements.Count().Should().Be(2);
            statements.ToList()[0].Should().BeEquivalentTo(new Statement(new DateTime(2021, 5, 1), "sender", "subject", 100, "bankId"));
            statements.ToList()[1].Should().BeEquivalentTo(new Statement(new DateTime(2021, 5, 2), "sender", "subject", 100, "bankId"));
        }