<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Agile at Work &#187; Mocking</title>
	<atom:link href="http://www.agileatwork.com/tag/mocking/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.agileatwork.com</link>
	<description>by Michael Valenty</description>
	<lastBuildDate>Sat, 10 Sep 2011 14:35:33 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Moq Extension Methods for Unity</title>
		<link>http://www.agileatwork.com/moq-extension-methods-for-unity/</link>
		<comments>http://www.agileatwork.com/moq-extension-methods-for-unity/#comments</comments>
		<pubDate>Sat, 31 Oct 2009 15:36:30 +0000</pubDate>
		<dc:creator>Michael Valenty</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Mocking]]></category>
		<category><![CDATA[Unity]]></category>

		<guid isPermaLink="false">http://www.agileatwork.com/moq-extension-methods-for-unity/</guid>
		<description><![CDATA[A few people have asked about the RegisterMock extension method used in another post. The usage looks like this:
[Test]
public void Should_delete_removed_image()
{
    container.RegisterMock&#60;IFileRepository&#62;()
        .Setup(r =&#62; r.Delete(It.IsAny&#60;IFile&#62;()))
        .Verifiable();

    container.RegisterMock&#60;IBusinessRepository&#62;()
        .Setup(r [...]]]></description>
			<content:encoded><![CDATA[<p>A few people have asked about the <font face="Courier New" size="2">RegisterMock</font> extension method used in <a href="http://www.agileatwork.com/auto-mocking-unity-container-extension/">another post</a>. The usage looks like this:
<pre class="csharpcode">[Test]
<span class="kwrd">public</span> <span class="kwrd">void</span> Should_delete_removed_image()
{
    container.<span style="background: #ffffc0">RegisterMock</span>&lt;IFileRepository</span>&gt;()
        .Setup(r =&gt; r.Delete(It.IsAny&lt;IFile&gt;()))
        .Verifiable();

    container.<span style="background: #ffffc0">RegisterMock</span>&lt;IBusinessRepository&gt;()
        .Setup(r =&gt; r.FindById(3))
        .Returns(CreateBusinessWith(<span class="kwrd">new</span> BusinessImage { ImageId = 4 }));

    var controller = container.Resolve&lt;BusinessGalleryController&gt;();
    controller.Delete(3, 4);

    container.<span style="background: #ffffc0">VerifyMockFor</span>&lt;IFileRepository&gt;();
}</pre>
<p>It’s just a few helper extensions for using <a href="http://code.google.com/p/moq/">Moq</a> with <a href="http://www.codeplex.com/unity/">Unity</a> that cut down on the noise in tests. My friend Keith came up with it, I just happen to blog about it first. Here it is: </p>
<pre class="csharpcode"><span class="kwrd">public</span> <span class="kwrd">static</span> <span class="kwrd">class</span> MoqExtensions
{
    <span class="kwrd">public</span> <span class="kwrd">static</span> Mock&lt;T&gt; RegisterMock&lt;T&gt;(<span class="kwrd">this</span> IUnityContainer container) <span class="kwrd">where</span> T : <span class="kwrd">class</span>
    {
        var mock = <span class="kwrd">new</span> Mock&lt;T&gt;();

        container.RegisterInstance&lt;Mock&lt;T&gt;&gt;(mock);
        container.RegisterInstance&lt;T&gt;(mock.Object);

        <span class="kwrd">return</span> mock;
    }

    <span class="rem">/// &lt;summary&gt;</span>
    <span class="rem">/// Use this to add additional setups for a mock that is already registered</span>
    <span class="rem">/// &lt;/summary&gt;</span>
    <span class="kwrd">public</span> <span class="kwrd">static</span> Mock&lt;T&gt; ConfigureMockFor&lt;T&gt;(<span class="kwrd">this</span> IUnityContainer container) <span class="kwrd">where</span> T : <span class="kwrd">class</span>
    {
        <span class="kwrd">return</span> container.Resolve&lt;Mock&lt;T&gt;&gt;();
    }

    <span class="kwrd">public</span> <span class="kwrd">static</span> <span class="kwrd">void</span> VerifyMockFor&lt;T&gt;(<span class="kwrd">this</span> IUnityContainer container) <span class="kwrd">where</span> T : <span class="kwrd">class</span>
    {
        container.Resolve&lt;Mock&lt;T&gt;&gt;().VerifyAll();
    }
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.agileatwork.com/moq-extension-methods-for-unity/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

