public ProcessingResult Process(Resource resource)
{
var eventRecorder = new EventRecorder();
this.Target = new StubTarget();
var concordionBuilder = new ConcordionBuilder()
.WithEvaluatorFactory(this.EvaluatorFactory)
.WithSource(this.Source)
.WithTarget(this.Target)
.WithAssertEqualsListener(eventRecorder)
.WithExceptionListener(eventRecorder);
if (this.Fixture != null)
{
new ExtensionLoader(this.Configuration).AddExtensions(this.Fixture, concordionBuilder);
}
if (this.Extension != null)
{
this.Extension.AddTo(concordionBuilder);
}
var concordion = concordionBuilder.Build();
try
{
IResultSummary resultSummary = concordion.Process(resource, this.Fixture);
string xml = this.Target.GetWrittenString(resource);
return new ProcessingResult(resultSummary, eventRecorder, xml);
}
catch (Exception e)
{
throw new Exception("Test rig failed to process specification", e);
}
}