public void XmlRegularPipelineConvertsToCodeCompileUnit()
        {
            var pipeline = new XmlRegularPipeline {
                VersionDependentGuid = Guid.Parse("55a6e50d-1750-4ccd-8995-e5151b049a01")
            };

            var builder = new StringBuilder();

            using (var provider = new CSharpCodeProvider())
                using (var writer = new StringWriter(builder))
                {
                    provider.GenerateCodeFromCompileUnit(
                        pipeline.ConvertToPipelineRuntimeCodeCompileUnit(),
                        writer,
                        new CodeGeneratorOptions {
                        BracingStyle = "C", IndentString = "\t", VerbatimOrder = true
                    });
                }

            // be resilient to runtime version in CodeDom heading comment
            Regex.Replace(builder.ToString(), @"(//\s+)Runtime Version:\d\.\d\.\d+\.\d+", @"$1Runtime Version:4.0.30319.42000", RegexOptions.Multiline)
            .Should().Be(
                ResourceManager.Load(
                    Assembly.GetExecutingAssembly(),
                    "Be.Stateless.BizTalk.Resources.XmlRegularPipeline.btp.cs",
                    // be resilient to XML Schema and Instance namespace declaration order by reusing pipeline runtime document as generated by the build server
                    s => s.ReadToEnd()).Replace("$$PipelineRuntimeDocument$$", pipeline.GetPipelineRuntimeDocumentSerializer().Serialize()));
        }
        public void SerializeRegularPipeline()
        {
            var pipelineDocument = new XmlRegularPipeline().GetPipelineRuntimeDocumentSerializer();

            XDocument.Parse(pipelineDocument.Serialize()).Should().BeEquivalentTo(
                ResourceManager.Load(
                    Assembly.GetExecutingAssembly(),
                    "Be.Stateless.BizTalk.Resources.XmlRegularPipelineRuntimeDocument.xml",
                    XDocument.Load));
        }