Exemple #1
0
        public void Test_Expenses_CreditCardStatementFileTests_CreateItem()
        {
            try
            {
                using (var db = new Context())
                {
                    db.Database.EnsureCreated();

                    var owner = Factories.NewAccount("mr bean");
                    db.Accounts.Add(owner);
                    db.SaveChanges();

                    var card = new Financier.Common.Expenses.Models.Card
                    {
                        Owner      = owner,
                        Id         = Guid.NewGuid(),
                        Number     = "1234",
                        Statements = new List <Statement>()
                    };
                    db.Cards.Add(card);
                    db.SaveChanges();

                    var newStatement = new Statement
                    {
                        Card     = card,
                        Id       = Guid.NewGuid(),
                        PostedAt = new DateTime(2019, 2, 1),
                        Items    = new List <Item>()
                    };
                    db.Statements.Add(newStatement);
                    db.SaveChanges();

                    var record = new CreditCardStatementRecord
                    {
                        Amount       = "10.00",
                        Number       = "1234",
                        Description  = "Some new item",
                        ItemId       = "123",
                        PostedAt     = "20181103",
                        TransactedAt = "20181104"
                    };
                    record.CreateItem(newStatement.Id);

                    var dbItem = db.Items.First(i => i.Amount == 10.00M);
                    Assert.That(dbItem.Statement, Is.EqualTo(newStatement));
                }
            }
            catch (Exception exception)
            {
                Assert.Fail(exception.StackTrace);
                Assert.Fail(exception.Message);
            }
        }
            public void Test_Expenses_CreditCardStatementRecord_FindOrCreateStatement_Creates_New_Statement()
            {
                int previousStatementCount;

                using (var db = new Context())
                {
                    previousStatementCount = db.Statements.Count();
                }

                var createdStatement = new CreditCardStatementRecord().FindOrCreateStatement(AllCards[CardIdentifier].Id, PostedAt);

                Assert.That(createdStatement.Id, Is.Not.AnyOf(AllCards.Select(card => card.Value.Id)));

                int newStatementCount;

                using (var db = new Context())
                {
                    newStatementCount = db.Statements.Count();
                }

                Assert.That(newStatementCount, Is.EqualTo(previousStatementCount + 1));
            }
            public void Test_Expenses_CreditCardStatementRecord_FindOrCreateStatement_Creates_Same_Statement()
            {
                var newStatementId = Guid.NewGuid();

                int previousStatementCount;

                using (var db = new Context())
                {
                    previousStatementCount = db.Statements.Count();
                }

                var createdStatement = new CreditCardStatementRecord().FindOrCreateStatement(AllCards[CardIdentifier].Id, PostedAt);

                Assert.That(createdStatement.Id, Is.EqualTo(ExpectedStatementId));

                int newStatementCount;

                using (var db = new Context())
                {
                    newStatementCount = db.Statements.Count();
                }

                Assert.That(newStatementCount, Is.EqualTo(previousStatementCount));
            }