public void ReturnAllTransactions_WhenGetTransactions()
        {
            var expectedResult = new List <Transaction>()
            {
                new Transaction()
                {
                    Id                     = 1,
                    Sum                    = -10,
                    Description            = "McDonalds",
                    DateTime               = "2018-04-28",
                    AccountToIncreaseName  = "Cafe",
                    AccountToSubstractName = "Salary"
                }
            };

            var actualResult = transactionsService.GetTransactions();

            actualResult.Should().BeEquivalentTo(expectedResult);
        }
예제 #2
0
        public ActionResult FilterTransactions(int?transactionType = null, int?currency = null)
        {
            TransactionsService transactionsService = new TransactionsService();
            TransactionsFilter  transactionsFilter  = new TransactionsFilter();

            if (transactionType != null)
            {
                transactionsFilter.Action = ((Variables.ActionValues)transactionType).ToString();
                ViewBag.SelectedAction    = transactionType;
            }
            if (currency != null)
            {
                transactionsFilter.CurrencyCode = ((Variables.CurrencyCodeValues)currency).ToString();
                ViewBag.SelectedCurrency        = currency;
            }

            return(View("Index", transactionsService.GetTransactions(transactionsFilter)));
        }
예제 #3
0
        public async Task GetTransactionsTest()
        {
            string lowellRef = "12345678";
            string uri       = $"{_portalSettings.GatewayEndpoint}api/ViewTransactions/GetTransactions";

            ApiTransactionsWrapper apiModel = new ApiTransactionsWrapper()
            {
                Payments = new List <ApiTransaction>()
                {
                    new ApiTransaction()
                    {
                        Amount         = 111.11M,
                        Date           = DateTime.Now.AddDays(-180),
                        Description    = "Description1",
                        Type           = "Type1",
                        RollingBalance = 999.99M
                    },
                    new ApiTransaction()
                    {
                        Amount         = 222.22M,
                        Date           = DateTime.Now.AddDays(-150),
                        Description    = "Description2",
                        Type           = "Type2",
                        RollingBalance = 888.88M
                    },
                    new ApiTransaction()
                    {
                        Amount         = 333.33M,
                        Date           = DateTime.Now.AddDays(-120),
                        Description    = "Description3",
                        Type           = "Type3",
                        RollingBalance = 777.77M
                    },
                    new ApiTransaction()
                    {
                        Amount         = 444.44M,
                        Date           = DateTime.Now.AddDays(-90),
                        Description    = "Description4",
                        Type           = "Type4",
                        RollingBalance = 666.66M
                    },
                    new ApiTransaction()
                    {
                        Amount         = 333.33M,
                        Date           = DateTime.Now.AddDays(-60),
                        Description    = "Description5",
                        Type           = "Type5",
                        RollingBalance = 555.55M
                    },
                }
            };

            List <Transaction> serviceModel = new List <Transaction>()
            {
                new Transaction()
                {
                    Amount         = 111.11M,
                    Date           = DateTime.Now.AddDays(-180),
                    Description    = "Description1",
                    Type           = "Type1",
                    RollingBalance = 999.99M
                },
                new Transaction()
                {
                    Amount         = 222.22M,
                    Date           = DateTime.Now.AddDays(-150),
                    Description    = "Description2",
                    Type           = "Type2",
                    RollingBalance = 888.88M
                },
                new Transaction()
                {
                    Amount         = 333.33M,
                    Date           = DateTime.Now.AddDays(-120),
                    Description    = "Description3",
                    Type           = "Type3",
                    RollingBalance = 777.77M
                },
                new Transaction()
                {
                    Amount         = 444.44M,
                    Date           = DateTime.Now.AddDays(-90),
                    Description    = "Description4",
                    Type           = "Type4",
                    RollingBalance = 666.66M
                },
                new Transaction()
                {
                    Amount         = 333.33M,
                    Date           = DateTime.Now.AddDays(-60),
                    Description    = "Description5",
                    Type           = "Type5",
                    RollingBalance = 555.55M
                },
            };

            this._restClient.Setup(x =>
                                   x.PostAsync <ApiAccountReferenceModel, ApiTransactionsWrapper>(uri, It.Is <ApiAccountReferenceModel>(m =>
                                                                                                                                        m.AccountReference == "12345678"))).Returns(Task.FromResult(apiModel));
            this._mapper.Setup(x => x.Map <List <ApiTransaction>, List <Transaction> >(apiModel.Payments)).Returns(serviceModel);

            List <Transaction> result = await _service.GetTransactions(lowellRef);

            string expectedString = JsonConvert.SerializeObject(serviceModel);
            string resultString   = JsonConvert.SerializeObject(result);

            Assert.AreEqual(expectedString, resultString);
        }
예제 #4
0
        public async Task GetTransactions()
        {
            var response = JsonSerializer.Deserialize <TransactionsResponse>(@"
                {
                    ""data"": {
                    ""transactions"": [
                        {
                            ""id"": ""asdf1234-asdf-1234-asdf-1234asdf1234"",
                            ""date"": ""1999-12-31"",
                            ""amount"": 20,
                            ""memo"": null,
                            ""cleared"": ""reconciled"",
                            ""approved"": true,
                            ""flag_color"": null,
                            ""account_id"": ""asdf1234-asdf-1234-asdf-1234asdf1234"",
                            ""account_name"": ""Asdf 1234"",
                            ""payee_id"": ""asdf1234-asdf-1234-asdf-1234asdf1234"",
                            ""payee_name"": ""Asdf 1234"",
                            ""category_id"": ""asdf1234-asdf-1234-asdf-1234asdf1234"",
                            ""category_name"": ""Asdf 1234"",
                            ""transfer_account_id"": null,
                            ""transfer_transaction_id"": null,
                            ""matched_transaction_id"": null,
                            ""import_id"": ""YNAB:1234:1999-12-31:1"",
                            ""deleted"": false,
                            ""subtransactions"": []
                        },
                        {
                            ""id"": ""asdf1235-asdf-1235-asdf-1235asdf1235"",
                            ""date"": ""1999-12-31"",
                            ""amount"": -12100,
                            ""memo"": null,
                            ""cleared"": ""uncleared"",
                            ""approved"": true,
                            ""flag_color"": null,
                            ""account_id"": ""asdf1235-asdf-1235-asdf-1235asdf1235"",
                            ""account_name"": ""Asdf 1235"",
                            ""payee_id"": ""asdf1235-asdf-1235-asdf-1235asdf1235"",
                            ""payee_name"": ""Asdf 1234"",
                            ""category_id"": ""asdf1235-asdf-1235-asdf-1235asdf1235"",
                            ""category_name"": ""Asdf 1235"",
                            ""transfer_account_id"": null,
                            ""transfer_transaction_id"": null,
                            ""matched_transaction_id"": null,
                            ""import_id"": ""YNAB:1235:1999-12-31:1"",
                            ""deleted"": false,
                            ""subtransactions"": []
                        }
                    ],
                    ""server_knowledge"": 54321
                    }
                }", PascalToSnakeNamingPolicy.Options);

            var mockOptions = new Mock <IOptions <YnabHostOptions> >();

            mockOptions.Setup(mock => mock.Value).Returns(new YnabHostOptions {
                EndPoint = string.Empty, BudgetId = "zxcv3214-zxcv-3214-zxcv-3214zxcv3214"
            });

            var mockApiService = new Mock <IYnabApiService>();

            mockApiService.Setup(mock => mock.Download <TransactionsResponse>(It.IsAny <string>())).ReturnsAsync(response);

            var service = new TransactionsService(mockOptions.Object, mockApiService.Object);
            var result  = await service.GetTransactions();

            Assert.IsNotNull(result);
            Assert.AreEqual(2, result.Count);
            Assert.AreEqual("asdf1234-asdf-1234-asdf-1234asdf1234", result[0].Id);
        }