<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>BizTalk Testing</title>
        <link>http://geekswithblogs.net/michaelstephenson/category/7986.aspx</link>
        <description>BizTalk Testing</description>
        <language>en-GB</language>
        <copyright>Michael Stephenson</copyright>
        <managingEditor>michael_stephensonuk@yahoo.co.uk</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>Bizmonade Followup</title>
            <link>http://geekswithblogs.net/michaelstephenson/archive/2009/10/30/135861.aspx</link>
            <description>&lt;p&gt;Ive been having a few discussions with Christos Karras and Jason Hyland about Bizmonade over the last few days as a followup to some thoughts and questions i posted about Bizmonade.&lt;/p&gt;
&lt;p&gt;Christos has posted a response to some of my questions on the below link, and i must say i think his plan for Bizmonade looks really good and it should become an important tool in the biztalk development cycle.&lt;/p&gt;
&lt;p&gt;Check out his response here : &lt;font face=""&gt;&lt;a href="http://www.nootaikok.com/2009/10/more-about-bizmonade.html"&gt;http://www.nootaikok.com/2009/10/more-about-bizmonade.html&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135861"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=135861" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/michaelstephenson/aggbug/135861.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Michael Stephenson</dc:creator>
            <guid>http://geekswithblogs.net/michaelstephenson/archive/2009/10/30/135861.aspx</guid>
            <pubDate>Fri, 30 Oct 2009 13:35:36 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/michaelstephenson/comments/135861.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/michaelstephenson/archive/2009/10/30/135861.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/michaelstephenson/comments/commentRss/135861.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/michaelstephenson/services/trackbacks/135861.aspx</trackback:ping>
        </item>
        <item>
            <title>Configuration Manager - New Release</title>
            <link>http://geekswithblogs.net/michaelstephenson/archive/2009/08/14/134109.aspx</link>
            <description>&lt;p&gt;Ive just released a new version of the configuration manager tool which I used in the BizTalk Light and Easy viewing video.  This tool is used to help you manage the different settings needed for binding and configuration files across different environments and allows you to connect this with your build process.&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;The tool is available on codeplex at: &lt;a href="http://configsettingstool.codeplex.com/"&gt;http://configsettingstool.codeplex.com/&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;The light and easy video is at: &lt;font face="Arial"&gt;&lt;a href="http://blogs.breezetraining.com.au/mickb/2009/07/08/UnofficalLaunchOfTheBizTalk2009LightAndEasyWebCastSeries.aspx"&gt;http://blogs.breezetraining.com.au/mickb/2009/07/08/UnofficalLaunchOfTheBizTalk2009LightAndEasyWebCastSeries.aspx&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=134109"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=134109" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/michaelstephenson/aggbug/134109.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Michael Stephenson</dc:creator>
            <guid>http://geekswithblogs.net/michaelstephenson/archive/2009/08/14/134109.aspx</guid>
            <pubDate>Fri, 14 Aug 2009 22:35:17 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/michaelstephenson/comments/134109.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/michaelstephenson/archive/2009/08/14/134109.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/michaelstephenson/comments/commentRss/134109.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/michaelstephenson/services/trackbacks/134109.aspx</trackback:ping>
        </item>
        <item>
            <title>Testing BizTalk Maps with Custom XSLT</title>
            <link>http://geekswithblogs.net/michaelstephenson/archive/2009/07/09/133378.aspx</link>
            <description>&lt;p&gt;A while back I wrote a couple of posts about Testing maps in BizTalk. They are at the following links: &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;BizTalk 2006 R2 &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/michaelstephenson/archive/2008/03/30/120851.aspx"&gt;http://geekswithblogs.net/michaelstephenson/archive/2008/03/30/120851.aspx&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;BizTalk 2009&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/michaelstephenson/archive/2008/12/12/127826.aspx"&gt;http://geekswithblogs.net/michaelstephenson/archive/2008/12/12/127826.aspx&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;One possible extension to this might be if you have a map which rather than using the map designer imports a custom XSLT to perform the mapping. (If you are not familiar with this refer to &lt;a href="http://msdn.microsoft.com/en-us/library/aa560154.aspx"&gt;MSDN&lt;/a&gt;). &lt;/p&gt;
&lt;p&gt;So if you have a custom XSLT then you really have a couple of choices with regard to testing it. The first choice is that you can just run the testing approaches which are described above, or you could also test the XSLT before you use it in the BizTalk map or do both. &lt;/p&gt;
&lt;p&gt;If you wish to test the XSLT in isolation you can use the XslCompiledTransform class within the System.Xml.Xsl namespace. This will allow you to load the xsl and then transform an input file to an output file like in the below example. You could then perform a binary comparison on the output file against what it is expected to look like. &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://geekswithblogs.net/images/geekswithblogs_net/michaelstephenson/070909_0931_TestingBizT1.png" /&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;Summary &lt;/h2&gt;
&lt;p&gt;So you can see above this is easy to do. I would probably in practice do 1 test which would test the BizTalk map to ensure it works correctly when loading the custom XSLT and the rest of my tests will focus on testing the XSLT in isolation and testing different cases within the map. &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133378"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133378" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/michaelstephenson/aggbug/133378.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Michael Stephenson</dc:creator>
            <guid>http://geekswithblogs.net/michaelstephenson/archive/2009/07/09/133378.aspx</guid>
            <pubDate>Thu, 09 Jul 2009 09:31:34 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/michaelstephenson/comments/133378.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/michaelstephenson/archive/2009/07/09/133378.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/michaelstephenson/comments/commentRss/133378.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/michaelstephenson/services/trackbacks/133378.aspx</trackback:ping>
        </item>
        <item>
            <title>Testing BizTalk Flat File Schemas</title>
            <link>http://geekswithblogs.net/michaelstephenson/archive/2009/07/08/133362.aspx</link>
            <description>&lt;p&gt;I got some feedback a while ago asking for some advice on how we test flat file schemas and have eventually got around to writing this post. &lt;/p&gt;
&lt;p&gt;The aim of testing schemas which have been created to represent a flat file (positional or delimited) is to be able to test the schema in isolation to ensure that it can be used to parse and assemble a message correctly. &lt;/p&gt;
&lt;p&gt;The reason testing the schema in isolation is important is that it allows you to ensure it works before the schema is used within BizTalk where problems will take more time to troubleshoot and require deployment to BizTalk to do any testing. &lt;/p&gt;
&lt;p&gt;Normally when this is done people will create BizTalk pipelines and test this with BizUnit but we have actually used the Pipeline Component Test Library which actually contains some classes which make this really easy to do. &lt;/p&gt;
&lt;h2&gt;The Sample &lt;/h2&gt;
&lt;p&gt;In the below sample you can see I have creates a solution structure containing two projects. One is a BizTalk project containing flat file schemas. One schema represents a positional file and the other represents a delimited file. &lt;/p&gt;
&lt;p&gt;In the C# Test project I have creates tests for each schema and there are input files for each schema to support testing of assembly and disassembly with each schema. &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://geekswithblogs.net/images/geekswithblogs_net/michaelstephenson/070809_2026_TestingBizT1.png" /&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;There are 4 tests. &lt;/p&gt;
&lt;p&gt;The assembly tests will take an xml input file representing the schema and then run the assemble process and produce the appropriate flat file. &lt;/p&gt;
&lt;p&gt;The disassembly tests will take a flat file and run the disassembly process to produce an xml file of the parsed input in an xml format. &lt;/p&gt;
&lt;p&gt;The below code snippet from the tests shows how we use the SchemaTester which is a generic class which you can type to be relevant to your BizTalk schema type. The SchemaTester then provides methods to do each of the types of testing. &lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://geekswithblogs.net/images/geekswithblogs_net/michaelstephenson/070809_2026_TestingBizT2.png" /&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Normally what I would do after SchemaTester has ran and produced the output file is to do some kind of binary comparison against a known expected copy of what the xml should look like. &lt;/p&gt;
&lt;h2&gt;Summary &lt;/h2&gt;
&lt;p&gt;Hopefully you can see this is quick and easy to implement and can save you a lot of time in getting these schemas right. &lt;/p&gt;
&lt;p&gt;The downloadable sample is available from the following location: &lt;/p&gt;
&lt;p&gt;&lt;a href="http://code.msdn.microsoft.com/flatfileschemas/Wiki/View.aspx?title=Home"&gt;http://code.msdn.microsoft.com/flatfileschemas/Wiki/View.aspx?title=Home&lt;/a&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133362"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=133362" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/michaelstephenson/aggbug/133362.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Michael Stephenson</dc:creator>
            <guid>http://geekswithblogs.net/michaelstephenson/archive/2009/07/08/133362.aspx</guid>
            <pubDate>Wed, 08 Jul 2009 20:27:12 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/michaelstephenson/comments/133362.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/michaelstephenson/archive/2009/07/08/133362.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/michaelstephenson/comments/commentRss/133362.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/michaelstephenson/services/trackbacks/133362.aspx</trackback:ping>
        </item>
        <item>
            <title>BizTalk Testing Guidance - Stub Of Dynamics AX</title>
            <link>http://geekswithblogs.net/michaelstephenson/archive/2009/05/13/132087.aspx</link>
            <description>&lt;p&gt;Following on from my previous article, one of my old colleagues has written up an article about how a project he worked on was able to simulate the behaviour of Dynamics AX by using one of the approaches I described in my article about how to simulate external systems in testing.&lt;/p&gt;
&lt;p&gt;Check out Charlies article here: &lt;font face=""&gt;&lt;a href="http://geekswithblogs.net/charliemott/archive/2009/05/13/stub-of-dynamics-ax-for-biztalk-development-and-bizunit-testing.aspx"&gt;http://geekswithblogs.net/charliemott/archive/2009/05/13/stub-of-dynamics-ax-for-biztalk-development-and-bizunit-testing.aspx&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132087"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=132087" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/michaelstephenson/aggbug/132087.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Michael Stephenson</dc:creator>
            <guid>http://geekswithblogs.net/michaelstephenson/archive/2009/05/13/132087.aspx</guid>
            <pubDate>Wed, 13 May 2009 21:57:49 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/michaelstephenson/comments/132087.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/michaelstephenson/archive/2009/05/13/132087.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/michaelstephenson/comments/commentRss/132087.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/michaelstephenson/services/trackbacks/132087.aspx</trackback:ping>
        </item>
        <item>
            <title>BizTalk Testing Guidance - Revisited</title>
            <link>http://geekswithblogs.net/michaelstephenson/archive/2008/12/12/127828.aspx</link>
            <description>&lt;p&gt;I've updated my BizTalk Testing Guidance with some new articles based on what we learned today about BizTalk 2009. Please find the latest index below: &lt;/p&gt;
&lt;div&gt;
&lt;table style="BORDER-COLLAPSE: collapse" border="0"&gt;
    &lt;colgroup&gt;&lt;col style="WIDTH: 94px" /&gt;&lt;col style="WIDTH: 544px" /&gt;&lt;/colgroup&gt;
    &lt;tbody valign="top"&gt;
        &lt;tr style="BACKGROUND: #365f91"&gt;
            &lt;td style="BORDER-BOTTOM: black 0.5pt solid; BORDER-LEFT: black 0.5pt solid; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-TOP: black 0.5pt solid; BORDER-RIGHT: black 0.5pt solid"&gt;
            &lt;p&gt;&lt;span style="COLOR: white; FONT-SIZE: 14pt"&gt;&lt;strong&gt;Title&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
            &lt;/td&gt;
            &lt;td style="BORDER-BOTTOM: black 0.5pt solid; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-LEFT-STYLE: none; BORDER-TOP: black 0.5pt solid; BORDER-RIGHT: black 0.5pt solid"&gt;
            &lt;p&gt;&lt;span style="COLOR: white; FONT-SIZE: 14pt"&gt;&lt;strong&gt;Link &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-BOTTOM: black 0.5pt solid; BORDER-LEFT: black 0.5pt solid; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-TOP-STYLE: none; BORDER-RIGHT: black 0.5pt solid"&gt;
            &lt;p&gt;Introduction&lt;/p&gt;
            &lt;/td&gt;
            &lt;td style="BORDER-BOTTOM: black 0.5pt solid; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 0.5pt solid"&gt;
            &lt;p&gt;&lt;a href="http://geekswithblogs.net/michaelstephenson/archive/2008/03/30/120849.aspx"&gt;&lt;span style="FONT-FAMILY: Arial; COLOR: #223355; FONT-SIZE: 12pt"&gt;http://geekswithblogs.net/michaelstephenson/archive/2008/03/30/120849.aspx&lt;/span&gt;&lt;/a&gt;&lt;span style="FONT-FAMILY: Arial; FONT-SIZE: 12pt"&gt; &lt;/span&gt;&lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-BOTTOM: black 0.5pt solid; BORDER-LEFT: black 0.5pt solid; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-TOP-STYLE: none; BORDER-RIGHT: black 0.5pt solid"&gt;
            &lt;p&gt;Testing Schemas &lt;/p&gt;
            &lt;/td&gt;
            &lt;td style="BORDER-BOTTOM: black 0.5pt solid; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 0.5pt solid"&gt;
            &lt;p&gt;&lt;a href="http://geekswithblogs.net/michaelstephenson/archive/2008/03/30/120850.aspx"&gt;&lt;span style="FONT-FAMILY: Arial; COLOR: #223355; FONT-SIZE: 12pt"&gt;http://geekswithblogs.net/michaelstephenson/archive/2008/03/30/120850.aspx&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-BOTTOM: black 0.5pt solid; BORDER-LEFT: black 0.5pt solid; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-TOP-STYLE: none; BORDER-RIGHT: black 0.5pt solid"&gt;
            &lt;p&gt;Testing Maps &lt;/p&gt;
            &lt;/td&gt;
            &lt;td style="BORDER-BOTTOM: black 0.5pt solid; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 0.5pt solid"&gt;
            &lt;p&gt;&lt;a href="http://geekswithblogs.net/michaelstephenson/archive/2008/03/30/120851.aspx"&gt;&lt;span style="FONT-FAMILY: Arial; COLOR: #223355; FONT-SIZE: 12pt"&gt;http://geekswithblogs.net/michaelstephenson/archive/2008/03/30/120851.aspx&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-BOTTOM: black 0.5pt solid; BORDER-LEFT: black 0.5pt solid; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-TOP-STYLE: none; BORDER-RIGHT: black 0.5pt solid"&gt;
            &lt;p&gt;Testing Pipeline Components&lt;/p&gt;
            &lt;/td&gt;
            &lt;td style="BORDER-BOTTOM: black 0.5pt solid; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 0.5pt solid"&gt;
            &lt;p&gt;&lt;a href="http://geekswithblogs.net/michaelstephenson/archive/2008/03/30/120852.aspx"&gt;&lt;span style="FONT-FAMILY: Arial; COLOR: #223355; FONT-SIZE: 12pt"&gt;http://geekswithblogs.net/michaelstephenson/archive/2008/03/30/120852.aspx&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-BOTTOM: black 0.5pt solid; BORDER-LEFT: black 0.5pt solid; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-TOP-STYLE: none; BORDER-RIGHT: black 0.5pt solid"&gt;
            &lt;p&gt;Testing Pipelines &lt;/p&gt;
            &lt;/td&gt;
            &lt;td style="BORDER-BOTTOM: black 0.5pt solid; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 0.5pt solid"&gt;
            &lt;p&gt;&lt;a href="http://geekswithblogs.net/michaelstephenson/archive/2008/03/30/120853.aspx"&gt;&lt;span style="FONT-FAMILY: Arial; COLOR: #223355; FONT-SIZE: 12pt"&gt;http://geekswithblogs.net/michaelstephenson/archive/2008/03/30/120853.aspx&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-BOTTOM: black 0.5pt solid; BORDER-LEFT: black 0.5pt solid; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-TOP-STYLE: none; BORDER-RIGHT: black 0.5pt solid"&gt;
            &lt;p&gt;Testing Orchestrations &lt;/p&gt;
            &lt;/td&gt;
            &lt;td style="BORDER-BOTTOM: black 0.5pt solid; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 0.5pt solid"&gt;
            &lt;p&gt;&lt;a href="http://geekswithblogs.net/michaelstephenson/archive/2008/03/30/120854.aspx"&gt;&lt;span style="FONT-FAMILY: Arial; COLOR: #223355; FONT-SIZE: 12pt"&gt;http://geekswithblogs.net/michaelstephenson/archive/2008/03/30/120854.aspx&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-BOTTOM: black 0.5pt solid; BORDER-LEFT: black 0.5pt solid; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-TOP-STYLE: none; BORDER-RIGHT: black 0.5pt solid"&gt;
            &lt;p&gt;Testing .net Components &lt;/p&gt;
            &lt;/td&gt;
            &lt;td style="BORDER-BOTTOM: black 0.5pt solid; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 0.5pt solid"&gt;
            &lt;p&gt;&lt;a href="http://geekswithblogs.net/michaelstephenson/archive/2008/03/30/120855.aspx"&gt;&lt;span style="FONT-FAMILY: Arial; COLOR: #223355; FONT-SIZE: 12pt"&gt;http://geekswithblogs.net/michaelstephenson/archive/2008/03/30/120855.aspx&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-BOTTOM: black 0.5pt solid; BORDER-LEFT: black 0.5pt solid; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-TOP-STYLE: none; BORDER-RIGHT: black 0.5pt solid"&gt;
            &lt;p&gt;Testing Schemas with BizTalk 2009 &lt;/p&gt;
            &lt;/td&gt;
            &lt;td style="BORDER-BOTTOM: black 0.5pt solid; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 0.5pt solid"&gt;
            &lt;p&gt;&lt;span style="FONT-FAMILY: Arial; FONT-SIZE: 12pt"&gt;&lt;a href="http://geekswithblogs.net/michaelstephenson/archive/2008/12/12/127825.aspx"&gt;http://geekswithblogs.net/michaelstephenson/archive/2008/12/12/127825.aspx&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-BOTTOM: black 0.5pt solid; BORDER-LEFT: black 0.5pt solid; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-TOP-STYLE: none; BORDER-RIGHT: black 0.5pt solid"&gt;
            &lt;p&gt;Testing Maps with BizTalk 2009 &lt;/p&gt;
            &lt;/td&gt;
            &lt;td style="BORDER-BOTTOM: black 0.5pt solid; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 0.5pt solid"&gt;&lt;span style="FONT-FAMILY: Arial; FONT-SIZE: 12pt"&gt;&lt;a href="http://geekswithblogs.net/michaelstephenson/archive/2008/12/12/127826.aspx"&gt;
            &lt;p&gt;&lt;span style="FONT-FAMILY: Arial; FONT-SIZE: 12pt"&gt;http://geekswithblogs.net/michaelstephenson/archive/2008/12/12/127826.aspx&lt;/span&gt;&lt;/p&gt;
            &lt;/a&gt;&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td style="BORDER-BOTTOM: black 0.5pt solid; BORDER-LEFT: black 0.5pt solid; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-TOP-STYLE: none; BORDER-RIGHT: black 0.5pt solid"&gt;
            &lt;p&gt;Testing Pipelines and Pipeline Components with BizTalk 2009 &lt;/p&gt;
            &lt;/td&gt;
            &lt;td style="BORDER-BOTTOM: black 0.5pt solid; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-RIGHT: black 0.5pt solid"&gt;
            &lt;p&gt;&lt;span style="FONT-FAMILY: Arial; FONT-SIZE: 12pt"&gt;&lt;a href="http://geekswithblogs.net/michaelstephenson/archive/2008/12/12/127826.aspx"&gt;http://geekswithblogs.net/michaelstephenson/archive/2008/12/12/127826.aspx&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127828"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127828" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/michaelstephenson/aggbug/127828.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Michael Stephenson</dc:creator>
            <guid>http://geekswithblogs.net/michaelstephenson/archive/2008/12/12/127828.aspx</guid>
            <pubDate>Fri, 12 Dec 2008 07:42:21 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/michaelstephenson/comments/127828.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/michaelstephenson/archive/2008/12/12/127828.aspx#feedback</comments>
            <slash:comments>5</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/michaelstephenson/comments/commentRss/127828.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/michaelstephenson/services/trackbacks/127828.aspx</trackback:ping>
        </item>
        <item>
            <title>BizTalk Testing Series – Testing Pipelines and Pipeline Components in BizTalk 2009</title>
            <link>http://geekswithblogs.net/michaelstephenson/archive/2008/12/12/127827.aspx</link>
            <description>&lt;p&gt;A while back in my series of articles about testing with BizTalk I covered a technique for testing pipelines and pipeline components. The background to the approach is still valid in BizTalk 2009, but the technique is improved. To review the previous article refer to the following link: &lt;/p&gt;
&lt;p&gt;Pipeline Components - &lt;a href="http://geekswithblogs.net/michaelstephenson/archive/2008/03/30/120852.aspx"&gt;http://geekswithblogs.net/michaelstephenson/archive/2008/03/30/120852.aspx&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Pipelines - http://geekswithblogs.net/michaelstephenson/archive/2008/03/30/120853.aspx &lt;/p&gt;
&lt;p&gt;In this post although we could do testing of pipelines and pipelines components using the excellent pipeline component test library. While that component is excellent for testing, I think the new model provides a simpler option and to be honest with Pipeline Component Test Library it sometimes took a little bit of fiddling with setting up the pipeline wrappers to get your test to work. My gut feeling is that the new approach will just be that bit more straightforward. &lt;/p&gt;
&lt;p&gt;I will extend on the sample from the previous post about testing schemas. So our solution now looks like the below picture containing a pipeline &lt;/p&gt;
&lt;p style="TEXT-ALIGN: center"&gt;&lt;img alt="" src="http://geekswithblogs.net/images/geekswithblogs_net/michaelstephenson/121208_0133_BizTalkTest1.png" /&gt; &lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;Configure your BizTalk Project for Tests &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Just to reiterate this step from the previous post you need to ensure the enable unit testing property is set for the BizTalk project. &lt;/p&gt;
&lt;p style="TEXT-ALIGN: center"&gt;&lt;img alt="" src="http://geekswithblogs.net/images/geekswithblogs_net/michaelstephenson/121208_0133_BizTalkTest2.png" /&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;Adding references to your test assembly &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Again reiterating this step, in your test project you will need to add a couple of references, the main one is the new Microsoft.BizTalk.TestTools assembly which is in the Visual Studio Add Reference list. This will allow you to use these new testing features. You would also need to add references to the pipeline assemblies highlighted in the below picture &lt;/p&gt;
&lt;p style="TEXT-ALIGN: center"&gt;&lt;img alt="" src="http://geekswithblogs.net/images/geekswithblogs_net/michaelstephenson/121208_0133_BizTalkTest3.png" /&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;The test code &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;In the below code you can see that I will construct an instance of the TestableReceivePipeline which is what my custom receive pipeline will derive from. I can then provide documents and schema information and then execute my pipeline. Unfortunately the documentation of these objects doesn't seem to be complete in the initial CTP so Im guessing there are a few more ways you can configure these objects, but they will give you an easy way to test send and receive pipelines. &lt;/p&gt;
&lt;p style="TEXT-ALIGN: center"&gt;&lt;img alt="" src="http://geekswithblogs.net/images/geekswithblogs_net/michaelstephenson/121208_0133_BizTalkTest4.png" /&gt; &lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;What about Pipeline Components &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;In the Pipeline Component Test Library there was the ability to be able to construct a pipeline wrapper in code so you could simulate adding your custom pipeline component to different types of pipeline. I'm not sure that you can do this in the new features of BizTalk 2009, however you can just create a pipeline artefact and add your component to that. The other cool feature is you &lt;strong&gt;&lt;em&gt;might not&lt;/em&gt;&lt;/strong&gt; (haven't tried this) even have to add a new project for the BizTalk artefact as you can have BizTalk and C# files in the same project. &lt;/p&gt;
&lt;p&gt;&lt;span style="TEXT-DECORATION: underline"&gt;&lt;strong&gt;Summary &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;As you can see this new technique appears like it will be a simpler way to encourage testing. &lt;/p&gt;
&lt;p&gt;The sample for this demo is available at the following location: &lt;a href="http://www.box.net/shared/7rb81bcxsm"&gt;http://www.box.net/shared/7rb81bcxsm&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;If you have problems accessing it then let me know. &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127827"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127827" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/michaelstephenson/aggbug/127827.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Michael Stephenson</dc:creator>
            <guid>http://geekswithblogs.net/michaelstephenson/archive/2008/12/12/127827.aspx</guid>
            <pubDate>Fri, 12 Dec 2008 07:33:17 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/michaelstephenson/comments/127827.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/michaelstephenson/archive/2008/12/12/127827.aspx#feedback</comments>
            <slash:comments>5</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/michaelstephenson/comments/commentRss/127827.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/michaelstephenson/services/trackbacks/127827.aspx</trackback:ping>
        </item>
        <item>
            <title>BizTalk Testing Series – Testing Maps in BizTalk 2009</title>
            <link>http://geekswithblogs.net/michaelstephenson/archive/2008/12/12/127826.aspx</link>
            <description>&lt;p&gt;A while back in my series of articles about testing with BizTalk I covered a technique for testing maps. The background to the approach is still valid in BizTalk 2009, but the technique is improved. To review the previous article refer to the following link: &lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/michaelstephenson/archive/2008/03/30/120851.aspx"&gt;http://geekswithblogs.net/michaelstephenson/archive/2008/03/30/120851.aspx&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;In this post although we could do testing of maps, to be honest it was a little bit of a pain. In the newly released BizTalk 2009 CTP there have been some improvements in how you can do some of the testing and I would like to demonstrate this. I will walk through the steps to test your schema. &lt;/p&gt;
&lt;p&gt;I will extend on the sample from the previous post about testing schemas. So our solution now looks like the below picture containing an additional schema and a new map. &lt;/p&gt;
&lt;p style="TEXT-ALIGN: center"&gt;&lt;img alt="" src="http://geekswithblogs.net/images/geekswithblogs_net/michaelstephenson/121208_0045_BizTalkTest1.png" /&gt; &lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;Configure your BizTalk Project for Tests &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Just to reiterate this step from the previous post you need to ensure the enable unit testing property is set for the BizTalk project. &lt;/p&gt;
&lt;p style="TEXT-ALIGN: center"&gt;&lt;img alt="" src="http://geekswithblogs.net/images/geekswithblogs_net/michaelstephenson/121208_0045_BizTalkTest2.png" /&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;Adding references to your test assembly &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Again reiterating this step, in your test project you will need to add a couple of references, the main one is the new Microsoft.BizTalk.TestTools assembly which is in the Visual Studio Add Reference list. This will allow you to use these new testing features. &lt;/p&gt;
&lt;p style="TEXT-ALIGN: center"&gt;&lt;img alt="" src="http://geekswithblogs.net/images/geekswithblogs_net/michaelstephenson/121208_0045_BizTalkTest3.png" /&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;The test code &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;In the below picture you can see that I am doing two things. The first is that I create an instance of the new TestableMapBase class which my map derives from. I can use this to execute my map by passing the details of an input file. The results are written to the output file. &lt;/p&gt;
&lt;p&gt;I'm also using the schema validation to confirm that the message is valid that comes out. I think there are also properties of the TestableMapBase object which can do this. &lt;/p&gt;
&lt;p style="TEXT-ALIGN: center"&gt;&lt;img alt="" src="http://geekswithblogs.net/images/geekswithblogs_net/michaelstephenson/121208_0045_BizTalkTest4.png" /&gt; &lt;/p&gt;
&lt;p&gt;In practice when I use this technique I will probably execute the map with a known input file and then compare the results of the output file with a predefined example output file so rather than just validating the schema I'm actually also ensuring the content is exactly as expected. You can do this with a binary comparison of the file. &lt;/p&gt;
&lt;p&gt;&lt;span style="TEXT-DECORATION: underline"&gt;&lt;strong&gt;Summary &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;As you can see this new technique just simplifies what we had been doing in BizTalk 2006 R2 and is a very nice interface to support this testing. &lt;/p&gt;
&lt;p&gt;The sample for this demo is available at the following location: &lt;a href="http://www.box.net/shared/yro0poto3m"&gt;http://www.box.net/shared/yro0poto3m&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;If you have problems accessing it then let me know. &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127826"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127826" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/michaelstephenson/aggbug/127826.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Michael Stephenson</dc:creator>
            <guid>http://geekswithblogs.net/michaelstephenson/archive/2008/12/12/127826.aspx</guid>
            <pubDate>Fri, 12 Dec 2008 06:45:25 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/michaelstephenson/comments/127826.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/michaelstephenson/archive/2008/12/12/127826.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/michaelstephenson/comments/commentRss/127826.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/michaelstephenson/services/trackbacks/127826.aspx</trackback:ping>
        </item>
        <item>
            <title>BizTalk Testing Series – Testing Schema in BizTalk 2009</title>
            <link>http://geekswithblogs.net/michaelstephenson/archive/2008/12/12/127825.aspx</link>
            <description>&lt;p&gt;A while back in my series of articles about testing with BizTalk I covered a technique for testing schema. The background to the approach is still valid in BizTalk 2009, but the technique is improved. To review the previous article refer to the following link: &lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/michaelstephenson/archive/2008/03/30/120850.aspx"&gt;http://geekswithblogs.net/michaelstephenson/archive/2008/03/30/120850.aspx&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;In the newly released BizTalk 2009 CTP there have been some improvements in how you can do some of the testing and I would like to demonstrate this. I will walk through the steps to test your schema. &lt;/p&gt;
&lt;p&gt;Before I go into the details, we start with a simple project with two projects. The first is a BizTalk project with a schema and the second is a C# test project. The following steps need to be taken to setup your tests &lt;/p&gt;
&lt;p style="TEXT-ALIGN: center"&gt;&lt;img alt="" src="http://geekswithblogs.net/images/geekswithblogs_net/michaelstephenson/121208_0043_BizTalkTest1.png" /&gt; &lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;Configure your BizTalk Project for Tests &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The first step is to open the properties for your new BizTalk project. If you go to the Deployment section you can see highlighted in the below picture the setting which will turn on the generation of some additional code to allow you to test BizTalk artefacts. &lt;/p&gt;
&lt;p style="TEXT-ALIGN: center"&gt;&lt;img alt="" src="http://geekswithblogs.net/images/geekswithblogs_net/michaelstephenson/121208_0043_BizTalkTest2.png" /&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;Adding references to your test assembly &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;In your test project you will need to add a couple of references, the main one is the new Microsoft.BizTalk.TestTools assembly which is in the Visual Studio Add Reference list. This will allow you to use these new testing features. &lt;/p&gt;
&lt;p style="TEXT-ALIGN: center"&gt;&lt;img alt="" src="http://geekswithblogs.net/images/geekswithblogs_net/michaelstephenson/121208_0043_BizTalkTest3.png" /&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;The test code &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The following code snippet shows how you can create an instance of your schema which derives from the new TestableSchemaBase object. This has the new ValidateInstance method which allows you to pass in the path to a file containing the message you wish to validate. &lt;/p&gt;
&lt;p style="TEXT-ALIGN: center"&gt;&lt;img alt="" src="http://geekswithblogs.net/images/geekswithblogs_net/michaelstephenson/121208_0043_BizTalkTest4.png" /&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="TEXT-DECORATION: underline"&gt;&lt;strong&gt;Summary &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;As you can see this new technique just simplifies what we had been doing in BizTalk 2006 R2 and is a very nice interface to support this testing. &lt;/p&gt;
&lt;p&gt;The sample for this demo is available at the following location: &lt;a href="http://www.box.net/shared/2ojysf5ys3"&gt;http://www.box.net/shared/2ojysf5ys3&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;If you have problems accessing it then let me know. &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127825"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127825" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/michaelstephenson/aggbug/127825.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Michael Stephenson</dc:creator>
            <guid>http://geekswithblogs.net/michaelstephenson/archive/2008/12/12/127825.aspx</guid>
            <pubDate>Fri, 12 Dec 2008 06:43:51 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/michaelstephenson/comments/127825.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/michaelstephenson/archive/2008/12/12/127825.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/michaelstephenson/comments/commentRss/127825.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/michaelstephenson/services/trackbacks/127825.aspx</trackback:ping>
        </item>
        <item>
            <title>Detecting BizTalk Event with BizUnit</title>
            <link>http://geekswithblogs.net/michaelstephenson/archive/2008/07/23/123972.aspx</link>
            <description>&lt;p&gt;I came across an annoying one the other day, I havent had time to look into it in more detail, but here are some notes about it.&lt;/p&gt;
&lt;p&gt;In some of the tests we do with BizUnit we sometimes check the event log to see that certain messages have occured.  I came across an example I havent noticed before the other day.&lt;/p&gt;
&lt;p&gt;In my test I do a bunch of stuff then I wait until a custom event with a specific Event Id is logged to the event log.  I use the BizUnit event log check step and it finds my event fine.&lt;/p&gt;
&lt;p&gt;Later in the test I will do the following:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Stop the application pool for a web service I will call &lt;/li&gt;
    &lt;li&gt;Allow BizTalk to call the service and then suspend the service instance because the web service is unavailable &lt;/li&gt;
    &lt;li&gt;My test will detect the event logged by BizTalk Event ID - 5754 to indicate a call has failed.  I will also use the ValidationRegEx node to confirm the event message relates to my port &lt;/li&gt;
    &lt;li&gt;I will then start the application pool back up &lt;/li&gt;
    &lt;li&gt;I will then use a custom BizUnit step to resume the suspended instance &lt;/li&gt;
    &lt;li&gt;Finally I will check the process worked correctly &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This was working as far as the point of detecting the BizTalk event.  I could see in the event log the event I was expecting was there, but for some reason my step didnt spot it.&lt;/p&gt;
&lt;p&gt;Because I was using the regex feature this was my first thought, but the expression was simple and even if I took it away the event wasnt spotted still.&lt;/p&gt;
&lt;p&gt;It turns out when I wrote a little C# to check what comes back in the event log was that although the event in Event Viewer displays with the event number 5754, the event log instance from System.Diagnostics comes back with the following property values:&lt;/p&gt;
&lt;p&gt;- Event Id: 12588666&lt;/p&gt;
&lt;p&gt;- Instance Id: 3233814138&lt;/p&gt;
&lt;p&gt;When I changed the event number as appropriate it worked fine.  Frustrating but there you go.  &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=123972"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=123972" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/michaelstephenson/aggbug/123972.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Michael Stephenson</dc:creator>
            <guid>http://geekswithblogs.net/michaelstephenson/archive/2008/07/23/123972.aspx</guid>
            <pubDate>Wed, 23 Jul 2008 22:48:12 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/michaelstephenson/comments/123972.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/michaelstephenson/archive/2008/07/23/123972.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/michaelstephenson/comments/commentRss/123972.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/michaelstephenson/services/trackbacks/123972.aspx</trackback:ping>
        </item>
    </channel>
</rss>