public void WriteSpecification(Action<string, object[]> consoleAction = null)
{
foreach (var given in TestRunManager.TransientGivens.Where(x => x.Key == TestType.Name).SelectMany(x => x.Value))
{
AddGiven(given.Key, given.Value);
}
consoleAction = consoleAction ?? Console.WriteLine;
var currentPrefix = Text.Given;
foreach (var pair in Givens)
{
consoleAction(Text.Print, new object[] { currentPrefix, pair.Value.Replace("_", " ") });
currentPrefix = Text.And;
}
currentPrefix = Text.When;
foreach (var pair in Whens)
{
consoleAction(Text.Print, new object[] { currentPrefix, pair.Value.Replace("_", " ") });
currentPrefix = Text.And;
}
currentPrefix = Text.Then;
foreach (var pair in Thens)
{
consoleAction(Text.Print, new object[] { currentPrefix, pair.Value.Name.Replace("_", " ") });
if (!string.IsNullOrEmpty(pair.Value.Message))
consoleAction(pair.Value.Message, new object[0]);
currentPrefix = Text.And;
}
}