public void TestRenderEmptyDataReader() { var report = new TestReport(); IXLWorksheet ws = report.Workbook.AddWorksheet("Test"); IXLRange range = ws.Range(2, 2, 4, 2); range.AddToNamed("TestRange", XLScope.Worksheet); ws.Cell(2, 2).Value = "{Headers}"; ws.Cell(2, 2).Style.Border.OutsideBorder = XLBorderStyleValues.Medium; ws.Cell(2, 2).Style.Border.OutsideBorderColor = XLColor.Red; ws.Cell(2, 2).Style.Font.Bold = true; ws.Cell(3, 2).Value = "{Data}"; ws.Cell(3, 2).Style.Border.OutsideBorder = XLBorderStyleValues.Thin; ws.Cell(3, 2).Style.Border.OutsideBorderColor = XLColor.Black; ws.Cell(4, 2).Value = "{Totals}"; ws.Cell(4, 2).Style.Border.OutsideBorder = XLBorderStyleValues.Dotted; ws.Cell(4, 2).Style.Border.OutsideBorderColor = XLColor.Green; var panel = new ExcelDataSourceDynamicPanel("m:DataProvider:GetEmptyDataReader()", ws.NamedRange("TestRange"), report, report.TemplateProcessor); panel.Render(); Assert.AreEqual(ws.Range(2, 2, 3, 7), panel.ResultRange); ExcelAssert.AreWorkbooksContentEquals(TestHelper.GetExpectedWorkbook(nameof(DataSourceDynamicPanelDataReaderRenderTest), nameof(TestRenderEmptyDataReader)), ws.Workbook); //report.Workbook.SaveAs("test.xlsx"); }
public void TestDynamicPanelAfterRenderEvent() { var report = new TestReport(); IXLWorksheet ws = report.Workbook.AddWorksheet("Test"); IXLRange range = ws.Range(2, 2, 4, 2); range.AddToNamed("TestRange", XLScope.Worksheet); ws.Cell(2, 2).Value = "{Headers}"; ws.Cell(3, 2).Value = "{Data}"; ws.Cell(4, 2).Value = "{Totals}"; var panel = new ExcelDataSourceDynamicPanel("m:DataProvider:GetAllCustomersDataSet()", ws.NamedRange("TestRange"), report, report.TemplateProcessor) { AfterRenderMethodName = "TestExcelDynamicPaneAfterRender", }; panel.Render(); Assert.AreEqual(ws.Range(2, 2, 6, 7), panel.ResultRange); ExcelAssert.AreWorkbooksContentEquals(TestHelper.GetExpectedWorkbook(nameof(DataSourceDynamicPanelDataSetRenderTest), nameof(TestDynamicPanelAfterRenderEvent)), ws.Workbook); //report.Workbook.SaveAs("test.xlsx"); }
public void TestRender_DynamicPanel_In_DataSourcePanel_Vertical() { var report = new TestReport(); IXLWorksheet ws = report.Workbook.AddWorksheet("Test"); IXLRange parentRange = ws.Range(1, 2, 4, 2); parentRange.AddToNamed("ParentRange", XLScope.Worksheet); IXLRange childRange = ws.Range(2, 2, 4, 2); childRange.AddToNamed("ChildRange", XLScope.Worksheet); ws.Cell(1, 2).Value = "{di:Name}"; ws.Cell(2, 2).Value = "{Headers}"; ws.Cell(3, 2).Value = "{Data}"; ws.Cell(4, 2).Value = "{Totals}"; var parentPanel = new ExcelDataSourcePanel("m:DataProvider:GetIEnumerable()", ws.NamedRange("ParentRange"), report, report.TemplateProcessor); var childPanel = new ExcelDataSourceDynamicPanel("m:DataProvider:GetChildIEnumerable(di:Name)", ws.NamedRange("ChildRange"), report, report.TemplateProcessor) { Parent = parentPanel, }; parentPanel.Children = new[] { childPanel }; parentPanel.Render(); Assert.AreEqual(ws.Range(1, 2, 12, 3), parentPanel.ResultRange); ExcelAssert.AreWorkbooksContentEquals(TestHelper.GetExpectedWorkbook(nameof(DataSourceDynamicPanel_InsideDataSourcePanel_Test), nameof(TestRender_DynamicPanel_In_DataSourcePanel_Vertical)), ws.Workbook); //report.Workbook.SaveAs("test.xlsx"); }
public void TestDynamicPanelBeforeRenderEvent() { var report = new TestReport(); IXLWorksheet ws = report.Workbook.AddWorksheet("Test"); IXLRange range = ws.Range(2, 2, 4, 2); range.AddToNamed("TestRange", XLScope.Worksheet); ws.Cell(2, 2).Value = "{Headers}"; ws.Cell(3, 2).Value = "{Data}"; ws.Cell(4, 2).Value = "{Totals}"; var panel = new ExcelDataSourceDynamicPanel("m:DataProvider:GetAllCustomersDataSet()", ws.NamedRange("TestRange"), report, report.TemplateProcessor) { BeforeRenderMethodName = "TestExcelDynamicPaneBeforeRender", }; panel.Render(); Assert.AreEqual(range, panel.ResultRange); Assert.AreEqual(3, ws.CellsUsed(XLCellsUsedOptions.Contents).Count()); Assert.AreEqual("CanceledHeaders", ws.Cell(2, 2).Value); Assert.AreEqual("CanceledData", ws.Cell(3, 2).Value); Assert.AreEqual("CanceledTotals", ws.Cell(4, 2).Value); //report.Workbook.SaveAs("test.xlsx"); }
public void TestRenderDictionaryEnumerable() { var report = new TestReport(); IXLWorksheet ws = report.Workbook.AddWorksheet("Test"); IXLRange range1 = ws.Range(2, 2, 4, 2); range1.AddToNamed("TestRange1", XLScope.Worksheet); ws.Cell(2, 2).Value = "{Headers}"; ws.Cell(3, 2).Value = "{Data}"; ws.Cell(4, 2).Value = "{Totals}"; var panel1 = new ExcelDataSourceDynamicPanel("m:DataProvider:GetDictionaryEnumerable()", ws.NamedRange("TestRange1"), report, report.TemplateProcessor); panel1.Render(); Assert.AreEqual(ws.Range(2, 2, 6, 4), panel1.ResultRange); var dictWithDecimalValues = new List <IDictionary <string, decimal> > { new Dictionary <string, decimal> { ["Value"] = 25.7m }, new Dictionary <string, decimal> { ["Value"] = 250.7m }, new Dictionary <string, decimal> { ["Value"] = 2500.7m }, }; IXLRange range2 = ws.Range(7, 2, 9, 2); range2.AddToNamed("TestRange2", XLScope.Worksheet); ws.Cell(7, 2).Value = "{Headers}"; ws.Cell(8, 2).Value = "{Data}"; ws.Cell(9, 2).Value = "{Totals}"; var panel2 = new ExcelDataSourceDynamicPanel(dictWithDecimalValues, ws.NamedRange("TestRange2"), report, report.TemplateProcessor); panel2.Render(); Assert.AreEqual(ws.Range(7, 2, 11, 2), panel2.ResultRange); ExcelAssert.AreWorkbooksContentEquals(TestHelper.GetExpectedWorkbook(nameof(DataSourceDynamicPanelDictionaryRenderTest), nameof(TestRenderDictionaryEnumerable)), ws.Workbook); //report.Workbook.SaveAs("test.xlsx"); }
public void TestRenderEmptyDictionary() { var report = new TestReport(); IXLWorksheet ws = report.Workbook.AddWorksheet("Test"); IXLRange range1 = ws.Range(2, 2, 4, 2); range1.AddToNamed("TestRange", XLScope.Worksheet); ws.Cell(2, 2).Value = "{Headers}"; ws.Cell(3, 2).Value = "{Data}"; ws.Cell(4, 2).Value = "{Totals}"; IXLRange range2 = ws.Range(7, 2, 9, 2); range2.AddToNamed("TestRange2", XLScope.Worksheet); ws.Cell(7, 2).Value = "{Headers}"; ws.Cell(8, 2).Value = "{Data}"; ws.Cell(9, 2).Value = "{Totals}"; IDictionary <string, object> data1 = new Dictionary <string, object>(); var panel1 = new ExcelDataSourceDynamicPanel(data1, ws.NamedRange("TestRange"), report, report.TemplateProcessor); panel1.Render(); Assert.AreEqual(ws.Range(2, 2, 3, 3), panel1.ResultRange); IEnumerable <KeyValuePair <string, object> > data2 = new List <KeyValuePair <string, object> >(); var panel2 = new ExcelDataSourceDynamicPanel(data2, ws.NamedRange("TestRange2"), report, report.TemplateProcessor); panel2.Render(); Assert.AreEqual(ws.Range(6, 2, 7, 3), panel2.ResultRange); Assert.AreEqual(4, ws.CellsUsed(XLCellsUsedOptions.Contents).Count()); Assert.AreEqual("Key", ws.Cell(2, 2).Value); Assert.AreEqual("Value", ws.Cell(2, 3).Value); Assert.AreEqual("Key", ws.Cell(6, 2).Value); Assert.AreEqual("Value", ws.Cell(6, 3).Value); //report.Workbook.SaveAs("test.xlsx"); }
public void TestRenderNullItem() { var report = new TestReport(); IXLWorksheet ws = report.Workbook.AddWorksheet("Test"); IXLRange range1 = ws.Range(2, 2, 4, 2); range1.AddToNamed("TestRange", XLScope.Worksheet); ws.Cell(2, 2).Value = "{Headers}"; ws.Cell(3, 2).Value = "{Data}"; ws.Cell(4, 2).Value = "{Totals}"; var panel = new ExcelDataSourceDynamicPanel("m:DataProvider:GetNullItem()", ws.NamedRange("TestRange"), report, report.TemplateProcessor); panel.Render(); Assert.IsNull(panel.ResultRange); Assert.AreEqual(0, ws.CellsUsed(XLCellsUsedOptions.Contents).Count()); }
public void TestRenderDictionary() { var report = new TestReport(); IXLWorksheet ws = report.Workbook.AddWorksheet("Test"); IXLRange range1 = ws.Range(2, 2, 4, 2); range1.AddToNamed("TestRange", XLScope.Worksheet); ws.Cell(2, 2).Value = "{Headers}"; ws.Cell(3, 2).Value = "{Data}"; ws.Cell(4, 2).Value = "{Totals}"; IXLRange range2 = ws.Range(7, 2, 9, 2); range2.AddToNamed("TestRange2", XLScope.Worksheet); ws.Cell(7, 2).Value = "{Headers}"; ws.Cell(8, 2).Value = "{Data}"; ws.Cell(9, 2).Value = "{Totals}"; IDictionary <string, object> data1 = new DataProvider().GetDictionaryEnumerable().First(); var panel1 = new ExcelDataSourceDynamicPanel(data1, ws.NamedRange("TestRange"), report, report.TemplateProcessor); panel1.Render(); Assert.AreEqual(ws.Range(2, 2, 6, 3), panel1.ResultRange); IEnumerable <KeyValuePair <string, object> > data2 = new DataProvider().GetDictionaryEnumerable().First() .Select(x => new KeyValuePair <string, object>(x.Key, x.Value)); var panel2 = new ExcelDataSourceDynamicPanel(data2, ws.NamedRange("TestRange2"), report, report.TemplateProcessor); panel2.Render(); Assert.AreEqual(ws.Range(9, 2, 13, 3), panel2.ResultRange); ExcelAssert.AreWorkbooksContentEquals(TestHelper.GetExpectedWorkbook(nameof(DataSourceDynamicPanelDictionaryRenderTest), nameof(TestRenderDictionary)), ws.Workbook); //report.Workbook.SaveAs("test.xlsx"); }
public void TestRenderDataSetWithEvents_HorizontalPanel() { var report = new TestReport(); IXLWorksheet ws = report.Workbook.AddWorksheet("Test"); IXLRange range = ws.Range(2, 2, 2, 4); range.AddToNamed("TestRange", XLScope.Worksheet); ws.Cell(2, 2).Value = "{Headers}"; ws.Cell(2, 3).Value = "{Data}"; ws.Cell(2, 4).Value = "{Totals}"; var panel = new ExcelDataSourceDynamicPanel("m:DataProvider:GetAllCustomersDataSet()", ws.NamedRange("TestRange"), report, report.TemplateProcessor) { BeforeHeadersRenderMethodName = "TestExcelDynamicPanelBeforeHeadersRender", AfterHeadersRenderMethodName = "TestExcelDynamicPanelAfterHeadersRender", BeforeDataTemplatesRenderMethodName = "TestExcelDynamicPanelBeforeDataTemplatesRender", AfterDataTemplatesRenderMethodName = "TestExcelDynamicPanelAfterDataTemplatesRender", BeforeDataRenderMethodName = "TestExcelDynamicPanelBeforeDataRender", AfterDataRenderMethodName = "TestExcelDynamicPanelAfterDataRender", BeforeDataItemRenderMethodName = "TestExcelDynamicPanelBeforeDataItemRender", AfterDataItemRenderMethodName = "TestExcelDynamicPanelAfterDataItemRender", BeforeTotalsTemplatesRenderMethodName = "TestExcelDynamicPanelBeforeTotalsTemplatesRender", AfterTotalsTemplatesRenderMethodName = "TestExcelDynamicPanelAfterTotalsTemplatesRender", BeforeTotalsRenderMethodName = "TestExcelDynamicPanelBeforeTotalsRender", AfterTotalsRenderMethodName = "TestExcelDynamicPaneAfterTotalsRender", Type = PanelType.Horizontal, GroupBy = "4", }; panel.Render(); Assert.AreEqual(ws.Range(2, 2, 8, 6), panel.ResultRange); ExcelAssert.AreWorkbooksContentEquals(TestHelper.GetExpectedWorkbook(nameof(DataSourceDynamicPanelDataSetRenderTest), nameof(TestRenderDataSetWithEvents_HorizontalPanel)), ws.Workbook); // report.Workbook.SaveAs("test.xlsx"); }
public void TestRenderEmptyDictionaryEnumerable() { var report = new TestReport(); IXLWorksheet ws = report.Workbook.AddWorksheet("Test"); IXLRange range = ws.Range(2, 2, 4, 2); range.AddToNamed("TestRange1", XLScope.Worksheet); ws.Cell(2, 2).Value = "{Headers}"; ws.Cell(3, 2).Value = "{Data}"; ws.Cell(4, 2).Value = "{Totals}"; var panel = new ExcelDataSourceDynamicPanel(new List <IDictionary <string, decimal> >(), ws.NamedRange("TestRange1"), report, report.TemplateProcessor); panel.Render(); Assert.IsNull(panel.ResultRange); Assert.AreEqual(0, ws.CellsUsed(XLCellsUsedOptions.Contents).Count()); //report.Workbook.SaveAs("test.xlsx"); }
public void TestRenderEmptyEnumerable() { var report = new TestReport(); IXLWorksheet ws = report.Workbook.AddWorksheet("Test"); IXLRange range1 = ws.Range(2, 2, 4, 2); range1.AddToNamed("TestRange", XLScope.Worksheet); ws.Cell(2, 2).Value = "{Headers}"; ws.Cell(3, 2).Value = "{Data}"; ws.Cell(4, 2).Value = "{Totals}"; var panel = new ExcelDataSourceDynamicPanel("m:DataProvider:GetEmptyIEnumerable()", ws.NamedRange("TestRange"), report, report.TemplateProcessor); panel.Render(); Assert.AreEqual(ws.Range(2, 2, 3, 5), panel.ResultRange); ExcelAssert.AreWorkbooksContentEquals(TestHelper.GetExpectedWorkbook(nameof(DataSourceDynamicPanelEnumerableRenderTest), nameof(TestRenderEmptyEnumerable)), ws.Workbook); //report.Workbook.SaveAs("test.xlsx"); }
public void TestMakePanelsHierarchy() { var wb = new XLWorkbook(); IXLWorksheet ws = wb.AddWorksheet("Test"); IXLRange panel1Range = ws.Range(1, 1, 4, 4); IXLRange panel2Range = ws.Range(1, 1, 2, 4); panel2Range.AddToNamed("Panel2", XLScope.Worksheet); IXLRange panel3Range = ws.Range(2, 1, 2, 4); panel3Range.AddToNamed("Panel3", XLScope.Workbook); IXLRange panel4Range = ws.Range(5, 1, 6, 5); IXLRange panel5Range = ws.Range(6, 1, 6, 5); panel5Range.AddToNamed("Panel5", XLScope.Worksheet); IXLRange panel6Range = ws.Range(3, 1, 4, 4); IXLRange panel7Range = ws.Range(10, 10, 10, 10); IXLRange panel8Range = ws.Range(8, 9, 9, 10); panel8Range.AddToNamed("Panel8", XLScope.Worksheet); var panel1 = new ExcelPanel(panel1Range, new object(), Substitute.For <ITemplateProcessor>()); var panel2 = new ExcelDataSourcePanel("Stub", ws.NamedRange("Panel2"), new object(), Substitute.For <ITemplateProcessor>()); var panel3 = new ExcelDataSourcePanel("Stub", wb.NamedRange("Panel3"), new object(), Substitute.For <ITemplateProcessor>()); var panel4 = new ExcelPanel(panel4Range, new object(), Substitute.For <ITemplateProcessor>()); var panel5 = new ExcelDataSourceDynamicPanel("Stub", ws.NamedRange("Panel5"), new object(), Substitute.For <ITemplateProcessor>()); var panel6 = new ExcelPanel(panel6Range, new object(), Substitute.For <ITemplateProcessor>()); var panel7 = new ExcelPanel(panel7Range, new object(), Substitute.For <ITemplateProcessor>()); var panel8 = new ExcelTotalsPanel("Stub", ws.NamedRange("Panel8"), new object(), Substitute.For <ITemplateProcessor>()); IDictionary <string, (IExcelPanel, string)> panelsFlatView = new Dictionary <string, (IExcelPanel, string)> {
public void TestCopyIfDataIsSet() { var wb = new XLWorkbook(); IXLWorksheet ws = wb.AddWorksheet("Test"); var excelReport = Substitute.For <object>(); var templateProcessor = Substitute.For <ITemplateProcessor>(); IXLRange range = ws.Range(1, 1, 2, 4); range.AddToNamed("DataPanel", XLScope.Worksheet); IXLNamedRange namedRange = ws.NamedRange("DataPanel"); object[] data = { 1, "One" }; var panel = new ExcelDataSourceDynamicPanel(data, namedRange, excelReport, templateProcessor) { RenderPriority = 10, Type = PanelType.Horizontal, ShiftType = ShiftType.NoShift, BeforeRenderMethodName = "BeforeRenderMethod", AfterRenderMethodName = "AfterRenderMethod", BeforeDataItemRenderMethodName = "BeforeDataItemRenderMethodName", AfterDataItemRenderMethodName = "AfterDataItemRenderMethodName", GroupBy = "2,4", AfterDataRenderMethodName = "AfterDataRenderMethodName", AfterDataTemplatesRenderMethodName = "AfterDataTemplatesRenderMethodName", AfterHeadersRenderMethodName = "AfterHeadersRenderMethodName", AfterNumbersRenderMethodName = "AfterNumbersRenderMethodName", AfterTotalsRenderMethodName = "AfterTotalsRenderMethodName", AfterTotalsTemplatesRenderMethodName = "AfterTotalsTemplatesRenderMethodName", BeforeDataRenderMethodName = "BeforeDataRenderMethodName", BeforeDataTemplatesRenderMethodName = "BeforeDataTemplatesRenderMethodName", BeforeHeadersRenderMethodName = "BeforeHeadersRenderMethodName", BeforeNumbersRenderMethodName = "BeforeNumbersRenderMethodName", BeforeTotalsRenderMethodName = "BeforeTotalsRenderMethodName", BeforeTotalsTemplatesRenderMethodName = "BeforeTotalsTemplatesRenderMethodName", }; ExcelDataSourceDynamicPanel copiedPanel = (ExcelDataSourceDynamicPanel)panel.Copy(ws.Cell(5, 5)); Assert.AreSame(excelReport, copiedPanel.GetType().GetField("_report", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(copiedPanel)); Assert.AreSame(templateProcessor, copiedPanel.GetType().GetField("_templateProcessor", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(copiedPanel)); Assert.IsNull(copiedPanel.GetType().GetField("_dataSourceTemplate", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(copiedPanel)); Assert.AreSame(data, copiedPanel.GetType().GetField("_data", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(copiedPanel)); Assert.AreEqual(ws.Cell(5, 5), copiedPanel.Range.FirstCell()); Assert.AreEqual(ws.Cell(6, 8), copiedPanel.Range.LastCell()); Assert.AreEqual(10, copiedPanel.RenderPriority); Assert.AreEqual(PanelType.Horizontal, copiedPanel.Type); Assert.AreEqual(ShiftType.NoShift, copiedPanel.ShiftType); Assert.AreEqual("BeforeRenderMethod", copiedPanel.BeforeRenderMethodName); Assert.AreEqual("AfterRenderMethod", copiedPanel.AfterRenderMethodName); Assert.AreEqual("BeforeDataItemRenderMethodName", copiedPanel.BeforeDataItemRenderMethodName); Assert.AreEqual("AfterDataItemRenderMethodName", copiedPanel.AfterDataItemRenderMethodName); Assert.AreEqual("2,4", copiedPanel.GroupBy); Assert.AreEqual("AfterDataRenderMethodName", copiedPanel.AfterDataRenderMethodName); Assert.AreEqual("AfterDataTemplatesRenderMethodName", copiedPanel.AfterDataTemplatesRenderMethodName); Assert.AreEqual("AfterHeadersRenderMethodName", copiedPanel.AfterHeadersRenderMethodName); Assert.AreEqual("AfterNumbersRenderMethodName", copiedPanel.AfterNumbersRenderMethodName); Assert.AreEqual("AfterTotalsRenderMethodName", copiedPanel.AfterTotalsRenderMethodName); Assert.AreEqual("AfterTotalsTemplatesRenderMethodName", copiedPanel.AfterTotalsTemplatesRenderMethodName); Assert.AreEqual("BeforeDataRenderMethodName", copiedPanel.BeforeDataRenderMethodName); Assert.AreEqual("BeforeDataTemplatesRenderMethodName", copiedPanel.BeforeDataTemplatesRenderMethodName); Assert.AreEqual("BeforeHeadersRenderMethodName", copiedPanel.BeforeHeadersRenderMethodName); Assert.AreEqual("BeforeNumbersRenderMethodName", copiedPanel.BeforeNumbersRenderMethodName); Assert.AreEqual("BeforeTotalsRenderMethodName", copiedPanel.BeforeTotalsRenderMethodName); Assert.AreEqual("BeforeTotalsTemplatesRenderMethodName", copiedPanel.BeforeTotalsTemplatesRenderMethodName); Assert.IsNull(copiedPanel.Parent); //wb.SaveAs("test.xlsx"); }