public void Should_print_multiple_times_with_actions_firing_correct_count() { var counter = 0; var report = new XtraReport(); report.Bands.Add(new DetailBand()); report.Bands[0].Controls.Add(new XRLine()); var facade = new ReportControlActionFacade(ReportControlAction<XRLine>.WithNoPredicate(l => { l.ForeColor = Color.Blue; counter++; })); var controller = new ReportController(new EventAggregator(), report,facade); var newReport1 = controller.Print(r => r.ExportToMemory()); var newReport2 = controller.Print(r => r.ExportToMemory()); newReport1.Bands[0].Controls[0].ForeColor.Should().Be(Color.Blue,"Action should have been applied to control"); newReport2.Bands[0].Controls[0].ForeColor.Should().Be(Color.Blue, "Action should have been applied to control"); counter.Should().Be(2,"Action should only have fired once for each time"); }
public void Should_cast_correctly_when_single_action_of_one_type() { var label = new XRLabel() {Text = "uncoverted"}; var action = ReportControlAction<XRLabel>.WithNoPredicate(l => l.Text = "Converted"); var facade = new ReportControlActionFacade(action); facade.AttemptActionsOnControl(label); label.Text.Should().Be("Converted"); }
public void Should_cast_correctly_when_multiple_actions_of_multiple_types() { var label = new XRLabel() { Text = "uncoverted" }; var action = ReportControlAction<XRLabel>.WithNoPredicate(l => l.Text = "Converted"); var action2 = ReportControlAction<XRLine>.WithNoPredicate(l => l.ForeColor = Color.Gold); var facade = new ReportControlActionFacade(action,action2); facade.AttemptActionsOnControl(label); label.Text.Should().Be("Converted"); }
public void Should_only_apply_action_when_predicate_is_satisfied() { const string transformText = "Jeremiah"; var action = new ReportControlAction<XRLabel>((l) => l.Text != string.Empty, (l) => l.Text = transformText); var facade = new ReportControlActionFacade(action); var label1 = new XRLabel { Text = string.Empty }; var label2 = new XRLabel { Text = "ChangeMe" }; facade.AttemptActionsOnControl(label1); facade.AttemptActionsOnControl(label2); Assert.AreNotEqual(transformText, label1.Text); Assert.AreEqual(transformText, label2.Text); }
public void Should_not_collide_with_another_controller_when_both_printing_using_save_event_aggregator() { var view = new XtraReport { DataSource = new[] { new object(), new object() } }; var counterA = 0; var counterB = 0; IEventAggregator aggregator = new EventAggregator(); var actionA = ReportControlAction<XRControl>.WithNoPredicate(c => counterA++); var actionB = ReportControlAction<XRControl>.WithNoPredicate(c => counterB++); var facadeA = new ReportControlActionFacade(actionA); var facadeB = new ReportControlActionFacade(actionB); var controllerA = new ReportController(aggregator, view, facadeA); var controllerB = new ReportController(aggregator, view, facadeB); controllerA.Print(r => r.ExportToMemory()); controllerB.Print(r => r.ExportToMemory()); counterA.Should().Be(1); counterB.Should().Be(1); }
public void Should_handle_detail_reports() { var textvalues = new List<Tuple<int, string>>(); var report = new XtraReportWithLabelInDetailReport(); report.DataSource = new List<Person2> { new Person2 { Name = "Douglas Sam", Age = 17, Dogs = new List<Dog> {new Dog {Name = "Rex"}, new Dog {Name = "Rudy"}} }, new Person2 { Name = "Fred Thomas", Age = 35, Dogs = new List<Dog> {new Dog {Name = "Sally"}, new Dog {Name = "Stubert"}} }, new Person2 { Name = "Alex Matthew", Age = 100, Dogs = new List<Dog> {new Dog {Name = "Nibbles"}, new Dog {Name = "Norbert"}} } }; int counter = 0; var action = ReportControlAction<XRLabel>.WithNoPredicate(l => { counter++; textvalues.Add(new Tuple<int, string>(l.Report.GetHashCode(), l.Text)); }); var facade = new ReportControlActionFacade(action); var c = new ReportController(new EventAggregator(), report, facade); var newReport = c.Print(a => a.ExportToMemory()); counter.Should().Be(6); }
public void Should_fire_actions_against_item_in_subreport() { var report = new XtraReport(); var detailBand = new DetailBand(); report.Bands.Add(detailBand); var subreport = new XtraReport(); var container = new XRSubreport {ReportSource = subreport, Name = "container"}; detailBand.Controls.Add(container); var subReportBand = new DetailBand(); subreport.Bands.Add(subReportBand); subReportBand.Controls.Add(new XRLine {Name = "line"}); var facade = new ReportControlActionFacade(ReportControlAction<XRLine>.WithNoPredicate(l => l.ForeColor = Color.Blue)); var report2 = new ReportController(new EventAggregator(), report, facade).Print(r => r.ExportToMemory()); var newSubreport = ((XRSubreport) report2.Bands[0].Controls[0]).ReportSource; ((XRLine) newSubreport.Bands[0].Controls[0]).ForeColor.Should().Be(Color.Blue); }
public void GivenTheXtrasubreportEngineIsInitialized() { var facade = new ReportControlActionFacade(_action); _controller = new ReportController(new EventAggregator(),_report, facade); }