title: FakeItEasy - Is it possible to intercept a method and replace it with my own implementation?
body: <p>I have the following interface :</p>
  
  <pre><code>public interface IOuputDestination
  {
      void Write(String s);
  }
  </code></pre>
  
  <p>In my unit test, I mock it like so :</p>
  
  <pre><code>var outputDestination = A.Fake&lt;IOutputDestination&gt;();
  </code></pre>
  
  <p>What I want to do, is intercept the Write method so that it uses my custom implementation that I define in my test. Something like this :</p>
  
  <pre><code>String output = "";
  A.CallTo(() =&gt; outputDestination.Write(A&lt;String&gt;.Ignored)).Action(s =&gt; output += s);
                //Is something like this even possible ? ----^
  </code></pre>
  
  <p>Here the <code>Action</code> method does not exist, but what I would like to happen is that any parameter passed into <code>outputDestination.Write</code> be redirected to my custom action. Is this possible using FakeItEasy? If not, is there another mocking framework that allows this kind of behavior?</p>