public ConcordionBuilder()
{
BuildListeners = new List<IConcordionBuildListener>();
SpecificationProcessingListeners = new List<ISpecificationProcessingListener>();
ResourceToCopyMap = new Dictionary<string, Resource>();
ExceptionListeners = new List<IExceptionCaughtListener>();
SpecificationLocator = new ClassNameBasedSpecificationLocator();
Source = null;
Target = null;
CommandRegistry = new CommandRegistry();
DocumentParser = new DocumentParser(CommandRegistry);
EvaluatorFactory = new SimpleEvaluatorFactory();
SpecificationCommand = new SpecificationCommand();
AssertEqualsCommand = new AssertEqualsCommand();
AssertTrueCommand = new AssertTrueCommand();
AssertFalseCommand = new AssertFalseCommand();
ExecuteCommand = new ExecuteCommand();
RunCommand = new RunCommand();
VerifyRowsCommand = new VerifyRowsCommand();
EchoCommand = new EchoCommand();
ExceptionRenderer = new ExceptionRenderer();
WithExceptionListener(ExceptionRenderer);
// Set up the commands
CommandRegistry.Register("", "specification", SpecificationCommand);
// Wire up the command listeners
var assertResultRenderer = new AssertResultRenderer();
WithAssertEqualsListener(assertResultRenderer);
WithAssertTrueListener(assertResultRenderer);
WithAssertFalseListener(assertResultRenderer);
WithVerifyRowsListener(new VerifyRowResultRenderer());
WithRunListener(new RunResultRenderer());
WithDocumentParsingListener(new DocumentStructureImprover());
WithDocumentParsingListener(new MetadataCreator());
WithEmbeddedCss(HtmlFramework.EMBEDDED_STYLESHEET_RESOURCE);
}