public void TestCallReportMethod() { var report = new TestRep(); var panel = new ExcelPanel(Substitute.For <IXLRange>(), report, Substitute.For <ITemplateProcessor>()); MethodInfo method = panel.GetType().GetMethod("CallReportMethod", BindingFlags.Instance | BindingFlags.NonPublic); Assert.AreEqual($"Call {nameof(TestRep.Method1)}", method.Invoke(panel, new object[] { nameof(TestRep.Method1), null })); Assert.AreEqual($"Call {nameof(TestRep.Method1)}", method.Invoke(panel, new object[] { nameof(TestRep.Method1), new object[] { } })); ExceptionAssert.ThrowsBaseException <TargetParameterCountException>(() => method.Invoke(panel, new object[] { nameof(TestRep.Method1), new object[] { "Bad param" } })); Assert.AreEqual($"Call {nameof(TestRep.Method2)}; params: str; 10", method.Invoke(panel, new object[] { nameof(TestRep.Method2), new object[] { "str", 10 } })); Assert.AreEqual($"Call {nameof(TestRep.Method3)}; params: str; 10; str2", method.Invoke(panel, new object[] { nameof(TestRep.Method3), new object[] { "str", 10, "str2" } })); ExceptionAssert.ThrowsBaseException <TargetParameterCountException>(() => method.Invoke(panel, new object[] { nameof(TestRep.Method3), new object[] { "str", 10 } })); var eventArgs = new PanelBeforeRenderEventArgs(); Assert.IsFalse(eventArgs.IsCanceled); Assert.IsNull(method.Invoke(panel, new object[] { nameof(TestRep.Method4), new object[] { eventArgs } })); Assert.IsTrue(eventArgs.IsCanceled); ExceptionAssert.ThrowsBaseException <AmbiguousMatchException>(() => method.Invoke(panel, new object[] { nameof(TestRep.Method5), new object[] { eventArgs } })); ExceptionAssert.ThrowsBaseException <MethodNotFoundException>(() => method.Invoke(panel, new object[] { "Method6", null }), $"Cannot find public instance method \"Method6\" in type \"{report.GetType().Name}\""); ExceptionAssert.ThrowsBaseException <MethodNotFoundException>(() => method.Invoke(panel, new object[] { "BadMethod", null }), $"Cannot find public instance method \"BadMethod\" in type \"{report.GetType().Name}\""); ExceptionAssert.ThrowsBaseException <ArgumentException>(() => method.Invoke(panel, new object[] { null, null })); ExceptionAssert.ThrowsBaseException <ArgumentException>(() => method.Invoke(panel, new object[] { string.Empty, null })); ExceptionAssert.ThrowsBaseException <ArgumentException>(() => method.Invoke(panel, new object[] { " ", null })); }
public void BeforeRenderParentDataSourcePanel(PanelBeforeRenderEventArgs args) { args.Range.Style.Border.OutsideBorder = XLBorderStyleValues.Thin; }
public void TestExcelPanelBeforeRender(PanelBeforeRenderEventArgs args) { args.Range.Cell(1, 1).Value = "{p:BoolParam}"; }
public void CancelPanelRender(PanelBeforeRenderEventArgs args) { args.IsCanceled = true; }
public void Method5(PanelBeforeRenderEventArgs e) { }
public void Method4(PanelBeforeRenderEventArgs e) { e.IsCanceled = true; }