public void Handler_wireup_should_be_predicatable()
        {
            var myBase     = new MyReportBase();
            var detailBand = new DetailBand();
            var container  = new XRSubreport();
            var subReport  = new MyReportBase();

            container.ReportSource = subReport;
            detailBand.Controls.Add(container);
            myBase.Bands.Add(detailBand);

            myBase.DataSource = new[]
            {
                new object(),
                new object(),
                new object(),
                new object()
            };


            var controller = new DataSourceTrackingController(myBase, (s, ds) => _counter++);

            controller.Print(r => r.ExportToMemory());
            _counter.Should().Be(4);
        }
        public void Handler_wireup_should_be_predicatable()
        {
            var myBase = new MyReportBase();
            var detailBand = new DetailBand();
            var container = new XRSubreport();
            var subReport = new MyReportBase();

            container.ReportSource = subReport;
            detailBand.Controls.Add(container);
            myBase.Bands.Add(detailBand);

            myBase.DataSource = new[]
                                    {
                                        new object(),
                                        new object(),
                                        new object(),
                                        new object()
                                    };

            var controller = new DataSourceTrackingController(myBase, (s, ds) => _counter++);
            controller.Print(r => r.ExportToMemory());
            _counter.Should().Be(4);
        }
        public void GivenTheXtrasubreportEngineIsInitializedWithDataSourceTracking()
        {
            _controller = new DataSourceTrackingController(_parentReport,(s,ds) =>
                                                             {
                                                                 _counter++;

                                                                 Person person = null;

                                                                 ds.TryAs<Person>(p => person = p);
                                                                 ds.TryAs<List<object>>(
                                                                     list => person = (Person) list.SingleOrDefault());

                                                                 if(person != null)
                                                                     _datasources.Add(person);
                                                                 else
                                                                 {
                                                                     throw new NotImplementedException();
                                                                 }

                                                             });
        }
 public void GivenTheXtrasubreportEngineIsInitialized()
 {
     _controller = new DataSourceTrackingController(_parentReport,(s,o)=> _counter++);
 }