public void Export_RealFile_Success(bool isInjectExternalFormatter)
        {
            // Arrange
            var testQuotes = new List<Quote>()
            {
                new Quote { Id = 1, DateTime = new DateTime(2015, 8, 26, 13, 4, 32), Ticker = "ABCD", ValueExact = (decimal) 228.34 },
                new Quote { Id = 2, DateTime = new DateTime(2015, 8, 26, 13, 4, 33), Ticker = "QWER", ValueExact = (decimal) 228.35 },
            };

            var repositoryMock = new Mock<IQuoteRepository>();
            repositoryMock.Setup(x => x.GetQuotes(It.IsAny<DateTime>(), It.IsAny<DateTime>())).Returns(testQuotes);

            var exporter = new QuoteExporter(repositoryMock.Object);

            if (isInjectExternalFormatter)
                exporter.Formatter = new QuoteFormatter();

            const string fileName = @"..\..\SampleData\export.txt";
            if (File.Exists(fileName))
                File.Delete(fileName);

            try
            {
                // Act
            #pragma warning disable 618 // ignore compiler warning 'Obsolete attribute'
                exporter.Export(fileName, DateTime.Now.AddDays(-1), DateTime.Now);
            #pragma warning restore 618

                // Assert
                var fileLines = File.ReadAllLines(fileName);
                Assert.AreEqual(2, fileLines.Count(), "Invalid file exported");

                Assert.AreEqual("2015-08-26T13:04:32	ABCD	228.34", fileLines[0]);
                Assert.AreEqual("2015-08-26T13:04:33	QWER	228.35", fileLines[1]);
            }
            finally
            {
                if (File.Exists(fileName))
                    File.Delete(fileName);
            }
        }
        public void Export_TwoLines_Success()
        {
            // Arrange
            var testQuotes = new List<Quote>()
            {
                new Quote(),
                new Quote(),
            };

            var repositoryMock = new Mock<IQuoteRepository>();
            repositoryMock.Setup(x => x.GetQuotes(It.IsAny<DateTime>(), It.IsAny<DateTime>())).Returns(testQuotes);

            var mockWriter = new Mock<IWriter>();
            var formatter = new Mock<IQuoteFormatter>();
            var exporter = new QuoteExporter(repositoryMock.Object);

            // Act
            exporter.Export(mockWriter.Object, formatter.Object, DateTime.Now.AddDays(-1), DateTime.Now);

            // Assert
            mockWriter.Verify(foo => foo.Write(It.IsAny<string[]>()), Times.Exactly(2));
        }