Exemplo n.º 1
0
        public void GivenSubcategoriesInQuery_ThenSpecThatFiltersBySubcategoriesIsReturned()
        {
            var factory = new TransactionSpecificationFactory();

            var returnedSpec = factory.Create(new GetTransactionsQuery
            {
                Subcategories = new List <string> {
                    "subcategory1", "subcategory2"
                }
            });


            Assert.True(returnedSpec.IsSatisfied(new Transaction
            {
                Subcategory = "subcategory1"
            }));
            Assert.True(returnedSpec.IsSatisfied(new Transaction
            {
                Subcategory = "subcategory2"
            }));
            Assert.False(returnedSpec.IsSatisfied(new Transaction
            {
                Subcategory = "invalid subcategory"
            }));
        }
Exemplo n.º 2
0
        public void GivenTypeAndCategoriesInQuery_ThenSpecThatFiltersByTypeAndCategoriesIsReturned()
        {
            var factory = new TransactionSpecificationFactory();

            var returnedSpec = factory.Create(new GetTransactionsQuery
            {
                Type       = TransactionType.Expense,
                Categories = new List <string> {
                    "category1", "category2"
                }
            });


            Assert.True(returnedSpec.IsSatisfied(new Transaction
            {
                TransactionType = "expense",
                Category        = "category1"
            }));
            Assert.True(returnedSpec.IsSatisfied(new Transaction
            {
                TransactionType = "expense",
                Category        = "category2"
            }));
            Assert.False(returnedSpec.IsSatisfied(new Transaction
            {
                TransactionType = "expense",
                Category        = "invalid subcategory"
            }));
            Assert.False(returnedSpec.IsSatisfied(new Transaction
            {
                TransactionType = "income",
                Category        = "category1"
            }));
        }
Exemplo n.º 3
0
        public void GivenNoFilterParametersInQuery_ThenEmptyAndSpecificationReturned()
        {
            var factory      = new TransactionSpecificationFactory();
            var returnedSpec = factory.Create(new GetTransactionsQuery());


            Assert.True(returnedSpec.IsSatisfied(new Transaction()));
        }
Exemplo n.º 4
0
        public async Task <List <Transaction> > GetTransactionsAsync(GetTransactionsQuery queryParams)
        {
            var dateRange = new DateRange(queryParams.Start.GetValueOrDefault(DateTime.MinValue),
                                          queryParams.End.GetValueOrDefault(DateTime.MaxValue));
            var spec = _specificationFactory.Create(queryParams);

            var filteredTransactions = await _repository.GetTransactions(_userContext.UserId, dateRange, spec);

            return(filteredTransactions);
        }
Exemplo n.º 5
0
        public void GivenTransactionTypeInQuery_ThenSpecThatFiltersByTypeIsReturned()
        {
            var factory = new TransactionSpecificationFactory();

            var returnedSpec = factory.Create(new GetTransactionsQuery
            {
                Type = TransactionType.Expense
            });


            Assert.True(returnedSpec.IsSatisfied(new Transaction
            {
                TransactionType = "expense"
            }));
            Assert.False(returnedSpec.IsSatisfied(new Transaction
            {
                TransactionType = "income"
            }));
        }
Exemplo n.º 6
0
        public void GivenPayerPayeeIdsInQuery_ThenSpecThatFiltersByPayerPayeeIdsIsReturned()
        {
            var factory = new TransactionSpecificationFactory();

            var returnedSpec = factory.Create(new GetTransactionsQuery
            {
                PayerPayeeIds = new List <string> {
                    "payer1", "payer2"
                }
            });

            Assert.True(returnedSpec.IsSatisfied(new Transaction
            {
                PayerPayeeId = "payer1"
            }));
            Assert.True(returnedSpec.IsSatisfied(new Transaction
            {
                PayerPayeeId = "payer2"
            }));
            Assert.False(returnedSpec.IsSatisfied(new Transaction
            {
                PayerPayeeId = "payer3"
            }));
        }