string ExerciseSut(Report report) { var builder = new StringBuilder(); using (var writer = new StringWriter(builder)) { var sut = new TextReportRenderer(writer); sut.Render(report); } return(builder.ToString()); }
private string RenderScenarioReport(IScenario scenario) { if (scenario == null) { return(null); } var reportModel = Scenario.DiContainer.TryResolve <IHandlesReportableEvents>() as IGetsReportModel; if (reportModel == null) { return(null); } var builder = reportModel.GetType().BaseType.GetFields(BindingFlags.NonPublic | BindingFlags.Instance).FirstOrDefault(f => f.Name == "builder").GetValue(reportModel) as ReportBuilder; var scenarioBuilders = builder.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance).FirstOrDefault(f => f.Name == "scenarioBuilders").GetValue(builder) as ConcurrentDictionary <Guid, IBuildsScenario>; foreach (var b in scenarioBuilders) { if (b.Key == Scenario.Identity) { var integration = new IntegrationReader().GetIntegration(GetType().Assembly); var buildsScenario = (IBuildsScenario)builder.GetType().GetMethod("GetScenarioBuilder", BindingFlags.Instance | BindingFlags.NonPublic).Invoke(builder, new object[] { Scenario.Identity }); var reportFactory = (IGetsReport)builder.GetType().GetField("reportFactory", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(builder); var report = reportFactory.GetReport(new[] { buildsScenario }); //var di = ir.GetIntegration(null).GetType().GetProperties(System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).FirstOrDefault(f => f.Name == "builder").GetValue(this) as ReportBuilder; //d.TryResolve<ITestOutputHelper>()?.WriteLine(sb.ToString()); //ir.GetIntegration().d // ir.GetIntegration(). //(b.Value.GetScenario() as CSF.Screenplay.Scenarios.Scenario).DiContainer.Resolve<ITestOutputHelper> var sb = new StringBuilder(); using (var textWriter = new StringWriter(sb)) { var textReportRenderer = new TextReportRenderer(textWriter, false); textReportRenderer.Render(report); return(sb.ToString()); } } } return(null); }