I've been tweaking the PipelineTesting API further as I use it and write the unit
tests for it. Here are some of the improvements I've made on the pipeline creation
ReceivePipelineWrapper pipeline = Pipelines.Receive()
I think this looks much better.
Creating standard components
One of the problems with the current PipelineTesting version is that while it allows
you to use one of the standard assembler/disassembler components on an empty pipeline,
it provides no help doing so. Using them can be pretty annoying because there's no
easy way to add document and envelope schemas.
The cause for this is that the relevant properties in the standard Xml/FF assembler
and disassembler components use types defined in Microsoft.BizTalk.Component.Utilities.dll.
The types themselves are public (and even somewhat
documented), but the assembly can only be found in the GAC, which means referencing
it in tests projects is a pain in the neck.
To save yourself the trouble from having to do this, the new PipelineTesting API will
also expose classes to make it easier to create and configure the standard XML and
Flat File assembler and disassembler components. Here's an example of the syntax I'm
XmlAssembler asm = Assembler.Xml()
SendPipelineWrapper pipeline = Pipelines.Send() .AddAssembler(asm); //