Beispiel #1
0
        public void GetFileName_DocumentFactoryReturningEmptyStringAsExtension_ShouldReturnFileNameWithoutExtension()
        {
            _documentFactoryMock.SetupGet(x => x.FileExtension).Returns(string.Empty);
            var exporter = new FileStreamExporter(_documentFactoryMock.Object, _exportTaskMock.Object, () => DateTime.Parse("2018/01/05 12:00"));

            Assert.That(exporter.GetFileName(), Is.EqualTo("SomeExportName 20180105"));
        }
Beispiel #2
0
        public void GetFileName_DocumentFactoryReturningAnExtension_ShouldReturnFileNameWithExtension()
        {
            var exporter = new FileStreamExporter(_documentFactoryMock.Object, _exportTaskMock.Object, () => DateTime.Parse("2018/01/05 12:00"));

            _documentFactoryMock.SetupGet(x => x.FileExtension).Returns("xlsx");
            Assert.That(exporter.GetFileName(), Is.EqualTo("SomeExportName 20180105.xlsx"));

            _documentFactoryMock.SetupGet(x => x.FileExtension).Returns(".zip");
            Assert.That(exporter.GetFileName(), Is.EqualTo("SomeExportName 20180105.zip"));
        }
Beispiel #3
0
        public void ExportToStream_ShouldCallInterfaceMethodsInCorrectOrder()
        {
            var stream       = new MemoryStream();
            var columnLabels = new[] { "col1", "col2", "col3" };

            IEnumerable <object>[] rowData = new[]
            {
                new object[] { true, 1, "r1" },
                new object[] { false, 2, "r2" }
            };

            var sheetExportTaskMock = new Mock <ISheetExportTask>();

#pragma warning disable 1998
            async IAsyncEnumerable <ISheetExportTask> SheetExportTasks()
#pragma warning restore 1998
            {
                yield return(sheetExportTaskMock.Object);
            }

#pragma warning disable 1998
            async IAsyncEnumerable <IEnumerable <object> > RowData()
#pragma warning restore 1998
            {
                foreach (var data in rowData)
                {
                    yield return(data);
                }
            }

            var documentMock = new Mock <IDocument>();
            var sheetMock    = new Mock <ISheet>();
            _documentFactoryMock.SetupGet(x => x.FileExtension).Returns("xlsx");
            _documentFactoryMock.Setup(x => x.CreateDocument(stream)).Returns(documentMock.Object);
            _exportTaskMock.Setup(x => x.EnumSheetExportTasks()).Returns(SheetExportTasks);
            documentMock.Setup(x => x.CreateSheet("MySheet A")).Returns(sheetMock.Object);
            sheetExportTaskMock.SetupGet(x => x.Name).Returns("MySheet A");
            sheetExportTaskMock.Setup(x => x.GetColumnLabels()).ReturnsAsync(columnLabels);
            sheetExportTaskMock.Setup(x => x.EnumRowData()).Returns(RowData);

            var exporter = new FileStreamExporter(_documentFactoryMock.Object, _exportTaskMock.Object);
            exporter.ExportToStream(stream);

            _documentFactoryMock.Verify(x => x.CreateDocument(It.IsAny <Stream>()), Times.Once());
            _exportTaskMock.Verify(x => x.EnumSheetExportTasks(), Times.Once);
            documentMock.Verify(x => x.CreateSheet(It.IsAny <string>()), Times.Once);
            sheetExportTaskMock.Verify(x => x.GetColumnLabels(), Times.Once);
            sheetMock.Verify(x => x.AddHeaderRow(columnLabels), Times.Once);
            sheetMock.Verify(x => x.AddRow(It.IsAny <object[]>()), Times.Exactly(2));
            sheetMock.Verify(x => x.AddRow(rowData.First()), Times.Exactly(1));
            sheetMock.Verify(x => x.AddRow(rowData.Last()), Times.Exactly(1));
        }
Beispiel #4
0
        public void GetFileName_InvalidTaskName_ShouldThrowException()
        {
            var exporter = new FileStreamExporter(_documentFactoryMock.Object, _exportTaskMock.Object);

            _exportTaskMock.SetupGet(x => x.Name).Returns((string)null);
            var ex = Assert.Throws <InvalidOperationException>(() => exporter.GetFileName());

            Assert.That(ex.Message, Is.EqualTo("Failed to get the name of the export task"));

            _exportTaskMock.SetupGet(x => x.Name).Returns(string.Empty);
            ex = Assert.Throws <InvalidOperationException>(() => exporter.GetFileName());
            Assert.That(ex.Message, Is.EqualTo("Failed to get the name of the export task"));
        }