Great, thanks. I'll try and take a look at this later today.
When working with patches, I tend to have one version of the source code checked out for each patch that I'm working on. This way, each patch can be developed in isolation and neither has a dependency on the other.
Regarding unit testing, I tend to start by writing a test that shows what the end result should be before I actually write any code. As an example, I might do something like this:
[Test]
public void Should_render_email() {
var builder = new EmailBuilder("mytemplate");
var result = builder.GetEmailContent();
Assert.AreEqual("Some test content", result);
}
This then gives me the end result that I want to work towards and will then do the absoloute minimum to get this to pass. Once that's done, I can clean up the internals of the code while still ensuring that the test passes.
Jeremy