コード例 #1
0
        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 }));
        }
コード例 #2
0
 public void BeforeRenderParentDataSourcePanel(PanelBeforeRenderEventArgs args)
 {
     args.Range.Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
 }
コード例 #3
0
 public void TestExcelPanelBeforeRender(PanelBeforeRenderEventArgs args)
 {
     args.Range.Cell(1, 1).Value = "{p:BoolParam}";
 }
コード例 #4
0
 public void CancelPanelRender(PanelBeforeRenderEventArgs args)
 {
     args.IsCanceled = true;
 }
コード例 #5
0
 public void Method5(PanelBeforeRenderEventArgs e)
 {
 }
コード例 #6
0
 public void Method4(PanelBeforeRenderEventArgs e)
 {
     e.IsCanceled = true;
 }