Пример #1
0
        public void Print_NoTransactions_PrintsHeader()
        {
            var emptyList = new List <Transaction>().AsReadOnly();

            _statementPrinter.Print(emptyList);

            _console.Received().PrintLine("DATE | AMOUNT | BALANCE");
        }
Пример #2
0
        public void Always_Print_The_Header()
        {
            var NO_TRANSACTIONS = new List <Transaction>();

            _consoleMock.Setup(mock => mock.WriteLine("DATE | AMOUNT | BALANCE"));

            statementPrinter.Print(NO_TRANSACTIONS);
        }
Пример #3
0
        public void Always_Print_The_Header()
        {
            // Arrange

            // Act
            _statementPrinter.Print(NoTransactions);

            // Assert
            _console.Verify(x => x.PrintLine("DATE | AMOUNT | BALANCE"));
        }
Пример #4
0
        public void PrintEmptyAccountIfNoStatements()
        {
            var statementPrinter = new StatementPrinter();
            var result           = statementPrinter.Print();

            Assert.That(result, Is.EqualTo("Date||Credit||Debit||Balance\n"));
        }
Пример #5
0
        public void Print_WhenNoTransactions_HeaderOnlyIsPrinted()
        {
            var console          = new Mock <IConsole>();
            var statementPrinter = new StatementPrinter(console.Object);

            statementPrinter.Print(new List <Transaction>());
            console.Verify(x => x.PrintLine("DATE | AMOUNT | BALANCE"));
        }
Пример #6
0
        public void AlwaysPrintTheHeader()
        {
            var statmentPrinter = new StatementPrinter(_console.Object);

            statmentPrinter.Print(new List <Transaction>());

            _console.Verify(x => x.WriteLine("DATE | AMOUNT | BALANCE"));
        }
Пример #7
0
        public void Always_Print_The_Header()
        {
            IConsole         console          = Substitute.For <IConsole>();
            StatementPrinter statementPrinter = new StatementPrinter(console);

            statementPrinter.Print(NO_TRANSACTIONS);

            console.Received().PrintLine("DATE | AMOUNT | BALANCE");
        }
Пример #8
0
        public void PrintStatementWithNoTransactions()
        {
            var printer      = new Mock <IPrinter>();
            var sp           = new StatementPrinter(printer.Object);
            var transactions = new List <Transaction>();

            sp.Print(new ReadOnlyCollection <Transaction>(transactions));
            printer.Verify(p => p.Print("Date || Amount || Balance"), Times.Once);
        }
        public void PrintEmptyStatement()
        {
            var printer      = new StatementPrinter();
            var transactions = new List <Transaction>();

            var printedStatement  = printer.Print(transactions);
            var expectedStatement = StatementPrinter.HeaderFormat;

            Assert.Equal(expectedStatement, printedStatement);
        }
Пример #10
0
        public void PrintDeposit()
        {
            var statementPrinter = new StatementPrinter();

            statementPrinter.Add(new PrintableStatement(NewDeposit(1000), new Money(1000)));

            var result = statementPrinter.Print();

            Assert.That(result, Is.EqualTo("Date||Credit||Debit||Balance\n" +
                                           "10/01/2012||||1000||1000\n"));
        }
Пример #11
0
        public void write_header_to_console()
        {
            var mockOutputConsole = new Mock <OutputConsole>();

            var statementPrinter  = new StatementPrinter(mockOutputConsole.Object);
            var transactionLedger = new Mock <ITransactionLedger>();

            statementPrinter.Print(transactionLedger.Object);

            mockOutputConsole.Verify(console => console.WriteLine("date || credit || debit || balance"));
        }
Пример #12
0
        public void StatementPrinter_can_print_transaction(string dateString, int value, string expected)
        {
            var date         = DateTime.Parse(dateString);
            var transaction  = new Transaction(date, value);
            var transactions = new List <Transaction>();

            transactions.Add(transaction);

            var statementPrinter = new StatementPrinter();
            var result           = statementPrinter.Print(transactions);

            Assert.AreEqual(expected, result);
        }
Пример #13
0
        public void StatementPrinter_can_create_statement_as_defined_Kata()
        {
            var transactions = new List <Transaction>()
            {
                new Transaction(DateTime.Parse("14/01/2012"), -500),
                new Transaction(DateTime.Parse("13/01/2012"), 2000),
                new Transaction(DateTime.Parse("10/01/2012"), 1000)
            };

            var printer  = new StatementPrinter();
            var result   = printer.Print(transactions);
            var expected = $"14/01/2012,-500,2500;13/01/2012,2000,3000;10/01/2012,1000,1000;";

            Assert.AreEqual(expected, result);
        }
        public void test_statement_example()
        {
            plays.Add("hamlet", Play.Create("Hamlet", "tragedy"));
            plays.Add("as-like", Play.Create("As You Like It", "comedy"));
            plays.Add("othello", Play.Create("Othello", "tragedy"));

            Invoice invoice = new Invoice("BigCo", new List <Performance> {
                new Performance("hamlet", 55),
                new Performance("as-like", 35),
                new Performance("othello", 40)
            });

            var result = statementPrinter.Print(invoice, plays);

            Approvals.Verify(result);
        }
Пример #15
0
        public void test_statement_with_new_play_types()
        {
            var plays = new Dictionary <string, Play>();

            plays.Add("henry-v", new Play("Henry V", "history"));
            plays.Add("as-like", new Play("As You Like It", "pastoral"));

            Invoice invoice = new Invoice("BigCoII", new List <Performance> {
                new Performance("henry-v", 53),
                new Performance("as-like", 55)
            });

            StatementPrinter statementPrinter = new StatementPrinter();

            Assert.Throws <Exception>(() => statementPrinter.Print(invoice, plays));
        }
        public void PrintStatementWithOneTransaction()
        {
            var ammount      = 100;
            var transaction  = new Transaction(DateTime.Now, ammount, ammount);
            var transactions = new List <Transaction>()
            {
                transaction
            };
            var printer = new StatementPrinter();

            var printedStatement  = printer.Print(transactions);
            var expectedStatement =
                StatementPrinter.HeaderFormat
                + Environment.NewLine + PrintedTransaction(transaction);


            Assert.Equal(expectedStatement, printedStatement);
        }
Пример #17
0
        public void test_statement_html_with_new_play_types()
        {
            var plays = new Dictionary <string, Play>();

            plays.Add("henry-v", Play.CreatePlay("Henry V", "history"));
            plays.Add("as-like", Play.CreatePlay("As You Like It", "pastoral"));

            Invoice invoice = new Invoice("BigCoII", new List <Performance> {
                new Performance("henry-v", 53),
                new Performance("as-like", 55)
            });

            StatementPrinter statementPrinter = new StatementPrinter(new HtmlStatementFormatter());

            var result = statementPrinter.Print(invoice, plays);

            Approvals.Verify(result);
        }
        public void test_statement_exemple()
        {
            var plays = new Dictionary <string, Play>();

            plays.Add("hamlet", new Play("Hamlet", "tragedy"));
            plays.Add("as-like", new Play("As You Like It", "comedy"));
            plays.Add("othello", new Play("Othello", "tragedy"));

            Invoice invoice = new Invoice("BigCo", new List <Performance> {
                new Performance("hamlet", 55),
                new Performance("as-like", 35),
                new Performance("othello", 40)
            });

            StatementPrinter statementPrinter = new StatementPrinter();
            var result = statementPrinter.Print(invoice, plays);

            Approvals.Verify(result);
        }
Пример #19
0
        public void Print_WhenMultipleTransactions_TransactionsPrintedInReverseChronologicalOrder()
        {
            var console          = new Mock <IConsole>();
            var statementPrinter = new StatementPrinter(console.Object);

            var transactions = new List <Transaction>
            {
                new Transaction(-50, "10/04/2014"),
                new Transaction(100, "12/04/2014"),
                new Transaction(1000, "11/04/2014")
            };

            statementPrinter.Print(transactions);

            console.Verify(x => x.PrintLine("DATE | AMOUNT | BALANCE"));
            console.Verify(x => x.PrintLine("12/04/2014 | 100.00 | 1050.00"));
            console.Verify(x => x.PrintLine("11/04/2014 | 1000.00 | 950.00"));
            console.Verify(x => x.PrintLine("10/04/2014 | -50.00 | -50.00"));
        }
Пример #20
0
        public void PrintTransactionsInAReverseChronologicalOrder()
        {
            IList <Transaction> transactions = new List <Transaction>();

            transactions.Add(new Transaction {
                Money = new Money(1000m), Date = new DateTime(2012, 1, 10)
            });
            transactions.Add(new Transaction {
                Money = new Money(-500m), Date = new DateTime(2012, 1, 14)
            });
            transactions.Add(new Transaction {
                Money = new Money(2000m), Date = new DateTime(2012, 1, 13)
            });

            _StatementPrinter.Print(transactions);

            _Console.Verify(a => a.WriteLine(StatementHeader));
            _Console.Verify(a => a.WriteLine("| 14/01/2012 | -500.00 | 2,500.00"));
            _Console.Verify(a => a.WriteLine("| 13/01/2012 | 2,000.00 | 3,000.00"));
            _Console.Verify(a => a.WriteLine("| 10/01/2012 | 1,000.00 | 1,000.00"));
        }
Пример #21
0
        public void Print_Transactions_In_Reverse_Chronological_Order()
        {
            IConsole         console          = Substitute.For <IConsole>();
            StatementPrinter statementPrinter = new StatementPrinter(console);

            List <Transaction> transactions = new List <Transaction>
            {
                Deposit("01/04/2014", 1000),
                Withdrawal("02/04/2014", 100),
                Deposit("10/04/2014", 500)
            };

            statementPrinter.Print(transactions);

            Received.InOrder(() => {
                console.PrintLine("DATE | AMOUNT | BALANCE");
                console.PrintLine("10/04/2014 | 500.00 | 1400.00");
                console.PrintLine("02/04/2014 | -100.00 | 900.00");
                console.PrintLine("01/04/2014 | 1000.00 | 1000.00");
            });
        }
        public void PrintStatementWithTwoTransactions()
        {
            var depositAmount       = 100;
            var withdrawAmount      = -50;
            var depositTransaction  = new Transaction(DateTime.Now, depositAmount, depositAmount);
            var withdrawTransaction = new Transaction(DateTime.Now, withdrawAmount, depositAmount + withdrawAmount);
            var transactions        = new List <Transaction>()
            {
                depositTransaction,
                withdrawTransaction
            };
            var printer = new StatementPrinter();

            var printedStatement  = printer.Print(transactions);
            var expectedStatement =
                StatementPrinter.HeaderFormat
                + Environment.NewLine + PrintedTransaction(depositTransaction)
                + Environment.NewLine + PrintedTransaction(withdrawTransaction);


            Assert.Equal(expectedStatement, printedStatement);
        }
Пример #23
0
        public void PrintTransactionsInReverseChronologicalOrder()
        {
            var statmentPrinter = new StatementPrinter(_console.Object);

            var transactions = new List <Transaction>()
            {
                //deposit
                new Transaction(DateTime.UtcNow, 1000),
                //withdrawal
                new Transaction(DateTime.UtcNow, -100),
                //deposit
                new Transaction(DateTime.UtcNow, 500),
            };

            statmentPrinter.Print(transactions);

            _console.InSequence(new MockSequence());
            _console.Verify(console => console.WriteLine("DATE | AMOUNT | BALANCE"));
            _console.Verify(console => console.WriteLine($"{DateTime.UtcNow} | 500.00 | 1400.00"));
            _console.Verify(console => console.WriteLine($"{DateTime.UtcNow} | -100.00 | 900.00"));
            _console.Verify(console => console.WriteLine($"{DateTime.UtcNow} | 1000.00 | 1000.00"));
        }
Пример #24
0
 public void Print_AlwaysPrintsHeader()
 {
     _statementPrinter.Print(_noTransactions);
     _console.Verify(c => c.WriteLine("DATE | AMOUNT | BALANCE"));
     _console.VerifyNoOtherCalls();
 }
Пример #25
0
        public void PrintStatement()
        {
            var transactions = _transactionRepository.GetAllTransactions();

            _printterStatemnt.Print(transactions);
        }
Пример #26
0
        public void always_print_header()
        {
            _statementPrinter.Print(new List <Transaction>());

            _console.Received().PrintLine("DATE | AMOUNT | BALANCE");
        }