public void WriteToStreamAsync_WithComplexTestItem_WritesExcelDocumentToStream() { var data = new ComplexTestItem { Value1 = "Item 1", Value2 = DateTime.Today, Value3 = true, Value4 = 100.1, Value5 = TestEnum.First, Value6 = "Ignored" }; var sheet = GetWorksheetFromStream(new XlsxMediaTypeFormatter(), data); sheet.Dimension.Should().NotBeNull("Worksheet has no cells."); sheet.Dimension.End.Row.Should().Be(2, "Worksheet should have two rows (including header column)."); sheet.Dimension.End.Column.Should().Be(5, "Worksheet should have five columns."); sheet.GetValue <string>(1, 1).Should().Be("Header 4", "Header in A1 is incorrect."); sheet.GetValue <string>(1, 2).Should().Be("Value1", "Header in B1 is incorrect."); sheet.GetValue <string>(1, 3).Should().Be("Header 5", "Header in C1 is incorrect."); sheet.GetValue <string>(1, 4).Should().Be("Header 3", "Header in D1 is incorrect."); sheet.GetValue <string>(1, 5).Should().Be("Value2", "Header in E1 is incorrect."); sheet.GetValue <double>(2, 1).Should().Be(data.Value4, "Value in A2 is incorrect."); sheet.Cells[2, 1].Style.Numberformat.Format.Should().Be("???.???", "NumberFormat of A2 is incorrect."); sheet.GetValue <string>(2, 2).Should().Be(data.Value1, "Value in B2 is incorrect."); sheet.GetValue <string>(2, 3).Should().Be(data.Value5.ToString(), "Value in C2 is incorrect."); sheet.GetValue <string>(2, 4).Should().Be(data.Value3.ToString(), "Value in D2 is incorrect."); sheet.GetValue <DateTime>(2, 5).Should().Be(data.Value2, "Value in E2 is incorrect."); }
public void WriteToStreamAsync_WithEmptyListOfComplexTestItem_DoesNotCrash() { var data = new ComplexTestItem[0]; var expected = new[] { new object[] { "Header 4", "Value1", "Header 5", "Header 3", "Value2" } }; GenerateAndCompareWorksheet(data, expected); }
public void WriteToStreamAsync_WithComplexTestItem_WritesExcelDocumentToStream() { var data = new ComplexTestItem { Value1 = "Item 1", Value2 = DateTime.Today, Value3 = true, Value4 = 100.1, Value5 = TestEnum.First, Value6 = "Ignored" }; var expected = new[] { new object[] { "Header 4", "Value1", "Header 5", "Header 3", "Value2" }, new object[] { data.Value4, data.Value1, data.Value5.ToString(), data.Value3.ToString(), data.Value2 } }; var sheet = GenerateAndCompareWorksheet(data, expected); Assert.AreEqual("???.???", sheet.Cells[2, 1].Style.Numberformat.Format, "NumberFormat of A2 is incorrect."); }
public void GetFieldOrPropertyValueT_ComplexTestItem_ReturnsPropertyValues() { var obj = new ComplexTestItem() { Value1 = "Value 1", Value2 = DateTime.Today, Value3 = true, Value4 = 100.1, Value5 = TestEnum.Second, Value6 = "Value 6" }; Assert.AreEqual(obj.Value1, FormatterUtils.GetFieldOrPropertyValue <string>(obj, "Value1")); Assert.AreEqual(obj.Value2, FormatterUtils.GetFieldOrPropertyValue <DateTime>(obj, "Value2")); Assert.AreEqual(obj.Value3, FormatterUtils.GetFieldOrPropertyValue <bool>(obj, "Value3")); Assert.AreEqual(obj.Value4, FormatterUtils.GetFieldOrPropertyValue <double>(obj, "Value4")); Assert.AreEqual(obj.Value5, FormatterUtils.GetFieldOrPropertyValue <TestEnum>(obj, "Value5")); Assert.AreEqual(obj.Value6, FormatterUtils.GetFieldOrPropertyValue <string>(obj, "Value6")); }
public void GetFieldOrPropertyValueT_ComplexTestItem_ReturnsPropertyValues() { var obj = new ComplexTestItem { Value1 = "Value 1", Value2 = DateTime.Today, Value3 = true, Value4 = 100.1, Value5 = TestEnum.Second, Value6 = "Value 6" }; FormatterUtils.GetFieldOrPropertyValue <string>(obj, "Value1").Should().Be(obj.Value1); FormatterUtils.GetFieldOrPropertyValue <DateTime>(obj, "Value2").Should().Be(obj.Value2); FormatterUtils.GetFieldOrPropertyValue <bool>(obj, "Value3").Should().Be(obj.Value3); FormatterUtils.GetFieldOrPropertyValue <double>(obj, "Value4").Should().Be(obj.Value4); FormatterUtils.GetFieldOrPropertyValue <TestEnum>(obj, "Value5").Should().Be(obj.Value5); FormatterUtils.GetFieldOrPropertyValue <string>(obj, "Value6").Should().Be(obj.Value6); }