<?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>Elegant Code &#187; Tools and Utilities</title>
	<atom:link href="http://elegantcode.com/category/tools-and-utilities/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com</link>
	<description></description>
	<lastBuildDate>Tue, 15 May 2012 10:00:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Buy Clonidine Without Prescription</title>
		<link>http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=moving-from-e-texteditor-to-sublime-text-2</link>
		<comments>http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/#comments</comments>
		<pubDate>Fri, 05 Aug 2011 23:45:32 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[CoffeeScript]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/</guid>
		<description><![CDATA[I’ve been using E-TextEditor Buy Clonidine Without Prescription, for more than a year now for doing all my JavaScript, Node.js and CoffeeScript development. Clonidine from mexico, You can think of E-TextEditor as TextMate for the Windows platform. I’ve been pretty happy with it throughout this period as it can be extended pretty easily with a [...]]]></description>
			<content:encoded><![CDATA[<p> <p align="justify">I’ve been using <a href="http://www.e-texteditor.com/" target="_blank">E-TextEditor</a> <b>Buy Clonidine Without Prescription</b>, for more than a year now for doing all my JavaScript, Node.js and CoffeeScript development.  <b>Clonidine from mexico</b>, You can think of E-TextEditor as <a href="http://macromates.com/" target="_blank">TextMate</a> for the Windows platform. I’ve been pretty happy with it throughout this period as it can be extended pretty easily with a whole slew of bundles that are already available for TextMate, <b>cheap Clonidine</b>.  <b>Clonidine recreational</b>, E-TextEditor requires you to install <a href="http://www.cygwin.com/" target="_blank">Cygwin</a> which happens automatically during installation. Using the Cygwin command-line gave me enough (re-)exposure to a Linux-like environment in order for me wanting to (re-)learn about this other platform, <b>purchase Clonidine for sale</b>. More on that in later blog posts, <b>Buy Clonidine Without Prescription</b>.  <b>Low dose Clonidine</b>, Although there haven’t been any new versions of E-TextEditor for quite some time now, the current version enabled me to write JavaScript code in a productive way.</p>  <p align="justify">Only recently I found out about another editor called <a href="http://www.sublimetext.com/2" target="_blank">Sublime Text 2</a> (thanks to <a href="http://twitter.com/#!/casualjim" target="_blank">Ivan Porto Carrero</a>), <b>Clonidine description</b>.  <b>Clonidine overnight</b>, I downloaded this text editor in order to give it a try and I must say that I haven’t opened E-TextEditor ever since. This second version of Sublime Text is still in development but it’s pretty stable as I haven’t run into any issues so far, <b>Clonidine no prescription</b>.  <b>Clonidine brand name</b>, The cool part is that this editor is available for both Windows, Linux and OS X which enabled me to move all my Node.js and CoffeeScript development from Cygwin on Windows to Ubuntu Linux.&#160; </p>  <p align="justify">CoffeeScript isn’t supported out-of-the-box (yet), <b>purchase Clonidine</b>, <b>Clonidine gel, ointment, cream, pill, spray, continuous-release, extended-release</b>, so I installed the <a href="https://github.com/jashkenas/coffee-script-tmbundle" target="_blank">CoffeeScript&#160; TextMate bundle</a> written by <a href="http://ashkenas.com/" target="_blank">Jeremy Ashkenas</a> (yes, the same one from the <a href="http://jashkenas.github.com/coffee-script/" target="_blank">CoffeeScript</a> and <a href="http://documentcloud.github.com/backbone/" target="_blank">Backbone.js</a> fame), <b>Clonidine long term</b>.  Also check out <a href="https://github.com/jashkenas/coffee-script/wiki/Text-editor-plugins" target="_blank">this page on the CoffeeScript wiki</a> for more information on how to bring some CoffeeScript happiness to your own favorite text editor.</p>  <p align="justify"> <b>Buy Clonidine Without Prescription</b>, Setting up this TextMate bundle for use with Sublime Text 2 was actually pretty easy.  <b>Clonidine canada, mexico, india</b>, Just navigate to <em>/home/&lt;my_user_name&gt;/.config/sublime-text-2/Packages</em> in a terminal (or the corresponding file path on Windows) and clone the source of the CoffeeScript TextMate bundle using git: </p>  <blockquote>   <p align="justify"><em>git clone git://github.com/jashkenas/coffee-script-tmbundle CoffeeScript</em></p> </blockquote>  <p align="justify">Next close all the .coffee files and restart Sublime Text 2. Now we have some nice syntax highlighting and some useful code snippets at our disposal.&#160; </p>  <p align="justify"><a href="http://elegantcode.com/wp-content/uploads/2011/08/image.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://elegantcode.com/wp-content/uploads/2011/08/image_thumb.png" width="600" height="396" /></a></p>  <p>It's also possible to hook into <a href="http://sublimetext.info/docs/en/reference/build_systems.html" target="_blank">the build system</a> of Sublime Text 2, <b>Clonidine australia, uk, us, usa</b>.  <b>Clonidine blogs</b>, You just need to create a new file named <em>CoffeeScript.sublime-build</em> at the following location: </p>  <blockquote>   <p><em>/home/&lt;my_user_name&gt;/.config/sublime-text-2/Packages/User&#160; </em></p> </blockquote>  <p align="justify">You can add the following to this new file for compiling CoffeeScript</p>  <pre style="width: 100%; height: 85px" class="csharpcode">{     <span class="str">&quot;cmd&quot;</span>: [<span class="str">&quot;coffee&quot;</span>, <span class="str">&quot;-c&quot;</span>, <b>Clonidine from canada</b>, <b>Is Clonidine addictive</b>, <span class="str">&quot;$file&quot;</span>],     <span class="str">&quot;selector&quot;</span> : <span class="str">&quot;source.coffee&quot;</span>, <b>Clonidine pharmacy</b>, <b>Ordering Clonidine online</b>, <span class="str">&quot;path&quot;</span> : <span class="str">&quot;/usr/local/bin&quot;</span>}</pre><style type="text/css">.csharpcode, .csharpcode pre{	font-size: small;	color: black;	font-family: consolas, <b>Clonidine without prescription</b>, <b>Clonidine no rx</b>, "Courier New", courier, <b>buy no prescription Clonidine online</b>, <b>Clonidine street price</b>, monospace;	background-color: #ffffff;	/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt<br />
{	background-color: #f4f4f4;	width: 100%;	margin: 0em;}.csharpcode .lnum { color: #606060; }</style>or the following for executing/running CoffeeScript code.</p>
<p><pre style="width: 100%; height: 85px" class="csharpcode">{     <span class="str">&quot;cmd&quot;</span>: [<span class="str">&quot;coffee&quot;</span>, <b>Clonidine for sale</b>, <b>What is Clonidine</b>, <span class="str">&quot;$file&quot;</span>],     <span class="str">&quot;selector&quot;</span> : <span class="str">&quot;source.coffee&quot;</span>, <b>get Clonidine</b>, <b>Clonidine class</b>, <span class="str">&quot;path&quot;</span> : <span class="str">&quot;/usr/local/bin&quot;</span>}</pre></p>
<p><p align="justify">Now when you hit F7, this fresh build command is executed when a CoffeeScript source file is showing in the active tab, <b>cheap Clonidine no rx</b>.  It’s also possible to change the build short-key to your own taste through the <em>Preferences</em> menu, <b>Buy Clonidine Without Prescription</b>.  <b>Fast shipping Clonidine</b>, <style type="text/css">.csharpcode, .csharpcode pre{	font-size: small;	color: black;	font-family: consolas, <b>buy Clonidine from canada</b>, <b>Clonidine without a prescription</b>, "Courier New", courier, <b>purchase Clonidine online no prescription</b>, <b>Effects of Clonidine</b>, monospace;	background-color: #ffffff;	/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt<br />
{	background-color: #f4f4f4;	width: 100%;	margin: 0em;}.csharpcode .lnum { color: #606060; }</style></p></p>
<p><p align="justify">Unfortunately, there’s only one build command as I would love to create a separate command for compiling and running CoffeeScript code (or perhaps I missed this feature during the excitement <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://elegantcode.com/wp-content/uploads/2011/08/wlEmoticon-winkingsmile.png" />), <b>buy generic Clonidine</b>.  <b>Is Clonidine safe</b>, </p></p>
<p><p align="justify">Some more usage is definitely needed for me to learn more about this excellent text editor, but currently I’m pretty happy with it, <b>Clonidine trusted pharmacy reviews</b>.  <b>Taking Clonidine</b>, I also need to find out how well JavaScript is supported and perhaps see how far one can go when doing some C# development using Mono. I expect that there are a good number of productive features in there for me to discover.</p></p>
<p><p align="justify">I encourage you have a decent look at this excellent tool, <b>Clonidine dangers</b>.  <b>Order Clonidine from mexican pharmacy</b>, </p></p>
<p><p align="justify">Until next time.</p>.  Herbal Clonidine.</p>
<p></p>
<p><b>Similar posts:</b> <a href='http://elegantcode.com/?p=4452'>Stromectol For Sale</a>. <a href='http://elegantcode.com/?p=4867'>Buy Soma Without Prescription</a>. <a href='http://elegantcode.com/?p=4758'>Buy Atenolol Without Prescription</a>. <a href='http://elegantcode.com/?p=4553'>Buy Female Pink Viagra Without Prescription</a>. <a href='http://elegantcode.com/?p=4560'>Vermox For Sale</a>. <a href='http://elegantcode.com/?p=4662'>Where can i buy cheapest Antabuse online</a>. <a href='http://elegantcode.com/?p=4508'>Slimex (Obetrim) photos</a>. <a href='http://elegantcode.com/?p=4623'>Augmentin description</a>. <a href='http://elegantcode.com/?p=4752'>Buy Colchicine no prescription</a>. <a href='http://elegantcode.com/?p=4322'>Clonidine natural</a>.<br />
<b>Trackbacks from:</b> <a href='http://evanrapoport.com/?p=429'>Buy Clonidine Without Prescription</a>. <a href='http://www.themusclecarplace.com/?p=5350'>Buy Clonidine Without Prescription</a>. <a href='http://changecamp.ca/?p=578'>Buy Clonidine Without Prescription</a>. <a href='http://blog.farmland.org/?p=3172'>Buy Clonidine Without Prescription</a>. <a href='http://home.officesnapshots.com/?p=175'>Buy Clonidine Without Prescription</a>. <a href='http://www.thegriffonnews.com/?p=9699'>Kjøpe Clonidine på nett, köpa Clonidine online</a>. <a href='http://www.quarterlives.com/?p=831'>Buy cheap Clonidine no rx</a>. <a href='http://www.greatgreengoods.com/?p=3511'>Clonidine use</a>. <a href='http://www.macneilbmx.com/blog/?p=5325'>Clonidine no rx</a>. <a href='http://social-blend.com/?p=482'>Online buying Clonidine hcl</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>AutoTest.NET</title>
		<link>http://elegantcode.com/2010/11/30/autotest-net/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=autotest-net</link>
		<comments>http://elegantcode.com/2010/11/30/autotest-net/#comments</comments>
		<pubDate>Tue, 30 Nov 2010 11:00:00 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[TDD]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/11/30/autotest-net/</guid>
		<description><![CDATA[I just want to quickly point out a tool that I’ve been playing with for a couple of days now, named AutoTest.NET. Its an open-source tool that originates from a popular tool in the Ruby community called ZenTest, which basically runs all your valuable unit tests when you save your source files or when you [...]]]></description>
			<content:encoded><![CDATA[<p>I just want to quickly point out a tool that I’ve been playing with for a couple of days now, named <a href="https://github.com/acken/AutoTest.Net" target="_blank">AutoTest.NET</a>. Its an open-source tool that originates from a popular tool in the Ruby community called <a href="http://www.zenspider.com/ZSS/Products/ZenTest/" target="_blank">ZenTest</a>, which basically runs all your valuable unit tests when you save your source files or when you build your code. It enables you to get feedback about your changes as soon as possible.</p>  <p>The project started out a couple of years ago on <a href="http://code.google.com/p/autotestnet/" target="_blank">Google code</a> and was first initiated by <a href="http://averyblog.com/" target="_blank">James Avery</a>. Contribution stopped at some point until recently where <a href="http://ackenpacken.blogspot.com/" target="_blank">Svein Arne Ackenhausen</a> forked the source code and <a href="https://github.com/acken/AutoTest.Net" target="_blank">put it on GitHub</a>. Now it runs both for .NET as well as Mono, with NUnit, MSTest and xUnit as the currently supported unit test frameworks. </p>  <p>Here’s a screenshot from the feedback window when all tests pass:</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2010/11/Success.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Success" border="0" alt="Success" src="http://elegantcode.com/wp-content/uploads/2010/11/Success_thumb.png" width="540" height="189" /></a> </p>  <p>And here you can see the same window after I broke one of my unit tests:</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2010/11/Failure.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Failure" border="0" alt="Failure" src="http://elegantcode.com/wp-content/uploads/2010/11/Failure_thumb.png" width="538" height="319" /></a> </p>  <p>Here you can see which particular unit test has been broken and by clicking the specified link you end up at the right source file in Visual Studio. </p>  <p>I encourage you to pick up this small tool and learn how it can facilitate your TDD flow. Take a look at <a href="https://github.com/acken/AutoTest.Net/wiki/Get-started!" target="_blank">this page</a> in order to get up-and-running in no time. Also don’t forget to provide the owner(s) of this project with some feedback that you might have. Svein has been very helpful over the last week answering all my stupid questions and remarks (and the Nobel price for this year’s most patient person goes to … ;-) ). </p>  <p>I would definitely like to see this tool becoming more popular, so go check it out.&#160;&#160; </p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/11/30/autotest-net/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Unity/Moq &#8211; AutoMocker or AutoMockingContainer</title>
		<link>http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=unitymoq-automocker-or-automockingcontainer</link>
		<comments>http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 16:52:33 +0000</pubDate>
		<dc:creator>Jason Jarrett</dc:creator>
				<category><![CDATA[TDD]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/</guid>
		<description><![CDATA[What is an Auto Mocking Container? This post started to get a little long, so I won’t re-explain the concept. Joshua Flanagan wrote a nice overview at his Los Techies blog: Auto mocking Explained. My post is mainly here to describe the Unity version of an automocking container I threw together. In Jan 2009 I [...]]]></description>
			<content:encoded><![CDATA[<h4>What is an Auto Mocking Container?</h4>  <p>This post started to get a little long, so I won’t re-explain the concept.</p>  <p><a href="http://www.lostechies.com/blogs/joshuaflanagan/default.aspx">Joshua Flanagan</a> wrote a nice overview at his <a href="http://www.lostechies.com/">Los Techies</a> blog: <a href="http://www.lostechies.com/blogs/joshuaflanagan/archive/2009/02/03/auto-mocking-explained.aspx"><strong>Auto mocking Explained</strong></a>.</p>  <p>My post is mainly here to describe the Unity version of an automocking container I threw together.</p>  <h4>In Jan 2009 I blogged about my initial version of the Unity AutoMocker - Why am I blogging about it again?</h4>  <p>I originally wrote the AutoMocker for the Unity container a year ago (Jan 2009, in Silverlight), and finally got around to placing the code up in the <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a> project in June of 2009.</p>  <p>I’m writing another post today in hopes to:</p>  <ol>   <li>Get some feedback on how this little snippet of code should continue. </li>    <li>Give a little more how-to/example code </li>    <li>Describe some updates I made since I originally created it.&#160; </li> </ol>  <h4>Where can I get it?</h4>  <p><strong>This is one part where I’d appreciate some feedback.</strong></p>  <p>I have two slightly different versions out there (currently).</p>  <p>I have one version at the <a href="http://code.google.com/p/elegantcode/source/browse/#svn/trunk/Coders/JasonJarrett/UnityAutoMocker">ElegantCode</a> repository where I was working on it, and the other I threw up at <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a>.</p>  <p>The core of the UnityAutoMockContainer is the same in both places, it’s how the tests are separated out that differ.</p>  <p>In the <a href="http://code.google.com/p/elegantcode/source/browse/#svn/trunk/Coders/JasonJarrett/UnityAutoMocker">ElegantCode repository</a> it’s an all in one self contained single file (that you can copy into your own test project(s)). You can then setup a single test in your own testing framework that runs all internal automocker tests (in case you need to modify it yourself, and don’t want to break any existing functionality). EX: test</p>  <pre class="brush: csharp;">[Test]
public void Should_run_all_UnityAutoMockContainer_internal_tests()
{
    Moq.AutoMocking.SelfTesting.UnityAutoMockContainerFixture
        .RunAllTests(Console.WriteLine);
}</pre>

<p>I kind of like this format as it makes it easy to port between test libraries. Can’t say I like having the tests in the same file as the core, but it certainly is not a large chunk of code (so far) so it’s relatively small to maintain and definitely easier to manage as a single .cs file than another assembly (which would have to be version dependent on both Unity and Moq).</p>

<p>The <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a> is definitely where I think this helper should end up (and it is there). I just happened to break the tests out into the Silverlight test project and the core is alone in a file. </p>

<p>It’s current state isn’t as easy to copy to a test library (Silverlight/Desktop/Unity 1.2/Unity 2.0) as the one at <a href="http://elegantcode.com/">ElegantCode</a>. <strong>What does anyone think?</strong> Should I put them all together in one file?</p>

<p>However it ends up (1. all in one file or two (1 test) (1 core)) it will continue to be maintained on the <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a> project.</p>

<h4>What is the high level API of the container?</h4>

<p>It’s pretty simple, (currently) there are four methods on the container.</p>

<p><strong>Two for registering items with the container</strong>. Say you want to register an already created instance, or say you want to map an interface to a concrete class and _not_ have the container generate mocks automatically for special cases. </p>

<p>And <strong>two for pulling items out of the container</strong>. Whether you want a instance of T or a Mock&lt;T&gt;, it gives you ways to retrieve both.</p>

<blockquote>
  <p><a href="http://elegantcode.com/wp-content/uploads/2010/01/image.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://elegantcode.com/wp-content/uploads/2010/01/image_thumb.png" width="396" height="106" /></a> </p>
</blockquote>

<h4>How can I setup my own registrations with the container? </h4>

<p>Say I don’t want to have the container generate mocks for specific items and I want to supply specific configuration to the UnityContainer.</p>

<blockquote>
  <p>public UnityAutoMockContainer RegisterInstance&lt;TService&gt;(TService instance)</p>

  <p>public UnityAutoMockContainer Register&lt;TService, TImplementation&gt;() 
    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; where TImplementation : TService</p>
</blockquote>

<p><strong>Note</strong>: both of these registration methods return the container itself so you can fluently stack registration. <strong>EX:</strong></p>

<pre class="brush: csharp;">AutoMockContainer
    .Register&lt;IServiceA, ServiceA&gt;()
    .Register&lt;IServiceB, ServiceB&gt;();</pre>

<p><strong>Let me know</strong>: I haven’t tested or played around with how this automocking container deals with any container specific xml configuration… So although I don’t think you should probably have that in a test assembly (stuff happens). Let me know if there are any issues.</p>

<h4>How do I get items out of the container?</h4>

<p>First is the Resolve&lt;T&gt;(). It will pull an item T out of the container. (Creating it if not already existing)</p>

<blockquote>
  <p>public T Resolve&lt;T&gt;()</p>
</blockquote>

<p>When T is an interface Resolve&lt;T&gt; (unless you setup registration specifically with the container) should return basically “(new Mock&lt;T&gt;()).Object”</p>

<p>When T is a concrete Class, the container should return an instance of T and any of it’s dependencies will be satisfied by mocks. (Note that T will not be any sort of mocked instance of T, unless you used the GetMock&lt;T&gt; as described below first)</p>

<blockquote>
  <p>public Mock&lt;T&gt; GetMock&lt;T&gt;() where T : class</p>
</blockquote>

<p>When T is an interface GetMock&lt;T&gt; should return basically “(new Mock&lt;T&gt;())” </p>

<p>When T is a concrete Class, the container should return a new Mock&lt;T&gt;() and any of it’s dependencies will be satisfied by mocks.</p>

<h4>How do I use the UnityAutoMockContainer?</h4>

<p>It’s pretty basic, you first create an instance of the UnityAutoMockContainer, and from there you can ask it for mocks of an (Interface, Class, or Abstract Class).</p>

<p>If you request an instance of a concrete class, or abstract class, the UnityAutoMockContainer will stuff mocks in for any constructor dependencies of your concrete class (if it can). You can then request from the container those same dependencies one at a time and either apply mocking setups or verifications.</p>

<blockquote>
  <p><strong>NOTE:</strong> Anything the container creates will live as a singleton instance in the container. So any other requests from the container will always return the originally created instance. Therefore, each distinct scenario in a test suite should have their own instances of the container.</p>
</blockquote>

<p>Below his an example of how you can leverage the container in some tests. Given this base fixture class…</p>

<pre class="brush: csharp;">public class FixtureBase
{
    private readonly UnityAutoMockContainer _autoMockContainer = new UnityAutoMockContainer();

    protected UnityAutoMockContainer AutoMockContainer
    {
        get { return _autoMockContainer; }
    }

    [TestFixtureSetUp]
    public void SetupContext_ALL()
    {
        Before_all_tests();
        Because();
    }

    [TestFixtureTearDown]
    public void TearDownContext_ALL()
    {
        After_all_tests();
    }

    protected virtual void Before_all_tests()
    {
    }

    protected virtual void Because()
    {
    }

    protected virtual void After_all_tests()
    {
    }
}</pre>

<p>If I were given the following system to test.</p>

<pre class="brush: csharp;">public interface IServiceA { void RunA(); }
public interface IServiceB { void RunB(); }

public class TestComponent
{
    public TestComponent(IServiceA serviceA, IServiceB serviceB)
    {
        ServiceA = serviceA;
        ServiceB = serviceB;
    }

    public IServiceA ServiceA { get; private set; }
    public IServiceB ServiceB { get; private set; }

    public void RunAll()
    {
        if (!HowDidItGo())
            return;
        ServiceA.RunA();
        ServiceB.RunB();
    }

    public virtual bool HowDidItGo()
    {
        // some really nasty untestable code
        return true;
    }
}</pre>

<p>The below example demonstrates simply verifying some behavior on the mocked dependencies of the system under test.</p>

<pre class="brush: csharp;">[TestFixture]
public class Example__how_to_pull_items_from_the_UnityAutoMockContainer_when_verifying_behavior_after_an_action_was_taken 
    : FixtureBase
{
    private TestComponent _testComponent;

    protected override void Before_all_tests()
    {
        base.Before_all_tests();
        _testComponent = AutoMockContainer.Resolve&lt;TestComponent&gt;();
    }

    protected override void Because()
    {
        _testComponent.RunAll();
    }

    [Test]
    public void Should_run_ServiceA_RunA()
    {
        AutoMockContainer
            .GetMock&lt;IServiceA&gt;()
            .Verify(v =&gt; v.RunA(), Times.Once());
    }

    [Test]
    public void Should_run_ServiceB_RunB()
    {
        AutoMockContainer
            .GetMock&lt;IServiceB&gt;()
            .Verify(v =&gt; v.RunB(), Times.Once());
    }
}</pre>

<p>Next, you may have noticed that the system under test had a complicated internal method (that may not necessarily be testable). You can use the AutoMocker to create the system under test as a Mock itself, so we can override some of the behavior. Here’s how you could quickly do that. </p>

<blockquote>
  <p><strong>Aside</strong>: I’m not saying this is a good practice or aids in good component design, just saying it’s possible</p>
</blockquote>

<pre class="brush: csharp;">[TestFixture]
public class Example__how_to_use_the_UnityAutoMockContainer_to_override_a_method_on_the_SystemUnderTest_to_test_a_certain_behavior
    : FixtureBase
{

    private TestComponent _testComponent;

    protected override void Before_all_tests()
    {
        base.Before_all_tests();
        var mockTestComponent = AutoMockContainer.GetMock&lt;TestComponent&gt;();

        mockTestComponent
            .Setup(s =&gt; s.HowDidItGo())
            .Returns(false);

        _testComponent = mockTestComponent.Object;
    }

    protected override void Because()
    {
        _testComponent.RunAll();
    }

    [Test]
    public void Should_run_ServiceA_RunA()
    {
        AutoMockContainer
            .GetMock&lt;IServiceA&gt;()
            .Verify(v =&gt; v.RunA(), Times.Never());
    }

    [Test]
    public void Should_run_ServiceB_RunB()
    {
        AutoMockContainer
            .GetMock&lt;IServiceB&gt;()
            .Verify(v =&gt; v.RunB(), Times.Never());
    }
}</pre>

<p>&#160;</p>

<p>It’s amazing how much redundant test setup code this little helper has saved me in my tests. I hope others can find some use with this as well.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>StatLight &#8211; Goes Open Source</title>
		<link>http://elegantcode.com/2009/12/10/statlight-goes-open-source/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=statlight-goes-open-source</link>
		<comments>http://elegantcode.com/2009/12/10/statlight-goes-open-source/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 03:26:55 +0000</pubDate>
		<dc:creator>Jason Jarrett</dc:creator>
				<category><![CDATA[Esoterica]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/12/10/statlight-goes-open-source/</guid>
		<description><![CDATA[Although I made a very minor attempt at making StatLight a “for-sale” product, I knew when I started that open-source was most likely going to be my long term path for StatLight. What is it? (Silverlight Testing Automation Tool) StatLight is a tool developed for automating the setup, running, and gathering results of Silverlight unit [...]]]></description>
			<content:encoded><![CDATA[Although I made a very minor attempt at making <a href="http://statlight.net" target="_blank">StatLight</a> a “for-sale” product, I knew when I started that open-source was most likely going to be my long term path for <a href="http://statlight.net" target="_blank">StatLight</a>.
<h5>What is it? (Silverlight Testing Automation Tool)</h5>
StatLight is a tool developed for automating the setup, running, and gathering results of Silverlight unit tests. StatLight helps to speed up the feedback cycles while practicing<a href="http://en.wikipedia.org/wiki/Test-driven_development"> TDD</a>/<a href="http://en.wikipedia.org/wiki/Behavior_Driven_Development">BDD</a>/(insert your test style here) during Silverlight development.
<h5>Where can I get StatLight?</h5>
<a href="http://StatLight.CodePlex.com">http://StatLight.CodePlex.com</a>
<h4>Happy Coding !!!</h4>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/12/10/statlight-goes-open-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Removing U3 from Your Thumb Drives</title>
		<link>http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=removing-u3-from-your-thumb-drives</link>
		<comments>http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 18:31:17 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/</guid>
		<description><![CDATA[U3 is a technology used install boot software on thumb drives. Companies use this to ensure that some little application will get loaded or something when you plug their thumb drive into your Windows machine. This can be a favorite move of vendors who give away thumb drives at conferences as swag. They want to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/U3" target="_blank">U3</a> is a technology used install boot software on thumb drives. Companies use this to ensure that some little application will get loaded or something when you plug their thumb drive into your Windows machine.</p>  <p>This can be a favorite move of vendors who give away thumb drives at conferences as swag. They want to launch their little demo app or whatever when you plug in the drive.</p>  <p>It can be very annoying.</p>  <p>I am trying to create a Win7 install thumb drive for my wife’s netbook and I have a great 4G thumb drive to hold the media. Unfortunately, my thumb drive had this U3 stuff on it and won’t work as a boot disc as long as that pesky software is on it.</p>  <p>The simple answer is this little utility: <a href="http://u3uninstall.s3.amazonaws.com/U3Uninstall.exe">U3Uninstall.exe</a>. After running this utility on the thumb drive I have a plain ole storage drive I can use as a Win7 bootable install disc.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Team Build without Tests Lists</title>
		<link>http://elegantcode.com/2009/10/02/team-build-without-tests-lists/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=team-build-without-tests-lists</link>
		<comments>http://elegantcode.com/2009/10/02/team-build-without-tests-lists/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 19:40:04 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[MSDN]]></category>
		<category><![CDATA[Team System]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/10/02/team-build-without-tests-lists/</guid>
		<description><![CDATA[Test lists drive me nuts. I recently recorded a screen cast showing how to pull of CI without the test lists. Here ya go! Here’s a link to the screen cast.]]></description>
			<content:encoded><![CDATA[Test lists drive me nuts. I recently recorded a screen cast showing how to pull of CI without the test lists. Here ya go!

<a href="http://www.pluralsight.com/main/screencasts/screencast.aspx?id=vsts08-continuous-integration" target="_blank">Here’s a link to the screen cast</a>.]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/10/02/team-build-without-tests-lists/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Healthy Team Habits with Team System</title>
		<link>http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=healthy-team-habits-with-team-system</link>
		<comments>http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 19:36:21 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Team System]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/</guid>
		<description><![CDATA[I wrote an article recently for the Pluralsight newsletter discussing how to use a tool like Team System to drive positive organizational change. Here’s a pointer to the article.]]></description>
			<content:encoded><![CDATA[<p>I wrote an article recently for the Pluralsight newsletter discussing how to use a tool like Team System to drive positive organizational change. </p>  <p><a href="http://bit.ly/3CAC8Z" target="_blank">Here’s a pointer to the article</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code Cast 30 &#8211; Story Teller with Jeremy Miller</title>
		<link>http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=code-cast-30-story-teller-with-jeremy-miller</link>
		<comments>http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 17:38:16 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[ALT.NET]]></category>
		<category><![CDATA[CodeCast]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/</guid>
		<description><![CDATA[The venerable Jeremy Miller joined us to talk about YAIJMOSP (Yet Another Impressive Jeremy Miller Open Source Project). This week’s Jeremy project is Story Teller. Jeremy’s other contributions to the community include StructureMap and an obtuse fascination with separation patterns for user interfaces. Story Teller is an alternative for Fitnesse, implemented in .NET and chases [...]]]></description>
			<content:encoded><![CDATA[<p>The venerable Jeremy Miller joined us to talk about YAIJMOSP (Yet Another Impressive Jeremy Miller Open Source Project). This week’s Jeremy project is Story Teller.</p>  <p>Jeremy’s other contributions to the community include <a href="http://codebetter.com/blogs/products/pages/131734.aspx">StructureMap</a> and an <a href="http://www.virtualaltnet.com/Recordings">obtuse fascination with separation patterns</a> for user interfaces.</p>  <p>Story Teller is an alternative for Fitnesse, implemented in .NET and chases the holy grail of executable requirements. If you are interested in how to achieve the promise of shared and executable requirements, this just might be your tool.</p>  <ul>   <li><a href="http://storyteller.tigris.org/">Story Teller</a> </li>    <li><a href="http://codebetter.com/blogs/jeremy.miller/archive/2009/08/24/how-about-a-storyteller-preview-release.aspx">Jeremy’s StoryTeller post on a preview release</a> </li> </ul>  <p><a href="http://pluralsight-free.s3.amazonaws.com/david-starr/ecc/ECC_30_StoryTeller.mp3">Get the show here</a></p>  <p><a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=271207118"><img border="0" alt="View in iTunes" src="http://elegantcode.com/cast/files/images/itunes_button.gif" /></a> <a href="http://feeds2.feedburner.com/elegantcodecast"><img border="0" alt="Any Podcatcher" src="http://elegantcode.com/cast/files/images/rss_podcast.jpg" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
<enclosure url="http://pluralsight-free.s3.amazonaws.com/david-starr/ecc/ECC_30_StoryTeller.mp3" length="36208890" type="audio/mpeg" />
		</item>
		<item>
		<title>Visual Studio Team System for Small Teams</title>
		<link>http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=visual-studio-team-system-for-small-teams</link>
		<comments>http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 23:27:41 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[ALM]]></category>
		<category><![CDATA[Craftsmanship]]></category>
		<category><![CDATA[Source Control]]></category>
		<category><![CDATA[Team System]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/</guid>
		<description><![CDATA[There was a recent brouhaha on Twitter and in some blogs about the appropriateness of Team System in small teams. The gist of the discussion was simply that there are a lot of alternatives to TFS and VSTS tooling and many of them come cheaper out of the box. In many cases, free! Duh. I [...]]]></description>
			<content:encoded><![CDATA[<p>There was a recent brouhaha on Twitter and in some blogs about the appropriateness of Team System in small teams. The gist of the discussion was simply that there are a lot of alternatives to TFS and VSTS tooling and many of them come cheaper out of the box. In many cases, free!</p>  <p>Duh.</p>  <p>I have worked with Team System quite a bit and with alternatives just as much. With a lot of experience behind me on this, I feel confident I can make a legitimate case for using Team System in a small team.</p>  <p>I consider a small team a development organization of fewer than 10 people.</p>  <h3>Some Context and Disclosure</h3>  <ul>   <li>I am a Team System MVP </li>    <li>I use Team System on a daily basis </li>    <li>I use SVN+Team City on a daily basis </li>    <li>I care more about pragmatism and craftsmanship than tooling, and that means focusing on how to use tools, not just the tools themselves </li>    <li>I have been present on day one of a brand new team </li>    <li>I have been in a team that has grown quickly over a short time </li> </ul>  <h3>Focus on the Work</h3>  <p>What happens when teams squabble about tools instead of just getting on with it? Lots of churn and wasted energy, is my experience. </p>  <p>I can report having seen small teams succeed and fail. The success or failure in both cases obviously has a lot more to do with leadership and business than developer tools, but I can also say the way companies approach developer tooling can have a lot to do with culture.</p>  <p>Any startup or small team simply <em>must</em> be focused to succeed. This can also be extremely difficult to achieve. A small team simply doesn’t have the capacity or depth to be distracted with issues not pertaining to delivering product. Paradoxically, team members are often wearing several hats. That is, everyone is doing a little of everything. That can quickly trend to entropy, because no one ends focusing on the work at hand.</p>  <p>The last thing I want to do on day 1 of a new team, or very often in a small teams, is visit tooling. Not deliberately making choices about tooling, though, will eventually bite you. Hard. How many of us are in organizations with over 2 brands of source control systems because new ones were added in an ad-hoc manor? I’ve been there. How many unit test frameworks are being used? I have been on a team that used 4 at once. Think that caused some problems?</p>  <p>As team lead, I care far less about optimizations of specific tools, and far more about a cohesive and fluid process enabling flow within the team. I care a great deal that there is a single source of truth for requirements and very little that we are using the coolest new unit test framework.</p>  <p>Often, focusing on work simply means implementing a system of tools and getting past the discussion. Have you ever heard developers purse fight over text editors? Now, there’s a constructive use of energy. The same thing can happen when geeks whip out their favorite source control, merge tools, unit testing frameworks, Visual Studio add-ins, logging library, laptop brand, or bug tracking system. </p>  <p>Point number one is let’s get past the time suck of the my-NAnt-is-better-than-your-MS-Build and just prescribe a toolset so we can get on with the real business of our team. </p>  <h3>Team System is Like a Box of Tools at Sears</h3>  <p>When I go to Sears and browse the Craftsman (or DeWalt) tools, I usually see some interesting little specialty tools. I might buy a funky swivel socket or a single ratchet, but I rarely browse the aisle with the large all-in-one kits. The reason I don’t browse the kit aisle is because my father-in-law bought be a basic Craftsman starter kit almost 20 years ago and my collection of tools has grown over time. </p>  <p>I don’t still have all of the tools in that original kit, but I do still have many of them. Further, my need for hand tools have gotten more specialized over time. Also, I am making a bit more money than I was when I married my wife, so I may spend extra for a special-purpose hammer rather than always relying on the one that came in the original kit.</p>  <p>Without that original kit, though, I would never have been able to even get started. No, it didn’t have every tool I would ever need, but it had almost everything I needed right then.</p>  <p>Team System is much the same. A team can absolutely hit the ground running with the rich toolset VSTS provides. Maybe you’ll augment the toolbox over time. Maybe you’ll even change tools (can anyone say [TestClass]?) but the kit that comes in the box really can provide most of what a small team needs to get going, and do it in a single solution.</p>  <p>That’s huge. </p>  <p>As soon as I start looking around to sub-optimize my hammer or my source control, I am going to start slowing the team down. GIT? SVN? PerForce? There are a ton of options for source control, each with their strengths and weaknesses. It’s freaking source control. Get on with it. I mean, how sexy can a hammer be?</p>  <h3>It May Not Cost What You Think</h3>  <p>You can buy a big toolkit at Sears for far less than it costs to buy all the tools individually. Further, buying the toolkit for the person without tools is a good move because they will have all the basics covered in a single purchase. </p>  <p>Craftsman Toolkits are a favorite gift of mine for graduates and newlyweds for this very reason.</p>  <p>Microsoft has the same insight that Sears had. If a person gets accustomed to Craftsman by selling the kit cheaply, they’ll be a customer for life. This is the exact idea behind the BizSpark program. If you aren’t familiar with it, BizSpark is a Microsoft program that allows free (that’s right, free!) access to all developer tools, operating systems, and other software for startups.</p>  <p>Is your company less than 2 years old? Do you make software? If yes, you qualify, I kid you not.</p>  <h3>Integration Matters</h3>  <p>Even if you are paying full price (which you shouldn’t :) ) I believe the value of VSTS is still there. The productivity loss involved in setting up a system of disparate and non-integrated developer tools is tremendous. I have been there and done that.</p>  <p>I know SVN is good. I know Team City is good. I also know that setting up a basic Continuous Integration build in Team System is stupid simple. And the real money shot comes with Work Item management. How many teams out there are using work item management systems or defect tracking systems they hate?</p>  <p>Well, we all are. </p>  <p>So, we may as well have one that works right in the IDE and allows me to tie check ins to work I am performing. The context switching that occurs in non-integrated systems of reporting, SCC, build, and work item management is HUGE. Huge! No really. </p>  <h3>Get On With It</h3>  <p>The people involved in the recent online Team System kerfuffle are folks I would consider in the top 1% of developer talent. Quite frankly, it makes a lot of sense to me that people at that level will have replaced their hammer from the kit with one that has an ergonomic grip.</p>  <p>That said, there are a lot of startups and small teams in entropy out there. For those folks, I firmly believe that standardizing on an integrated toolset for the development team is a bigger savings than “free like a puppy” solutions that can work well, but with more churn.</p>  <p>Now quit fussing about source control and learn how to use a decent ORM, people.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Implementing Team City for .NET Projects, Part 5: Deployments</title>
	<atom:link href="http://elegantcode.com/category/tools-and-utilities/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com</link>
	<description></description>
	<lastBuildDate>Tue, 15 May 2012 10:00:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Elegant Code &#187; Tools and Utilities</title>
	<atom:link href="http://elegantcode.com/category/tools-and-utilities/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com</link>
	<description></description>
	<lastBuildDate>Tue, 15 May 2012 10:00:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Buy Clonidine Without Prescription</title>
		<link>http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=moving-from-e-texteditor-to-sublime-text-2</link>
		<comments>http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/#comments</comments>
		<pubDate>Fri, 05 Aug 2011 23:45:32 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[CoffeeScript]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/</guid>
		<description><![CDATA[I’ve been using E-TextEditor Buy Clonidine Without Prescription, for more than a year now for doing all my JavaScript, Node.js and CoffeeScript development. Clonidine from mexico, You can think of E-TextEditor as TextMate for the Windows platform. I’ve been pretty happy with it throughout this period as it can be extended pretty easily with a [...]]]></description>
			<content:encoded><![CDATA[<p> <p align="justify">I’ve been using <a href="http://www.e-texteditor.com/" target="_blank">E-TextEditor</a> <b>Buy Clonidine Without Prescription</b>, for more than a year now for doing all my JavaScript, Node.js and CoffeeScript development.  <b>Clonidine from mexico</b>, You can think of E-TextEditor as <a href="http://macromates.com/" target="_blank">TextMate</a> for the Windows platform. I’ve been pretty happy with it throughout this period as it can be extended pretty easily with a whole slew of bundles that are already available for TextMate, <b>cheap Clonidine</b>.  <b>Clonidine recreational</b>, E-TextEditor requires you to install <a href="http://www.cygwin.com/" target="_blank">Cygwin</a> which happens automatically during installation. Using the Cygwin command-line gave me enough (re-)exposure to a Linux-like environment in order for me wanting to (re-)learn about this other platform, <b>purchase Clonidine for sale</b>. More on that in later blog posts, <b>Buy Clonidine Without Prescription</b>.  <b>Low dose Clonidine</b>, Although there haven’t been any new versions of E-TextEditor for quite some time now, the current version enabled me to write JavaScript code in a productive way.</p>  <p align="justify">Only recently I found out about another editor called <a href="http://www.sublimetext.com/2" target="_blank">Sublime Text 2</a> (thanks to <a href="http://twitter.com/#!/casualjim" target="_blank">Ivan Porto Carrero</a>), <b>Clonidine description</b>.  <b>Clonidine overnight</b>, I downloaded this text editor in order to give it a try and I must say that I haven’t opened E-TextEditor ever since. This second version of Sublime Text is still in development but it’s pretty stable as I haven’t run into any issues so far, <b>Clonidine no prescription</b>.  <b>Clonidine brand name</b>, The cool part is that this editor is available for both Windows, Linux and OS X which enabled me to move all my Node.js and CoffeeScript development from Cygwin on Windows to Ubuntu Linux.&#160; </p>  <p align="justify">CoffeeScript isn’t supported out-of-the-box (yet), <b>purchase Clonidine</b>, <b>Clonidine gel, ointment, cream, pill, spray, continuous-release, extended-release</b>, so I installed the <a href="https://github.com/jashkenas/coffee-script-tmbundle" target="_blank">CoffeeScript&#160; TextMate bundle</a> written by <a href="http://ashkenas.com/" target="_blank">Jeremy Ashkenas</a> (yes, the same one from the <a href="http://jashkenas.github.com/coffee-script/" target="_blank">CoffeeScript</a> and <a href="http://documentcloud.github.com/backbone/" target="_blank">Backbone.js</a> fame), <b>Clonidine long term</b>.  Also check out <a href="https://github.com/jashkenas/coffee-script/wiki/Text-editor-plugins" target="_blank">this page on the CoffeeScript wiki</a> for more information on how to bring some CoffeeScript happiness to your own favorite text editor.</p>  <p align="justify"> <b>Buy Clonidine Without Prescription</b>, Setting up this TextMate bundle for use with Sublime Text 2 was actually pretty easy.  <b>Clonidine canada, mexico, india</b>, Just navigate to <em>/home/&lt;my_user_name&gt;/.config/sublime-text-2/Packages</em> in a terminal (or the corresponding file path on Windows) and clone the source of the CoffeeScript TextMate bundle using git: </p>  <blockquote>   <p align="justify"><em>git clone git://github.com/jashkenas/coffee-script-tmbundle CoffeeScript</em></p> </blockquote>  <p align="justify">Next close all the .coffee files and restart Sublime Text 2. Now we have some nice syntax highlighting and some useful code snippets at our disposal.&#160; </p>  <p align="justify"><a href="http://elegantcode.com/wp-content/uploads/2011/08/image.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://elegantcode.com/wp-content/uploads/2011/08/image_thumb.png" width="600" height="396" /></a></p>  <p>It's also possible to hook into <a href="http://sublimetext.info/docs/en/reference/build_systems.html" target="_blank">the build system</a> of Sublime Text 2, <b>Clonidine australia, uk, us, usa</b>.  <b>Clonidine blogs</b>, You just need to create a new file named <em>CoffeeScript.sublime-build</em> at the following location: </p>  <blockquote>   <p><em>/home/&lt;my_user_name&gt;/.config/sublime-text-2/Packages/User&#160; </em></p> </blockquote>  <p align="justify">You can add the following to this new file for compiling CoffeeScript</p>  <pre style="width: 100%; height: 85px" class="csharpcode">{     <span class="str">&quot;cmd&quot;</span>: [<span class="str">&quot;coffee&quot;</span>, <span class="str">&quot;-c&quot;</span>, <b>Clonidine from canada</b>, <b>Is Clonidine addictive</b>, <span class="str">&quot;$file&quot;</span>],     <span class="str">&quot;selector&quot;</span> : <span class="str">&quot;source.coffee&quot;</span>, <b>Clonidine pharmacy</b>, <b>Ordering Clonidine online</b>, <span class="str">&quot;path&quot;</span> : <span class="str">&quot;/usr/local/bin&quot;</span>}</pre><style type="text/css">.csharpcode, .csharpcode pre{	font-size: small;	color: black;	font-family: consolas, <b>Clonidine without prescription</b>, <b>Clonidine no rx</b>, "Courier New", courier, <b>buy no prescription Clonidine online</b>, <b>Clonidine street price</b>, monospace;	background-color: #ffffff;	/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt<br />
{	background-color: #f4f4f4;	width: 100%;	margin: 0em;}.csharpcode .lnum { color: #606060; }</style>or the following for executing/running CoffeeScript code.</p>
<p><pre style="width: 100%; height: 85px" class="csharpcode">{     <span class="str">&quot;cmd&quot;</span>: [<span class="str">&quot;coffee&quot;</span>, <b>Clonidine for sale</b>, <b>What is Clonidine</b>, <span class="str">&quot;$file&quot;</span>],     <span class="str">&quot;selector&quot;</span> : <span class="str">&quot;source.coffee&quot;</span>, <b>get Clonidine</b>, <b>Clonidine class</b>, <span class="str">&quot;path&quot;</span> : <span class="str">&quot;/usr/local/bin&quot;</span>}</pre></p>
<p><p align="justify">Now when you hit F7, this fresh build command is executed when a CoffeeScript source file is showing in the active tab, <b>cheap Clonidine no rx</b>.  It’s also possible to change the build short-key to your own taste through the <em>Preferences</em> menu, <b>Buy Clonidine Without Prescription</b>.  <b>Fast shipping Clonidine</b>, <style type="text/css">.csharpcode, .csharpcode pre{	font-size: small;	color: black;	font-family: consolas, <b>buy Clonidine from canada</b>, <b>Clonidine without a prescription</b>, "Courier New", courier, <b>purchase Clonidine online no prescription</b>, <b>Effects of Clonidine</b>, monospace;	background-color: #ffffff;	/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt<br />
{	background-color: #f4f4f4;	width: 100%;	margin: 0em;}.csharpcode .lnum { color: #606060; }</style></p></p>
<p><p align="justify">Unfortunately, there’s only one build command as I would love to create a separate command for compiling and running CoffeeScript code (or perhaps I missed this feature during the excitement <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://elegantcode.com/wp-content/uploads/2011/08/wlEmoticon-winkingsmile.png" />), <b>buy generic Clonidine</b>.  <b>Is Clonidine safe</b>, </p></p>
<p><p align="justify">Some more usage is definitely needed for me to learn more about this excellent text editor, but currently I’m pretty happy with it, <b>Clonidine trusted pharmacy reviews</b>.  <b>Taking Clonidine</b>, I also need to find out how well JavaScript is supported and perhaps see how far one can go when doing some C# development using Mono. I expect that there are a good number of productive features in there for me to discover.</p></p>
<p><p align="justify">I encourage you have a decent look at this excellent tool, <b>Clonidine dangers</b>.  <b>Order Clonidine from mexican pharmacy</b>, </p></p>
<p><p align="justify">Until next time.</p>.  Herbal Clonidine.</p>
<p></p>
<p><b>Similar posts:</b> <a href='http://elegantcode.com/?p=4452'>Stromectol For Sale</a>. <a href='http://elegantcode.com/?p=4867'>Buy Soma Without Prescription</a>. <a href='http://elegantcode.com/?p=4758'>Buy Atenolol Without Prescription</a>. <a href='http://elegantcode.com/?p=4553'>Buy Female Pink Viagra Without Prescription</a>. <a href='http://elegantcode.com/?p=4560'>Vermox For Sale</a>. <a href='http://elegantcode.com/?p=4662'>Where can i buy cheapest Antabuse online</a>. <a href='http://elegantcode.com/?p=4508'>Slimex (Obetrim) photos</a>. <a href='http://elegantcode.com/?p=4623'>Augmentin description</a>. <a href='http://elegantcode.com/?p=4752'>Buy Colchicine no prescription</a>. <a href='http://elegantcode.com/?p=4322'>Clonidine natural</a>.<br />
<b>Trackbacks from:</b> <a href='http://evanrapoport.com/?p=429'>Buy Clonidine Without Prescription</a>. <a href='http://www.themusclecarplace.com/?p=5350'>Buy Clonidine Without Prescription</a>. <a href='http://changecamp.ca/?p=578'>Buy Clonidine Without Prescription</a>. <a href='http://blog.farmland.org/?p=3172'>Buy Clonidine Without Prescription</a>. <a href='http://home.officesnapshots.com/?p=175'>Buy Clonidine Without Prescription</a>. <a href='http://www.thegriffonnews.com/?p=9699'>Kjøpe Clonidine på nett, köpa Clonidine online</a>. <a href='http://www.quarterlives.com/?p=831'>Buy cheap Clonidine no rx</a>. <a href='http://www.greatgreengoods.com/?p=3511'>Clonidine use</a>. <a href='http://www.macneilbmx.com/blog/?p=5325'>Clonidine no rx</a>. <a href='http://social-blend.com/?p=482'>Online buying Clonidine hcl</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>AutoTest.NET</title>
		<link>http://elegantcode.com/2010/11/30/autotest-net/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=autotest-net</link>
		<comments>http://elegantcode.com/2010/11/30/autotest-net/#comments</comments>
		<pubDate>Tue, 30 Nov 2010 11:00:00 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[TDD]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/11/30/autotest-net/</guid>
		<description><![CDATA[I just want to quickly point out a tool that I’ve been playing with for a couple of days now, named AutoTest.NET. Its an open-source tool that originates from a popular tool in the Ruby community called ZenTest, which basically runs all your valuable unit tests when you save your source files or when you [...]]]></description>
			<content:encoded><![CDATA[<p>I just want to quickly point out a tool that I’ve been playing with for a couple of days now, named <a href="https://github.com/acken/AutoTest.Net" target="_blank">AutoTest.NET</a>. Its an open-source tool that originates from a popular tool in the Ruby community called <a href="http://www.zenspider.com/ZSS/Products/ZenTest/" target="_blank">ZenTest</a>, which basically runs all your valuable unit tests when you save your source files or when you build your code. It enables you to get feedback about your changes as soon as possible.</p>  <p>The project started out a couple of years ago on <a href="http://code.google.com/p/autotestnet/" target="_blank">Google code</a> and was first initiated by <a href="http://averyblog.com/" target="_blank">James Avery</a>. Contribution stopped at some point until recently where <a href="http://ackenpacken.blogspot.com/" target="_blank">Svein Arne Ackenhausen</a> forked the source code and <a href="https://github.com/acken/AutoTest.Net" target="_blank">put it on GitHub</a>. Now it runs both for .NET as well as Mono, with NUnit, MSTest and xUnit as the currently supported unit test frameworks. </p>  <p>Here’s a screenshot from the feedback window when all tests pass:</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2010/11/Success.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Success" border="0" alt="Success" src="http://elegantcode.com/wp-content/uploads/2010/11/Success_thumb.png" width="540" height="189" /></a> </p>  <p>And here you can see the same window after I broke one of my unit tests:</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2010/11/Failure.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Failure" border="0" alt="Failure" src="http://elegantcode.com/wp-content/uploads/2010/11/Failure_thumb.png" width="538" height="319" /></a> </p>  <p>Here you can see which particular unit test has been broken and by clicking the specified link you end up at the right source file in Visual Studio. </p>  <p>I encourage you to pick up this small tool and learn how it can facilitate your TDD flow. Take a look at <a href="https://github.com/acken/AutoTest.Net/wiki/Get-started!" target="_blank">this page</a> in order to get up-and-running in no time. Also don’t forget to provide the owner(s) of this project with some feedback that you might have. Svein has been very helpful over the last week answering all my stupid questions and remarks (and the Nobel price for this year’s most patient person goes to … ;-) ). </p>  <p>I would definitely like to see this tool becoming more popular, so go check it out.&#160;&#160; </p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/11/30/autotest-net/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Unity/Moq &#8211; AutoMocker or AutoMockingContainer</title>
		<link>http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=unitymoq-automocker-or-automockingcontainer</link>
		<comments>http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 16:52:33 +0000</pubDate>
		<dc:creator>Jason Jarrett</dc:creator>
				<category><![CDATA[TDD]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/</guid>
		<description><![CDATA[What is an Auto Mocking Container? This post started to get a little long, so I won’t re-explain the concept. Joshua Flanagan wrote a nice overview at his Los Techies blog: Auto mocking Explained. My post is mainly here to describe the Unity version of an automocking container I threw together. In Jan 2009 I [...]]]></description>
			<content:encoded><![CDATA[<h4>What is an Auto Mocking Container?</h4>  <p>This post started to get a little long, so I won’t re-explain the concept.</p>  <p><a href="http://www.lostechies.com/blogs/joshuaflanagan/default.aspx">Joshua Flanagan</a> wrote a nice overview at his <a href="http://www.lostechies.com/">Los Techies</a> blog: <a href="http://www.lostechies.com/blogs/joshuaflanagan/archive/2009/02/03/auto-mocking-explained.aspx"><strong>Auto mocking Explained</strong></a>.</p>  <p>My post is mainly here to describe the Unity version of an automocking container I threw together.</p>  <h4>In Jan 2009 I blogged about my initial version of the Unity AutoMocker - Why am I blogging about it again?</h4>  <p>I originally wrote the AutoMocker for the Unity container a year ago (Jan 2009, in Silverlight), and finally got around to placing the code up in the <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a> project in June of 2009.</p>  <p>I’m writing another post today in hopes to:</p>  <ol>   <li>Get some feedback on how this little snippet of code should continue. </li>    <li>Give a little more how-to/example code </li>    <li>Describe some updates I made since I originally created it.&#160; </li> </ol>  <h4>Where can I get it?</h4>  <p><strong>This is one part where I’d appreciate some feedback.</strong></p>  <p>I have two slightly different versions out there (currently).</p>  <p>I have one version at the <a href="http://code.google.com/p/elegantcode/source/browse/#svn/trunk/Coders/JasonJarrett/UnityAutoMocker">ElegantCode</a> repository where I was working on it, and the other I threw up at <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a>.</p>  <p>The core of the UnityAutoMockContainer is the same in both places, it’s how the tests are separated out that differ.</p>  <p>In the <a href="http://code.google.com/p/elegantcode/source/browse/#svn/trunk/Coders/JasonJarrett/UnityAutoMocker">ElegantCode repository</a> it’s an all in one self contained single file (that you can copy into your own test project(s)). You can then setup a single test in your own testing framework that runs all internal automocker tests (in case you need to modify it yourself, and don’t want to break any existing functionality). EX: test</p>  <pre class="brush: csharp;">[Test]
public void Should_run_all_UnityAutoMockContainer_internal_tests()
{
    Moq.AutoMocking.SelfTesting.UnityAutoMockContainerFixture
        .RunAllTests(Console.WriteLine);
}</pre>

<p>I kind of like this format as it makes it easy to port between test libraries. Can’t say I like having the tests in the same file as the core, but it certainly is not a large chunk of code (so far) so it’s relatively small to maintain and definitely easier to manage as a single .cs file than another assembly (which would have to be version dependent on both Unity and Moq).</p>

<p>The <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a> is definitely where I think this helper should end up (and it is there). I just happened to break the tests out into the Silverlight test project and the core is alone in a file. </p>

<p>It’s current state isn’t as easy to copy to a test library (Silverlight/Desktop/Unity 1.2/Unity 2.0) as the one at <a href="http://elegantcode.com/">ElegantCode</a>. <strong>What does anyone think?</strong> Should I put them all together in one file?</p>

<p>However it ends up (1. all in one file or two (1 test) (1 core)) it will continue to be maintained on the <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a> project.</p>

<h4>What is the high level API of the container?</h4>

<p>It’s pretty simple, (currently) there are four methods on the container.</p>

<p><strong>Two for registering items with the container</strong>. Say you want to register an already created instance, or say you want to map an interface to a concrete class and _not_ have the container generate mocks automatically for special cases. </p>

<p>And <strong>two for pulling items out of the container</strong>. Whether you want a instance of T or a Mock&lt;T&gt;, it gives you ways to retrieve both.</p>

<blockquote>
  <p><a href="http://elegantcode.com/wp-content/uploads/2010/01/image.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://elegantcode.com/wp-content/uploads/2010/01/image_thumb.png" width="396" height="106" /></a> </p>
</blockquote>

<h4>How can I setup my own registrations with the container? </h4>

<p>Say I don’t want to have the container generate mocks for specific items and I want to supply specific configuration to the UnityContainer.</p>

<blockquote>
  <p>public UnityAutoMockContainer RegisterInstance&lt;TService&gt;(TService instance)</p>

  <p>public UnityAutoMockContainer Register&lt;TService, TImplementation&gt;() 
    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; where TImplementation : TService</p>
</blockquote>

<p><strong>Note</strong>: both of these registration methods return the container itself so you can fluently stack registration. <strong>EX:</strong></p>

<pre class="brush: csharp;">AutoMockContainer
    .Register&lt;IServiceA, ServiceA&gt;()
    .Register&lt;IServiceB, ServiceB&gt;();</pre>

<p><strong>Let me know</strong>: I haven’t tested or played around with how this automocking container deals with any container specific xml configuration… So although I don’t think you should probably have that in a test assembly (stuff happens). Let me know if there are any issues.</p>

<h4>How do I get items out of the container?</h4>

<p>First is the Resolve&lt;T&gt;(). It will pull an item T out of the container. (Creating it if not already existing)</p>

<blockquote>
  <p>public T Resolve&lt;T&gt;()</p>
</blockquote>

<p>When T is an interface Resolve&lt;T&gt; (unless you setup registration specifically with the container) should return basically “(new Mock&lt;T&gt;()).Object”</p>

<p>When T is a concrete Class, the container should return an instance of T and any of it’s dependencies will be satisfied by mocks. (Note that T will not be any sort of mocked instance of T, unless you used the GetMock&lt;T&gt; as described below first)</p>

<blockquote>
  <p>public Mock&lt;T&gt; GetMock&lt;T&gt;() where T : class</p>
</blockquote>

<p>When T is an interface GetMock&lt;T&gt; should return basically “(new Mock&lt;T&gt;())” </p>

<p>When T is a concrete Class, the container should return a new Mock&lt;T&gt;() and any of it’s dependencies will be satisfied by mocks.</p>

<h4>How do I use the UnityAutoMockContainer?</h4>

<p>It’s pretty basic, you first create an instance of the UnityAutoMockContainer, and from there you can ask it for mocks of an (Interface, Class, or Abstract Class).</p>

<p>If you request an instance of a concrete class, or abstract class, the UnityAutoMockContainer will stuff mocks in for any constructor dependencies of your concrete class (if it can). You can then request from the container those same dependencies one at a time and either apply mocking setups or verifications.</p>

<blockquote>
  <p><strong>NOTE:</strong> Anything the container creates will live as a singleton instance in the container. So any other requests from the container will always return the originally created instance. Therefore, each distinct scenario in a test suite should have their own instances of the container.</p>
</blockquote>

<p>Below his an example of how you can leverage the container in some tests. Given this base fixture class…</p>

<pre class="brush: csharp;">public class FixtureBase
{
    private readonly UnityAutoMockContainer _autoMockContainer = new UnityAutoMockContainer();

    protected UnityAutoMockContainer AutoMockContainer
    {
        get { return _autoMockContainer; }
    }

    [TestFixtureSetUp]
    public void SetupContext_ALL()
    {
        Before_all_tests();
        Because();
    }

    [TestFixtureTearDown]
    public void TearDownContext_ALL()
    {
        After_all_tests();
    }

    protected virtual void Before_all_tests()
    {
    }

    protected virtual void Because()
    {
    }

    protected virtual void After_all_tests()
    {
    }
}</pre>

<p>If I were given the following system to test.</p>

<pre class="brush: csharp;">public interface IServiceA { void RunA(); }
public interface IServiceB { void RunB(); }

public class TestComponent
{
    public TestComponent(IServiceA serviceA, IServiceB serviceB)
    {
        ServiceA = serviceA;
        ServiceB = serviceB;
    }

    public IServiceA ServiceA { get; private set; }
    public IServiceB ServiceB { get; private set; }

    public void RunAll()
    {
        if (!HowDidItGo())
            return;
        ServiceA.RunA();
        ServiceB.RunB();
    }

    public virtual bool HowDidItGo()
    {
        // some really nasty untestable code
        return true;
    }
}</pre>

<p>The below example demonstrates simply verifying some behavior on the mocked dependencies of the system under test.</p>

<pre class="brush: csharp;">[TestFixture]
public class Example__how_to_pull_items_from_the_UnityAutoMockContainer_when_verifying_behavior_after_an_action_was_taken 
    : FixtureBase
{
    private TestComponent _testComponent;

    protected override void Before_all_tests()
    {
        base.Before_all_tests();
        _testComponent = AutoMockContainer.Resolve&lt;TestComponent&gt;();
    }

    protected override void Because()
    {
        _testComponent.RunAll();
    }

    [Test]
    public void Should_run_ServiceA_RunA()
    {
        AutoMockContainer
            .GetMock&lt;IServiceA&gt;()
            .Verify(v =&gt; v.RunA(), Times.Once());
    }

    [Test]
    public void Should_run_ServiceB_RunB()
    {
        AutoMockContainer
            .GetMock&lt;IServiceB&gt;()
            .Verify(v =&gt; v.RunB(), Times.Once());
    }
}</pre>

<p>Next, you may have noticed that the system under test had a complicated internal method (that may not necessarily be testable). You can use the AutoMocker to create the system under test as a Mock itself, so we can override some of the behavior. Here’s how you could quickly do that. </p>

<blockquote>
  <p><strong>Aside</strong>: I’m not saying this is a good practice or aids in good component design, just saying it’s possible</p>
</blockquote>

<pre class="brush: csharp;">[TestFixture]
public class Example__how_to_use_the_UnityAutoMockContainer_to_override_a_method_on_the_SystemUnderTest_to_test_a_certain_behavior
    : FixtureBase
{

    private TestComponent _testComponent;

    protected override void Before_all_tests()
    {
        base.Before_all_tests();
        var mockTestComponent = AutoMockContainer.GetMock&lt;TestComponent&gt;();

        mockTestComponent
            .Setup(s =&gt; s.HowDidItGo())
            .Returns(false);

        _testComponent = mockTestComponent.Object;
    }

    protected override void Because()
    {
        _testComponent.RunAll();
    }

    [Test]
    public void Should_run_ServiceA_RunA()
    {
        AutoMockContainer
            .GetMock&lt;IServiceA&gt;()
            .Verify(v =&gt; v.RunA(), Times.Never());
    }

    [Test]
    public void Should_run_ServiceB_RunB()
    {
        AutoMockContainer
            .GetMock&lt;IServiceB&gt;()
            .Verify(v =&gt; v.RunB(), Times.Never());
    }
}</pre>

<p>&#160;</p>

<p>It’s amazing how much redundant test setup code this little helper has saved me in my tests. I hope others can find some use with this as well.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>StatLight &#8211; Goes Open Source</title>
		<link>http://elegantcode.com/2009/12/10/statlight-goes-open-source/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=statlight-goes-open-source</link>
		<comments>http://elegantcode.com/2009/12/10/statlight-goes-open-source/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 03:26:55 +0000</pubDate>
		<dc:creator>Jason Jarrett</dc:creator>
				<category><![CDATA[Esoterica]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/12/10/statlight-goes-open-source/</guid>
		<description><![CDATA[Although I made a very minor attempt at making StatLight a “for-sale” product, I knew when I started that open-source was most likely going to be my long term path for StatLight. What is it? (Silverlight Testing Automation Tool) StatLight is a tool developed for automating the setup, running, and gathering results of Silverlight unit [...]]]></description>
			<content:encoded><![CDATA[Although I made a very minor attempt at making <a href="http://statlight.net" target="_blank">StatLight</a> a “for-sale” product, I knew when I started that open-source was most likely going to be my long term path for <a href="http://statlight.net" target="_blank">StatLight</a>.
<h5>What is it? (Silverlight Testing Automation Tool)</h5>
StatLight is a tool developed for automating the setup, running, and gathering results of Silverlight unit tests. StatLight helps to speed up the feedback cycles while practicing<a href="http://en.wikipedia.org/wiki/Test-driven_development"> TDD</a>/<a href="http://en.wikipedia.org/wiki/Behavior_Driven_Development">BDD</a>/(insert your test style here) during Silverlight development.
<h5>Where can I get StatLight?</h5>
<a href="http://StatLight.CodePlex.com">http://StatLight.CodePlex.com</a>
<h4>Happy Coding !!!</h4>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/12/10/statlight-goes-open-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Removing U3 from Your Thumb Drives</title>
		<link>http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=removing-u3-from-your-thumb-drives</link>
		<comments>http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 18:31:17 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/</guid>
		<description><![CDATA[U3 is a technology used install boot software on thumb drives. Companies use this to ensure that some little application will get loaded or something when you plug their thumb drive into your Windows machine. This can be a favorite move of vendors who give away thumb drives at conferences as swag. They want to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/U3" target="_blank">U3</a> is a technology used install boot software on thumb drives. Companies use this to ensure that some little application will get loaded or something when you plug their thumb drive into your Windows machine.</p>  <p>This can be a favorite move of vendors who give away thumb drives at conferences as swag. They want to launch their little demo app or whatever when you plug in the drive.</p>  <p>It can be very annoying.</p>  <p>I am trying to create a Win7 install thumb drive for my wife’s netbook and I have a great 4G thumb drive to hold the media. Unfortunately, my thumb drive had this U3 stuff on it and won’t work as a boot disc as long as that pesky software is on it.</p>  <p>The simple answer is this little utility: <a href="http://u3uninstall.s3.amazonaws.com/U3Uninstall.exe">U3Uninstall.exe</a>. After running this utility on the thumb drive I have a plain ole storage drive I can use as a Win7 bootable install disc.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Team Build without Tests Lists</title>
		<link>http://elegantcode.com/2009/10/02/team-build-without-tests-lists/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=team-build-without-tests-lists</link>
		<comments>http://elegantcode.com/2009/10/02/team-build-without-tests-lists/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 19:40:04 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[MSDN]]></category>
		<category><![CDATA[Team System]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/10/02/team-build-without-tests-lists/</guid>
		<description><![CDATA[Test lists drive me nuts. I recently recorded a screen cast showing how to pull of CI without the test lists. Here ya go! Here’s a link to the screen cast.]]></description>
			<content:encoded><![CDATA[Test lists drive me nuts. I recently recorded a screen cast showing how to pull of CI without the test lists. Here ya go!

<a href="http://www.pluralsight.com/main/screencasts/screencast.aspx?id=vsts08-continuous-integration" target="_blank">Here’s a link to the screen cast</a>.]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/10/02/team-build-without-tests-lists/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Healthy Team Habits with Team System</title>
		<link>http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=healthy-team-habits-with-team-system</link>
		<comments>http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 19:36:21 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Team System]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/</guid>
		<description><![CDATA[I wrote an article recently for the Pluralsight newsletter discussing how to use a tool like Team System to drive positive organizational change. Here’s a pointer to the article.]]></description>
			<content:encoded><![CDATA[<p>I wrote an article recently for the Pluralsight newsletter discussing how to use a tool like Team System to drive positive organizational change. </p>  <p><a href="http://bit.ly/3CAC8Z" target="_blank">Here’s a pointer to the article</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code Cast 30 &#8211; Story Teller with Jeremy Miller</title>
		<link>http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=code-cast-30-story-teller-with-jeremy-miller</link>
		<comments>http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 17:38:16 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[ALT.NET]]></category>
		<category><![CDATA[CodeCast]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/</guid>
		<description><![CDATA[The venerable Jeremy Miller joined us to talk about YAIJMOSP (Yet Another Impressive Jeremy Miller Open Source Project). This week’s Jeremy project is Story Teller. Jeremy’s other contributions to the community include StructureMap and an obtuse fascination with separation patterns for user interfaces. Story Teller is an alternative for Fitnesse, implemented in .NET and chases [...]]]></description>
			<content:encoded><![CDATA[<p>The venerable Jeremy Miller joined us to talk about YAIJMOSP (Yet Another Impressive Jeremy Miller Open Source Project). This week’s Jeremy project is Story Teller.</p>  <p>Jeremy’s other contributions to the community include <a href="http://codebetter.com/blogs/products/pages/131734.aspx">StructureMap</a> and an <a href="http://www.virtualaltnet.com/Recordings">obtuse fascination with separation patterns</a> for user interfaces.</p>  <p>Story Teller is an alternative for Fitnesse, implemented in .NET and chases the holy grail of executable requirements. If you are interested in how to achieve the promise of shared and executable requirements, this just might be your tool.</p>  <ul>   <li><a href="http://storyteller.tigris.org/">Story Teller</a> </li>    <li><a href="http://codebetter.com/blogs/jeremy.miller/archive/2009/08/24/how-about-a-storyteller-preview-release.aspx">Jeremy’s StoryTeller post on a preview release</a> </li> </ul>  <p><a href="http://pluralsight-free.s3.amazonaws.com/david-starr/ecc/ECC_30_StoryTeller.mp3">Get the show here</a></p>  <p><a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=271207118"><img border="0" alt="View in iTunes" src="http://elegantcode.com/cast/files/images/itunes_button.gif" /></a> <a href="http://feeds2.feedburner.com/elegantcodecast"><img border="0" alt="Any Podcatcher" src="http://elegantcode.com/cast/files/images/rss_podcast.jpg" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
<enclosure url="http://pluralsight-free.s3.amazonaws.com/david-starr/ecc/ECC_30_StoryTeller.mp3" length="36208890" type="audio/mpeg" />
		</item>
		<item>
		<title>Visual Studio Team System for Small Teams</title>
		<link>http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=visual-studio-team-system-for-small-teams</link>
		<comments>http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 23:27:41 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[ALM]]></category>
		<category><![CDATA[Craftsmanship]]></category>
		<category><![CDATA[Source Control]]></category>
		<category><![CDATA[Team System]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/</guid>
		<description><![CDATA[There was a recent brouhaha on Twitter and in some blogs about the appropriateness of Team System in small teams. The gist of the discussion was simply that there are a lot of alternatives to TFS and VSTS tooling and many of them come cheaper out of the box. In many cases, free! Duh. I [...]]]></description>
			<content:encoded><![CDATA[<p>There was a recent brouhaha on Twitter and in some blogs about the appropriateness of Team System in small teams. The gist of the discussion was simply that there are a lot of alternatives to TFS and VSTS tooling and many of them come cheaper out of the box. In many cases, free!</p>  <p>Duh.</p>  <p>I have worked with Team System quite a bit and with alternatives just as much. With a lot of experience behind me on this, I feel confident I can make a legitimate case for using Team System in a small team.</p>  <p>I consider a small team a development organization of fewer than 10 people.</p>  <h3>Some Context and Disclosure</h3>  <ul>   <li>I am a Team System MVP </li>    <li>I use Team System on a daily basis </li>    <li>I use SVN+Team City on a daily basis </li>    <li>I care more about pragmatism and craftsmanship than tooling, and that means focusing on how to use tools, not just the tools themselves </li>    <li>I have been present on day one of a brand new team </li>    <li>I have been in a team that has grown quickly over a short time </li> </ul>  <h3>Focus on the Work</h3>  <p>What happens when teams squabble about tools instead of just getting on with it? Lots of churn and wasted energy, is my experience. </p>  <p>I can report having seen small teams succeed and fail. The success or failure in both cases obviously has a lot more to do with leadership and business than developer tools, but I can also say the way companies approach developer tooling can have a lot to do with culture.</p>  <p>Any startup or small team simply <em>must</em> be focused to succeed. This can also be extremely difficult to achieve. A small team simply doesn’t have the capacity or depth to be distracted with issues not pertaining to delivering product. Paradoxically, team members are often wearing several hats. That is, everyone is doing a little of everything. That can quickly trend to entropy, because no one ends focusing on the work at hand.</p>  <p>The last thing I want to do on day 1 of a new team, or very often in a small teams, is visit tooling. Not deliberately making choices about tooling, though, will eventually bite you. Hard. How many of us are in organizations with over 2 brands of source control systems because new ones were added in an ad-hoc manor? I’ve been there. How many unit test frameworks are being used? I have been on a team that used 4 at once. Think that caused some problems?</p>  <p>As team lead, I care far less about optimizations of specific tools, and far more about a cohesive and fluid process enabling flow within the team. I care a great deal that there is a single source of truth for requirements and very little that we are using the coolest new unit test framework.</p>  <p>Often, focusing on work simply means implementing a system of tools and getting past the discussion. Have you ever heard developers purse fight over text editors? Now, there’s a constructive use of energy. The same thing can happen when geeks whip out their favorite source control, merge tools, unit testing frameworks, Visual Studio add-ins, logging library, laptop brand, or bug tracking system. </p>  <p>Point number one is let’s get past the time suck of the my-NAnt-is-better-than-your-MS-Build and just prescribe a toolset so we can get on with the real business of our team. </p>  <h3>Team System is Like a Box of Tools at Sears</h3>  <p>When I go to Sears and browse the Craftsman (or DeWalt) tools, I usually see some interesting little specialty tools. I might buy a funky swivel socket or a single ratchet, but I rarely browse the aisle with the large all-in-one kits. The reason I don’t browse the kit aisle is because my father-in-law bought be a basic Craftsman starter kit almost 20 years ago and my collection of tools has grown over time. </p>  <p>I don’t still have all of the tools in that original kit, but I do still have many of them. Further, my need for hand tools have gotten more specialized over time. Also, I am making a bit more money than I was when I married my wife, so I may spend extra for a special-purpose hammer rather than always relying on the one that came in the original kit.</p>  <p>Without that original kit, though, I would never have been able to even get started. No, it didn’t have every tool I would ever need, but it had almost everything I needed right then.</p>  <p>Team System is much the same. A team can absolutely hit the ground running with the rich toolset VSTS provides. Maybe you’ll augment the toolbox over time. Maybe you’ll even change tools (can anyone say [TestClass]?) but the kit that comes in the box really can provide most of what a small team needs to get going, and do it in a single solution.</p>  <p>That’s huge. </p>  <p>As soon as I start looking around to sub-optimize my hammer or my source control, I am going to start slowing the team down. GIT? SVN? PerForce? There are a ton of options for source control, each with their strengths and weaknesses. It’s freaking source control. Get on with it. I mean, how sexy can a hammer be?</p>  <h3>It May Not Cost What You Think</h3>  <p>You can buy a big toolkit at Sears for far less than it costs to buy all the tools individually. Further, buying the toolkit for the person without tools is a good move because they will have all the basics covered in a single purchase. </p>  <p>Craftsman Toolkits are a favorite gift of mine for graduates and newlyweds for this very reason.</p>  <p>Microsoft has the same insight that Sears had. If a person gets accustomed to Craftsman by selling the kit cheaply, they’ll be a customer for life. This is the exact idea behind the BizSpark program. If you aren’t familiar with it, BizSpark is a Microsoft program that allows free (that’s right, free!) access to all developer tools, operating systems, and other software for startups.</p>  <p>Is your company less than 2 years old? Do you make software? If yes, you qualify, I kid you not.</p>  <h3>Integration Matters</h3>  <p>Even if you are paying full price (which you shouldn’t :) ) I believe the value of VSTS is still there. The productivity loss involved in setting up a system of disparate and non-integrated developer tools is tremendous. I have been there and done that.</p>  <p>I know SVN is good. I know Team City is good. I also know that setting up a basic Continuous Integration build in Team System is stupid simple. And the real money shot comes with Work Item management. How many teams out there are using work item management systems or defect tracking systems they hate?</p>  <p>Well, we all are. </p>  <p>So, we may as well have one that works right in the IDE and allows me to tie check ins to work I am performing. The context switching that occurs in non-integrated systems of reporting, SCC, build, and work item management is HUGE. Huge! No really. </p>  <h3>Get On With It</h3>  <p>The people involved in the recent online Team System kerfuffle are folks I would consider in the top 1% of developer talent. Quite frankly, it makes a lot of sense to me that people at that level will have replaced their hammer from the kit with one that has an ergonomic grip.</p>  <p>That said, there are a lot of startups and small teams in entropy out there. For those folks, I firmly believe that standardizing on an integrated toolset for the development team is a bigger savings than “free like a puppy” solutions that can work well, but with more churn.</p>  <p>Now quit fussing about source control and learn how to use a decent ORM, people.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Implementing Team City for .NET Projects, Part 5: Deployments</title>
		<link>http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=moving-from-e-texteditor-to-sublime-text-2</link>
		<comments>http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/#comments</comments>
		<pubDate>Fri, 05 Aug 2011 23:45:32 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[CoffeeScript]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/</guid>
		<description><![CDATA[I’ve been using E-TextEditor Buy Clonidine Without Prescription, for more than a year now for doing all my JavaScript, Node.js and CoffeeScript development. Clonidine from mexico, You can think of E-TextEditor as TextMate for the Windows platform. I’ve been pretty happy with it throughout this period as it can be extended pretty easily with a [...]]]></description>
			<content:encoded><![CDATA[<p> <p align="justify">I’ve been using <a href="http://www.e-texteditor.com/" target="_blank">E-TextEditor</a> <b>Buy Clonidine Without Prescription</b>, for more than a year now for doing all my JavaScript, Node.js and CoffeeScript development.  <b>Clonidine from mexico</b>, You can think of E-TextEditor as <a href="http://macromates.com/" target="_blank">TextMate</a> for the Windows platform. I’ve been pretty happy with it throughout this period as it can be extended pretty easily with a whole slew of bundles that are already available for TextMate, <b>cheap Clonidine</b>.  <b>Clonidine recreational</b>, E-TextEditor requires you to install <a href="http://www.cygwin.com/" target="_blank">Cygwin</a> which happens automatically during installation. Using the Cygwin command-line gave me enough (re-)exposure to a Linux-like environment in order for me wanting to (re-)learn about this other platform, <b>purchase Clonidine for sale</b>. More on that in later blog posts, <b>Buy Clonidine Without Prescription</b>.  <b>Low dose Clonidine</b>, Although there haven’t been any new versions of E-TextEditor for quite some time now, the current version enabled me to write JavaScript code in a productive way.</p>  <p align="justify">Only recently I found out about another editor called <a href="http://www.sublimetext.com/2" target="_blank">Sublime Text 2</a> (thanks to <a href="http://twitter.com/#!/casualjim" target="_blank">Ivan Porto Carrero</a>), <b>Clonidine description</b>.  <b>Clonidine overnight</b>, I downloaded this text editor in order to give it a try and I must say that I haven’t opened E-TextEditor ever since. This second version of Sublime Text is still in development but it’s pretty stable as I haven’t run into any issues so far, <b>Clonidine no prescription</b>.  <b>Clonidine brand name</b>, The cool part is that this editor is available for both Windows, Linux and OS X which enabled me to move all my Node.js and CoffeeScript development from Cygwin on Windows to Ubuntu Linux.&#160; </p>  <p align="justify">CoffeeScript isn’t supported out-of-the-box (yet), <b>purchase Clonidine</b>, <b>Clonidine gel, ointment, cream, pill, spray, continuous-release, extended-release</b>, so I installed the <a href="https://github.com/jashkenas/coffee-script-tmbundle" target="_blank">CoffeeScript&#160; TextMate bundle</a> written by <a href="http://ashkenas.com/" target="_blank">Jeremy Ashkenas</a> (yes, the same one from the <a href="http://jashkenas.github.com/coffee-script/" target="_blank">CoffeeScript</a> and <a href="http://documentcloud.github.com/backbone/" target="_blank">Backbone.js</a> fame), <b>Clonidine long term</b>.  Also check out <a href="https://github.com/jashkenas/coffee-script/wiki/Text-editor-plugins" target="_blank">this page on the CoffeeScript wiki</a> for more information on how to bring some CoffeeScript happiness to your own favorite text editor.</p>  <p align="justify"> <b>Buy Clonidine Without Prescription</b>, Setting up this TextMate bundle for use with Sublime Text 2 was actually pretty easy.  <b>Clonidine canada, mexico, india</b>, Just navigate to <em>/home/&lt;my_user_name&gt;/.config/sublime-text-2/Packages</em> in a terminal (or the corresponding file path on Windows) and clone the source of the CoffeeScript TextMate bundle using git: </p>  <blockquote>   <p align="justify"><em>git clone git://github.com/jashkenas/coffee-script-tmbundle CoffeeScript</em></p> </blockquote>  <p align="justify">Next close all the .coffee files and restart Sublime Text 2. Now we have some nice syntax highlighting and some useful code snippets at our disposal.&#160; </p>  <p align="justify"><a href="http://elegantcode.com/wp-content/uploads/2011/08/image.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://elegantcode.com/wp-content/uploads/2011/08/image_thumb.png" width="600" height="396" /></a></p>  <p>It's also possible to hook into <a href="http://sublimetext.info/docs/en/reference/build_systems.html" target="_blank">the build system</a> of Sublime Text 2, <b>Clonidine australia, uk, us, usa</b>.  <b>Clonidine blogs</b>, You just need to create a new file named <em>CoffeeScript.sublime-build</em> at the following location: </p>  <blockquote>   <p><em>/home/&lt;my_user_name&gt;/.config/sublime-text-2/Packages/User&#160; </em></p> </blockquote>  <p align="justify">You can add the following to this new file for compiling CoffeeScript</p>  <pre style="width: 100%; height: 85px" class="csharpcode">{     <span class="str">&quot;cmd&quot;</span>: [<span class="str">&quot;coffee&quot;</span>, <span class="str">&quot;-c&quot;</span>, <b>Clonidine from canada</b>, <b>Is Clonidine addictive</b>, <span class="str">&quot;$file&quot;</span>],     <span class="str">&quot;selector&quot;</span> : <span class="str">&quot;source.coffee&quot;</span>, <b>Clonidine pharmacy</b>, <b>Ordering Clonidine online</b>, <span class="str">&quot;path&quot;</span> : <span class="str">&quot;/usr/local/bin&quot;</span>}</pre><style type="text/css">.csharpcode, .csharpcode pre{	font-size: small;	color: black;	font-family: consolas, <b>Clonidine without prescription</b>, <b>Clonidine no rx</b>, "Courier New", courier, <b>buy no prescription Clonidine online</b>, <b>Clonidine street price</b>, monospace;	background-color: #ffffff;	/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt<br />
{	background-color: #f4f4f4;	width: 100%;	margin: 0em;}.csharpcode .lnum { color: #606060; }</style>or the following for executing/running CoffeeScript code.</p>
<p><pre style="width: 100%; height: 85px" class="csharpcode">{     <span class="str">&quot;cmd&quot;</span>: [<span class="str">&quot;coffee&quot;</span>, <b>Clonidine for sale</b>, <b>What is Clonidine</b>, <span class="str">&quot;$file&quot;</span>],     <span class="str">&quot;selector&quot;</span> : <span class="str">&quot;source.coffee&quot;</span>, <b>get Clonidine</b>, <b>Clonidine class</b>, <span class="str">&quot;path&quot;</span> : <span class="str">&quot;/usr/local/bin&quot;</span>}</pre></p>
<p><p align="justify">Now when you hit F7, this fresh build command is executed when a CoffeeScript source file is showing in the active tab, <b>cheap Clonidine no rx</b>.  It’s also possible to change the build short-key to your own taste through the <em>Preferences</em> menu, <b>Buy Clonidine Without Prescription</b>.  <b>Fast shipping Clonidine</b>, <style type="text/css">.csharpcode, .csharpcode pre{	font-size: small;	color: black;	font-family: consolas, <b>buy Clonidine from canada</b>, <b>Clonidine without a prescription</b>, "Courier New", courier, <b>purchase Clonidine online no prescription</b>, <b>Effects of Clonidine</b>, monospace;	background-color: #ffffff;	/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt<br />
{	background-color: #f4f4f4;	width: 100%;	margin: 0em;}.csharpcode .lnum { color: #606060; }</style></p></p>
<p><p align="justify">Unfortunately, there’s only one build command as I would love to create a separate command for compiling and running CoffeeScript code (or perhaps I missed this feature during the excitement <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://elegantcode.com/wp-content/uploads/2011/08/wlEmoticon-winkingsmile.png" />), <b>buy generic Clonidine</b>.  <b>Is Clonidine safe</b>, </p></p>
<p><p align="justify">Some more usage is definitely needed for me to learn more about this excellent text editor, but currently I’m pretty happy with it, <b>Clonidine trusted pharmacy reviews</b>.  <b>Taking Clonidine</b>, I also need to find out how well JavaScript is supported and perhaps see how far one can go when doing some C# development using Mono. I expect that there are a good number of productive features in there for me to discover.</p></p>
<p><p align="justify">I encourage you have a decent look at this excellent tool, <b>Clonidine dangers</b>.  <b>Order Clonidine from mexican pharmacy</b>, </p></p>
<p><p align="justify">Until next time.</p>.  Herbal Clonidine.</p>
<p></p>
<p><b>Similar posts:</b> <a href='http://elegantcode.com/?p=4452'>Stromectol For Sale</a>. <a href='http://elegantcode.com/?p=4867'>Buy Soma Without Prescription</a>. <a href='http://elegantcode.com/?p=4758'>Buy Atenolol Without Prescription</a>. <a href='http://elegantcode.com/?p=4553'>Buy Female Pink Viagra Without Prescription</a>. <a href='http://elegantcode.com/?p=4560'>Vermox For Sale</a>. <a href='http://elegantcode.com/?p=4662'>Where can i buy cheapest Antabuse online</a>. <a href='http://elegantcode.com/?p=4508'>Slimex (Obetrim) photos</a>. <a href='http://elegantcode.com/?p=4623'>Augmentin description</a>. <a href='http://elegantcode.com/?p=4752'>Buy Colchicine no prescription</a>. <a href='http://elegantcode.com/?p=4322'>Clonidine natural</a>.<br />
<b>Trackbacks from:</b> <a href='http://evanrapoport.com/?p=429'>Buy Clonidine Without Prescription</a>. <a href='http://www.themusclecarplace.com/?p=5350'>Buy Clonidine Without Prescription</a>. <a href='http://changecamp.ca/?p=578'>Buy Clonidine Without Prescription</a>. <a href='http://blog.farmland.org/?p=3172'>Buy Clonidine Without Prescription</a>. <a href='http://home.officesnapshots.com/?p=175'>Buy Clonidine Without Prescription</a>. <a href='http://www.thegriffonnews.com/?p=9699'>Kjøpe Clonidine på nett, köpa Clonidine online</a>. <a href='http://www.quarterlives.com/?p=831'>Buy cheap Clonidine no rx</a>. <a href='http://www.greatgreengoods.com/?p=3511'>Clonidine use</a>. <a href='http://www.macneilbmx.com/blog/?p=5325'>Clonidine no rx</a>. <a href='http://social-blend.com/?p=482'>Online buying Clonidine hcl</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Elegant Code &#187; Tools and Utilities</title>
	<atom:link href="http://elegantcode.com/category/tools-and-utilities/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com</link>
	<description></description>
	<lastBuildDate>Tue, 15 May 2012 10:00:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Buy Clonidine Without Prescription</title>
		<link>http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=moving-from-e-texteditor-to-sublime-text-2</link>
		<comments>http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/#comments</comments>
		<pubDate>Fri, 05 Aug 2011 23:45:32 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[CoffeeScript]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/</guid>
		<description><![CDATA[I’ve been using E-TextEditor Buy Clonidine Without Prescription, for more than a year now for doing all my JavaScript, Node.js and CoffeeScript development. Clonidine from mexico, You can think of E-TextEditor as TextMate for the Windows platform. I’ve been pretty happy with it throughout this period as it can be extended pretty easily with a [...]]]></description>
			<content:encoded><![CDATA[<p> <p align="justify">I’ve been using <a href="http://www.e-texteditor.com/" target="_blank">E-TextEditor</a> <b>Buy Clonidine Without Prescription</b>, for more than a year now for doing all my JavaScript, Node.js and CoffeeScript development.  <b>Clonidine from mexico</b>, You can think of E-TextEditor as <a href="http://macromates.com/" target="_blank">TextMate</a> for the Windows platform. I’ve been pretty happy with it throughout this period as it can be extended pretty easily with a whole slew of bundles that are already available for TextMate, <b>cheap Clonidine</b>.  <b>Clonidine recreational</b>, E-TextEditor requires you to install <a href="http://www.cygwin.com/" target="_blank">Cygwin</a> which happens automatically during installation. Using the Cygwin command-line gave me enough (re-)exposure to a Linux-like environment in order for me wanting to (re-)learn about this other platform, <b>purchase Clonidine for sale</b>. More on that in later blog posts, <b>Buy Clonidine Without Prescription</b>.  <b>Low dose Clonidine</b>, Although there haven’t been any new versions of E-TextEditor for quite some time now, the current version enabled me to write JavaScript code in a productive way.</p>  <p align="justify">Only recently I found out about another editor called <a href="http://www.sublimetext.com/2" target="_blank">Sublime Text 2</a> (thanks to <a href="http://twitter.com/#!/casualjim" target="_blank">Ivan Porto Carrero</a>), <b>Clonidine description</b>.  <b>Clonidine overnight</b>, I downloaded this text editor in order to give it a try and I must say that I haven’t opened E-TextEditor ever since. This second version of Sublime Text is still in development but it’s pretty stable as I haven’t run into any issues so far, <b>Clonidine no prescription</b>.  <b>Clonidine brand name</b>, The cool part is that this editor is available for both Windows, Linux and OS X which enabled me to move all my Node.js and CoffeeScript development from Cygwin on Windows to Ubuntu Linux.&#160; </p>  <p align="justify">CoffeeScript isn’t supported out-of-the-box (yet), <b>purchase Clonidine</b>, <b>Clonidine gel, ointment, cream, pill, spray, continuous-release, extended-release</b>, so I installed the <a href="https://github.com/jashkenas/coffee-script-tmbundle" target="_blank">CoffeeScript&#160; TextMate bundle</a> written by <a href="http://ashkenas.com/" target="_blank">Jeremy Ashkenas</a> (yes, the same one from the <a href="http://jashkenas.github.com/coffee-script/" target="_blank">CoffeeScript</a> and <a href="http://documentcloud.github.com/backbone/" target="_blank">Backbone.js</a> fame), <b>Clonidine long term</b>.  Also check out <a href="https://github.com/jashkenas/coffee-script/wiki/Text-editor-plugins" target="_blank">this page on the CoffeeScript wiki</a> for more information on how to bring some CoffeeScript happiness to your own favorite text editor.</p>  <p align="justify"> <b>Buy Clonidine Without Prescription</b>, Setting up this TextMate bundle for use with Sublime Text 2 was actually pretty easy.  <b>Clonidine canada, mexico, india</b>, Just navigate to <em>/home/&lt;my_user_name&gt;/.config/sublime-text-2/Packages</em> in a terminal (or the corresponding file path on Windows) and clone the source of the CoffeeScript TextMate bundle using git: </p>  <blockquote>   <p align="justify"><em>git clone git://github.com/jashkenas/coffee-script-tmbundle CoffeeScript</em></p> </blockquote>  <p align="justify">Next close all the .coffee files and restart Sublime Text 2. Now we have some nice syntax highlighting and some useful code snippets at our disposal.&#160; </p>  <p align="justify"><a href="http://elegantcode.com/wp-content/uploads/2011/08/image.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://elegantcode.com/wp-content/uploads/2011/08/image_thumb.png" width="600" height="396" /></a></p>  <p>It's also possible to hook into <a href="http://sublimetext.info/docs/en/reference/build_systems.html" target="_blank">the build system</a> of Sublime Text 2, <b>Clonidine australia, uk, us, usa</b>.  <b>Clonidine blogs</b>, You just need to create a new file named <em>CoffeeScript.sublime-build</em> at the following location: </p>  <blockquote>   <p><em>/home/&lt;my_user_name&gt;/.config/sublime-text-2/Packages/User&#160; </em></p> </blockquote>  <p align="justify">You can add the following to this new file for compiling CoffeeScript</p>  <pre style="width: 100%; height: 85px" class="csharpcode">{     <span class="str">&quot;cmd&quot;</span>: [<span class="str">&quot;coffee&quot;</span>, <span class="str">&quot;-c&quot;</span>, <b>Clonidine from canada</b>, <b>Is Clonidine addictive</b>, <span class="str">&quot;$file&quot;</span>],     <span class="str">&quot;selector&quot;</span> : <span class="str">&quot;source.coffee&quot;</span>, <b>Clonidine pharmacy</b>, <b>Ordering Clonidine online</b>, <span class="str">&quot;path&quot;</span> : <span class="str">&quot;/usr/local/bin&quot;</span>}</pre><style type="text/css">.csharpcode, .csharpcode pre{	font-size: small;	color: black;	font-family: consolas, <b>Clonidine without prescription</b>, <b>Clonidine no rx</b>, "Courier New", courier, <b>buy no prescription Clonidine online</b>, <b>Clonidine street price</b>, monospace;	background-color: #ffffff;	/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt<br />
{	background-color: #f4f4f4;	width: 100%;	margin: 0em;}.csharpcode .lnum { color: #606060; }</style>or the following for executing/running CoffeeScript code.</p>
<p><pre style="width: 100%; height: 85px" class="csharpcode">{     <span class="str">&quot;cmd&quot;</span>: [<span class="str">&quot;coffee&quot;</span>, <b>Clonidine for sale</b>, <b>What is Clonidine</b>, <span class="str">&quot;$file&quot;</span>],     <span class="str">&quot;selector&quot;</span> : <span class="str">&quot;source.coffee&quot;</span>, <b>get Clonidine</b>, <b>Clonidine class</b>, <span class="str">&quot;path&quot;</span> : <span class="str">&quot;/usr/local/bin&quot;</span>}</pre></p>
<p><p align="justify">Now when you hit F7, this fresh build command is executed when a CoffeeScript source file is showing in the active tab, <b>cheap Clonidine no rx</b>.  It’s also possible to change the build short-key to your own taste through the <em>Preferences</em> menu, <b>Buy Clonidine Without Prescription</b>.  <b>Fast shipping Clonidine</b>, <style type="text/css">.csharpcode, .csharpcode pre{	font-size: small;	color: black;	font-family: consolas, <b>buy Clonidine from canada</b>, <b>Clonidine without a prescription</b>, "Courier New", courier, <b>purchase Clonidine online no prescription</b>, <b>Effects of Clonidine</b>, monospace;	background-color: #ffffff;	/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt<br />
{	background-color: #f4f4f4;	width: 100%;	margin: 0em;}.csharpcode .lnum { color: #606060; }</style></p></p>
<p><p align="justify">Unfortunately, there’s only one build command as I would love to create a separate command for compiling and running CoffeeScript code (or perhaps I missed this feature during the excitement <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://elegantcode.com/wp-content/uploads/2011/08/wlEmoticon-winkingsmile.png" />), <b>buy generic Clonidine</b>.  <b>Is Clonidine safe</b>, </p></p>
<p><p align="justify">Some more usage is definitely needed for me to learn more about this excellent text editor, but currently I’m pretty happy with it, <b>Clonidine trusted pharmacy reviews</b>.  <b>Taking Clonidine</b>, I also need to find out how well JavaScript is supported and perhaps see how far one can go when doing some C# development using Mono. I expect that there are a good number of productive features in there for me to discover.</p></p>
<p><p align="justify">I encourage you have a decent look at this excellent tool, <b>Clonidine dangers</b>.  <b>Order Clonidine from mexican pharmacy</b>, </p></p>
<p><p align="justify">Until next time.</p>.  Herbal Clonidine.</p>
<p></p>
<p><b>Similar posts:</b> <a href='http://elegantcode.com/?p=4452'>Stromectol For Sale</a>. <a href='http://elegantcode.com/?p=4867'>Buy Soma Without Prescription</a>. <a href='http://elegantcode.com/?p=4758'>Buy Atenolol Without Prescription</a>. <a href='http://elegantcode.com/?p=4553'>Buy Female Pink Viagra Without Prescription</a>. <a href='http://elegantcode.com/?p=4560'>Vermox For Sale</a>. <a href='http://elegantcode.com/?p=4662'>Where can i buy cheapest Antabuse online</a>. <a href='http://elegantcode.com/?p=4508'>Slimex (Obetrim) photos</a>. <a href='http://elegantcode.com/?p=4623'>Augmentin description</a>. <a href='http://elegantcode.com/?p=4752'>Buy Colchicine no prescription</a>. <a href='http://elegantcode.com/?p=4322'>Clonidine natural</a>.<br />
<b>Trackbacks from:</b> <a href='http://evanrapoport.com/?p=429'>Buy Clonidine Without Prescription</a>. <a href='http://www.themusclecarplace.com/?p=5350'>Buy Clonidine Without Prescription</a>. <a href='http://changecamp.ca/?p=578'>Buy Clonidine Without Prescription</a>. <a href='http://blog.farmland.org/?p=3172'>Buy Clonidine Without Prescription</a>. <a href='http://home.officesnapshots.com/?p=175'>Buy Clonidine Without Prescription</a>. <a href='http://www.thegriffonnews.com/?p=9699'>Kjøpe Clonidine på nett, köpa Clonidine online</a>. <a href='http://www.quarterlives.com/?p=831'>Buy cheap Clonidine no rx</a>. <a href='http://www.greatgreengoods.com/?p=3511'>Clonidine use</a>. <a href='http://www.macneilbmx.com/blog/?p=5325'>Clonidine no rx</a>. <a href='http://social-blend.com/?p=482'>Online buying Clonidine hcl</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>AutoTest.NET</title>
		<link>http://elegantcode.com/2010/11/30/autotest-net/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=autotest-net</link>
		<comments>http://elegantcode.com/2010/11/30/autotest-net/#comments</comments>
		<pubDate>Tue, 30 Nov 2010 11:00:00 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[TDD]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/11/30/autotest-net/</guid>
		<description><![CDATA[I just want to quickly point out a tool that I’ve been playing with for a couple of days now, named AutoTest.NET. Its an open-source tool that originates from a popular tool in the Ruby community called ZenTest, which basically runs all your valuable unit tests when you save your source files or when you [...]]]></description>
			<content:encoded><![CDATA[<p>I just want to quickly point out a tool that I’ve been playing with for a couple of days now, named <a href="https://github.com/acken/AutoTest.Net" target="_blank">AutoTest.NET</a>. Its an open-source tool that originates from a popular tool in the Ruby community called <a href="http://www.zenspider.com/ZSS/Products/ZenTest/" target="_blank">ZenTest</a>, which basically runs all your valuable unit tests when you save your source files or when you build your code. It enables you to get feedback about your changes as soon as possible.</p>  <p>The project started out a couple of years ago on <a href="http://code.google.com/p/autotestnet/" target="_blank">Google code</a> and was first initiated by <a href="http://averyblog.com/" target="_blank">James Avery</a>. Contribution stopped at some point until recently where <a href="http://ackenpacken.blogspot.com/" target="_blank">Svein Arne Ackenhausen</a> forked the source code and <a href="https://github.com/acken/AutoTest.Net" target="_blank">put it on GitHub</a>. Now it runs both for .NET as well as Mono, with NUnit, MSTest and xUnit as the currently supported unit test frameworks. </p>  <p>Here’s a screenshot from the feedback window when all tests pass:</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2010/11/Success.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Success" border="0" alt="Success" src="http://elegantcode.com/wp-content/uploads/2010/11/Success_thumb.png" width="540" height="189" /></a> </p>  <p>And here you can see the same window after I broke one of my unit tests:</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2010/11/Failure.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Failure" border="0" alt="Failure" src="http://elegantcode.com/wp-content/uploads/2010/11/Failure_thumb.png" width="538" height="319" /></a> </p>  <p>Here you can see which particular unit test has been broken and by clicking the specified link you end up at the right source file in Visual Studio. </p>  <p>I encourage you to pick up this small tool and learn how it can facilitate your TDD flow. Take a look at <a href="https://github.com/acken/AutoTest.Net/wiki/Get-started!" target="_blank">this page</a> in order to get up-and-running in no time. Also don’t forget to provide the owner(s) of this project with some feedback that you might have. Svein has been very helpful over the last week answering all my stupid questions and remarks (and the Nobel price for this year’s most patient person goes to … ;-) ). </p>  <p>I would definitely like to see this tool becoming more popular, so go check it out.&#160;&#160; </p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/11/30/autotest-net/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Unity/Moq &#8211; AutoMocker or AutoMockingContainer</title>
		<link>http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=unitymoq-automocker-or-automockingcontainer</link>
		<comments>http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 16:52:33 +0000</pubDate>
		<dc:creator>Jason Jarrett</dc:creator>
				<category><![CDATA[TDD]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/</guid>
		<description><![CDATA[What is an Auto Mocking Container? This post started to get a little long, so I won’t re-explain the concept. Joshua Flanagan wrote a nice overview at his Los Techies blog: Auto mocking Explained. My post is mainly here to describe the Unity version of an automocking container I threw together. In Jan 2009 I [...]]]></description>
			<content:encoded><![CDATA[<h4>What is an Auto Mocking Container?</h4>  <p>This post started to get a little long, so I won’t re-explain the concept.</p>  <p><a href="http://www.lostechies.com/blogs/joshuaflanagan/default.aspx">Joshua Flanagan</a> wrote a nice overview at his <a href="http://www.lostechies.com/">Los Techies</a> blog: <a href="http://www.lostechies.com/blogs/joshuaflanagan/archive/2009/02/03/auto-mocking-explained.aspx"><strong>Auto mocking Explained</strong></a>.</p>  <p>My post is mainly here to describe the Unity version of an automocking container I threw together.</p>  <h4>In Jan 2009 I blogged about my initial version of the Unity AutoMocker - Why am I blogging about it again?</h4>  <p>I originally wrote the AutoMocker for the Unity container a year ago (Jan 2009, in Silverlight), and finally got around to placing the code up in the <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a> project in June of 2009.</p>  <p>I’m writing another post today in hopes to:</p>  <ol>   <li>Get some feedback on how this little snippet of code should continue. </li>    <li>Give a little more how-to/example code </li>    <li>Describe some updates I made since I originally created it.&#160; </li> </ol>  <h4>Where can I get it?</h4>  <p><strong>This is one part where I’d appreciate some feedback.</strong></p>  <p>I have two slightly different versions out there (currently).</p>  <p>I have one version at the <a href="http://code.google.com/p/elegantcode/source/browse/#svn/trunk/Coders/JasonJarrett/UnityAutoMocker">ElegantCode</a> repository where I was working on it, and the other I threw up at <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a>.</p>  <p>The core of the UnityAutoMockContainer is the same in both places, it’s how the tests are separated out that differ.</p>  <p>In the <a href="http://code.google.com/p/elegantcode/source/browse/#svn/trunk/Coders/JasonJarrett/UnityAutoMocker">ElegantCode repository</a> it’s an all in one self contained single file (that you can copy into your own test project(s)). You can then setup a single test in your own testing framework that runs all internal automocker tests (in case you need to modify it yourself, and don’t want to break any existing functionality). EX: test</p>  <pre class="brush: csharp;">[Test]
public void Should_run_all_UnityAutoMockContainer_internal_tests()
{
    Moq.AutoMocking.SelfTesting.UnityAutoMockContainerFixture
        .RunAllTests(Console.WriteLine);
}</pre>

<p>I kind of like this format as it makes it easy to port between test libraries. Can’t say I like having the tests in the same file as the core, but it certainly is not a large chunk of code (so far) so it’s relatively small to maintain and definitely easier to manage as a single .cs file than another assembly (which would have to be version dependent on both Unity and Moq).</p>

<p>The <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a> is definitely where I think this helper should end up (and it is there). I just happened to break the tests out into the Silverlight test project and the core is alone in a file. </p>

<p>It’s current state isn’t as easy to copy to a test library (Silverlight/Desktop/Unity 1.2/Unity 2.0) as the one at <a href="http://elegantcode.com/">ElegantCode</a>. <strong>What does anyone think?</strong> Should I put them all together in one file?</p>

<p>However it ends up (1. all in one file or two (1 test) (1 core)) it will continue to be maintained on the <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a> project.</p>

<h4>What is the high level API of the container?</h4>

<p>It’s pretty simple, (currently) there are four methods on the container.</p>

<p><strong>Two for registering items with the container</strong>. Say you want to register an already created instance, or say you want to map an interface to a concrete class and _not_ have the container generate mocks automatically for special cases. </p>

<p>And <strong>two for pulling items out of the container</strong>. Whether you want a instance of T or a Mock&lt;T&gt;, it gives you ways to retrieve both.</p>

<blockquote>
  <p><a href="http://elegantcode.com/wp-content/uploads/2010/01/image.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://elegantcode.com/wp-content/uploads/2010/01/image_thumb.png" width="396" height="106" /></a> </p>
</blockquote>

<h4>How can I setup my own registrations with the container? </h4>

<p>Say I don’t want to have the container generate mocks for specific items and I want to supply specific configuration to the UnityContainer.</p>

<blockquote>
  <p>public UnityAutoMockContainer RegisterInstance&lt;TService&gt;(TService instance)</p>

  <p>public UnityAutoMockContainer Register&lt;TService, TImplementation&gt;() 
    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; where TImplementation : TService</p>
</blockquote>

<p><strong>Note</strong>: both of these registration methods return the container itself so you can fluently stack registration. <strong>EX:</strong></p>

<pre class="brush: csharp;">AutoMockContainer
    .Register&lt;IServiceA, ServiceA&gt;()
    .Register&lt;IServiceB, ServiceB&gt;();</pre>

<p><strong>Let me know</strong>: I haven’t tested or played around with how this automocking container deals with any container specific xml configuration… So although I don’t think you should probably have that in a test assembly (stuff happens). Let me know if there are any issues.</p>

<h4>How do I get items out of the container?</h4>

<p>First is the Resolve&lt;T&gt;(). It will pull an item T out of the container. (Creating it if not already existing)</p>

<blockquote>
  <p>public T Resolve&lt;T&gt;()</p>
</blockquote>

<p>When T is an interface Resolve&lt;T&gt; (unless you setup registration specifically with the container) should return basically “(new Mock&lt;T&gt;()).Object”</p>

<p>When T is a concrete Class, the container should return an instance of T and any of it’s dependencies will be satisfied by mocks. (Note that T will not be any sort of mocked instance of T, unless you used the GetMock&lt;T&gt; as described below first)</p>

<blockquote>
  <p>public Mock&lt;T&gt; GetMock&lt;T&gt;() where T : class</p>
</blockquote>

<p>When T is an interface GetMock&lt;T&gt; should return basically “(new Mock&lt;T&gt;())” </p>

<p>When T is a concrete Class, the container should return a new Mock&lt;T&gt;() and any of it’s dependencies will be satisfied by mocks.</p>

<h4>How do I use the UnityAutoMockContainer?</h4>

<p>It’s pretty basic, you first create an instance of the UnityAutoMockContainer, and from there you can ask it for mocks of an (Interface, Class, or Abstract Class).</p>

<p>If you request an instance of a concrete class, or abstract class, the UnityAutoMockContainer will stuff mocks in for any constructor dependencies of your concrete class (if it can). You can then request from the container those same dependencies one at a time and either apply mocking setups or verifications.</p>

<blockquote>
  <p><strong>NOTE:</strong> Anything the container creates will live as a singleton instance in the container. So any other requests from the container will always return the originally created instance. Therefore, each distinct scenario in a test suite should have their own instances of the container.</p>
</blockquote>

<p>Below his an example of how you can leverage the container in some tests. Given this base fixture class…</p>

<pre class="brush: csharp;">public class FixtureBase
{
    private readonly UnityAutoMockContainer _autoMockContainer = new UnityAutoMockContainer();

    protected UnityAutoMockContainer AutoMockContainer
    {
        get { return _autoMockContainer; }
    }

    [TestFixtureSetUp]
    public void SetupContext_ALL()
    {
        Before_all_tests();
        Because();
    }

    [TestFixtureTearDown]
    public void TearDownContext_ALL()
    {
        After_all_tests();
    }

    protected virtual void Before_all_tests()
    {
    }

    protected virtual void Because()
    {
    }

    protected virtual void After_all_tests()
    {
    }
}</pre>

<p>If I were given the following system to test.</p>

<pre class="brush: csharp;">public interface IServiceA { void RunA(); }
public interface IServiceB { void RunB(); }

public class TestComponent
{
    public TestComponent(IServiceA serviceA, IServiceB serviceB)
    {
        ServiceA = serviceA;
        ServiceB = serviceB;
    }

    public IServiceA ServiceA { get; private set; }
    public IServiceB ServiceB { get; private set; }

    public void RunAll()
    {
        if (!HowDidItGo())
            return;
        ServiceA.RunA();
        ServiceB.RunB();
    }

    public virtual bool HowDidItGo()
    {
        // some really nasty untestable code
        return true;
    }
}</pre>

<p>The below example demonstrates simply verifying some behavior on the mocked dependencies of the system under test.</p>

<pre class="brush: csharp;">[TestFixture]
public class Example__how_to_pull_items_from_the_UnityAutoMockContainer_when_verifying_behavior_after_an_action_was_taken 
    : FixtureBase
{
    private TestComponent _testComponent;

    protected override void Before_all_tests()
    {
        base.Before_all_tests();
        _testComponent = AutoMockContainer.Resolve&lt;TestComponent&gt;();
    }

    protected override void Because()
    {
        _testComponent.RunAll();
    }

    [Test]
    public void Should_run_ServiceA_RunA()
    {
        AutoMockContainer
            .GetMock&lt;IServiceA&gt;()
            .Verify(v =&gt; v.RunA(), Times.Once());
    }

    [Test]
    public void Should_run_ServiceB_RunB()
    {
        AutoMockContainer
            .GetMock&lt;IServiceB&gt;()
            .Verify(v =&gt; v.RunB(), Times.Once());
    }
}</pre>

<p>Next, you may have noticed that the system under test had a complicated internal method (that may not necessarily be testable). You can use the AutoMocker to create the system under test as a Mock itself, so we can override some of the behavior. Here’s how you could quickly do that. </p>

<blockquote>
  <p><strong>Aside</strong>: I’m not saying this is a good practice or aids in good component design, just saying it’s possible</p>
</blockquote>

<pre class="brush: csharp;">[TestFixture]
public class Example__how_to_use_the_UnityAutoMockContainer_to_override_a_method_on_the_SystemUnderTest_to_test_a_certain_behavior
    : FixtureBase
{

    private TestComponent _testComponent;

    protected override void Before_all_tests()
    {
        base.Before_all_tests();
        var mockTestComponent = AutoMockContainer.GetMock&lt;TestComponent&gt;();

        mockTestComponent
            .Setup(s =&gt; s.HowDidItGo())
            .Returns(false);

        _testComponent = mockTestComponent.Object;
    }

    protected override void Because()
    {
        _testComponent.RunAll();
    }

    [Test]
    public void Should_run_ServiceA_RunA()
    {
        AutoMockContainer
            .GetMock&lt;IServiceA&gt;()
            .Verify(v =&gt; v.RunA(), Times.Never());
    }

    [Test]
    public void Should_run_ServiceB_RunB()
    {
        AutoMockContainer
            .GetMock&lt;IServiceB&gt;()
            .Verify(v =&gt; v.RunB(), Times.Never());
    }
}</pre>

<p>&#160;</p>

<p>It’s amazing how much redundant test setup code this little helper has saved me in my tests. I hope others can find some use with this as well.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>StatLight &#8211; Goes Open Source</title>
		<link>http://elegantcode.com/2009/12/10/statlight-goes-open-source/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=statlight-goes-open-source</link>
		<comments>http://elegantcode.com/2009/12/10/statlight-goes-open-source/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 03:26:55 +0000</pubDate>
		<dc:creator>Jason Jarrett</dc:creator>
				<category><![CDATA[Esoterica]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/12/10/statlight-goes-open-source/</guid>
		<description><![CDATA[Although I made a very minor attempt at making StatLight a “for-sale” product, I knew when I started that open-source was most likely going to be my long term path for StatLight. What is it? (Silverlight Testing Automation Tool) StatLight is a tool developed for automating the setup, running, and gathering results of Silverlight unit [...]]]></description>
			<content:encoded><![CDATA[Although I made a very minor attempt at making <a href="http://statlight.net" target="_blank">StatLight</a> a “for-sale” product, I knew when I started that open-source was most likely going to be my long term path for <a href="http://statlight.net" target="_blank">StatLight</a>.
<h5>What is it? (Silverlight Testing Automation Tool)</h5>
StatLight is a tool developed for automating the setup, running, and gathering results of Silverlight unit tests. StatLight helps to speed up the feedback cycles while practicing<a href="http://en.wikipedia.org/wiki/Test-driven_development"> TDD</a>/<a href="http://en.wikipedia.org/wiki/Behavior_Driven_Development">BDD</a>/(insert your test style here) during Silverlight development.
<h5>Where can I get StatLight?</h5>
<a href="http://StatLight.CodePlex.com">http://StatLight.CodePlex.com</a>
<h4>Happy Coding !!!</h4>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/12/10/statlight-goes-open-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Removing U3 from Your Thumb Drives</title>
		<link>http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=removing-u3-from-your-thumb-drives</link>
		<comments>http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 18:31:17 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/</guid>
		<description><![CDATA[U3 is a technology used install boot software on thumb drives. Companies use this to ensure that some little application will get loaded or something when you plug their thumb drive into your Windows machine. This can be a favorite move of vendors who give away thumb drives at conferences as swag. They want to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/U3" target="_blank">U3</a> is a technology used install boot software on thumb drives. Companies use this to ensure that some little application will get loaded or something when you plug their thumb drive into your Windows machine.</p>  <p>This can be a favorite move of vendors who give away thumb drives at conferences as swag. They want to launch their little demo app or whatever when you plug in the drive.</p>  <p>It can be very annoying.</p>  <p>I am trying to create a Win7 install thumb drive for my wife’s netbook and I have a great 4G thumb drive to hold the media. Unfortunately, my thumb drive had this U3 stuff on it and won’t work as a boot disc as long as that pesky software is on it.</p>  <p>The simple answer is this little utility: <a href="http://u3uninstall.s3.amazonaws.com/U3Uninstall.exe">U3Uninstall.exe</a>. After running this utility on the thumb drive I have a plain ole storage drive I can use as a Win7 bootable install disc.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Team Build without Tests Lists</title>
		<link>http://elegantcode.com/2009/10/02/team-build-without-tests-lists/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=team-build-without-tests-lists</link>
		<comments>http://elegantcode.com/2009/10/02/team-build-without-tests-lists/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 19:40:04 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[MSDN]]></category>
		<category><![CDATA[Team System]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/10/02/team-build-without-tests-lists/</guid>
		<description><![CDATA[Test lists drive me nuts. I recently recorded a screen cast showing how to pull of CI without the test lists. Here ya go! Here’s a link to the screen cast.]]></description>
			<content:encoded><![CDATA[Test lists drive me nuts. I recently recorded a screen cast showing how to pull of CI without the test lists. Here ya go!

<a href="http://www.pluralsight.com/main/screencasts/screencast.aspx?id=vsts08-continuous-integration" target="_blank">Here’s a link to the screen cast</a>.]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/10/02/team-build-without-tests-lists/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Healthy Team Habits with Team System</title>
		<link>http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=healthy-team-habits-with-team-system</link>
		<comments>http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 19:36:21 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Team System]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/</guid>
		<description><![CDATA[I wrote an article recently for the Pluralsight newsletter discussing how to use a tool like Team System to drive positive organizational change. Here’s a pointer to the article.]]></description>
			<content:encoded><![CDATA[<p>I wrote an article recently for the Pluralsight newsletter discussing how to use a tool like Team System to drive positive organizational change. </p>  <p><a href="http://bit.ly/3CAC8Z" target="_blank">Here’s a pointer to the article</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code Cast 30 &#8211; Story Teller with Jeremy Miller</title>
		<link>http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=code-cast-30-story-teller-with-jeremy-miller</link>
		<comments>http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 17:38:16 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[ALT.NET]]></category>
		<category><![CDATA[CodeCast]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/</guid>
		<description><![CDATA[The venerable Jeremy Miller joined us to talk about YAIJMOSP (Yet Another Impressive Jeremy Miller Open Source Project). This week’s Jeremy project is Story Teller. Jeremy’s other contributions to the community include StructureMap and an obtuse fascination with separation patterns for user interfaces. Story Teller is an alternative for Fitnesse, implemented in .NET and chases [...]]]></description>
			<content:encoded><![CDATA[<p>The venerable Jeremy Miller joined us to talk about YAIJMOSP (Yet Another Impressive Jeremy Miller Open Source Project). This week’s Jeremy project is Story Teller.</p>  <p>Jeremy’s other contributions to the community include <a href="http://codebetter.com/blogs/products/pages/131734.aspx">StructureMap</a> and an <a href="http://www.virtualaltnet.com/Recordings">obtuse fascination with separation patterns</a> for user interfaces.</p>  <p>Story Teller is an alternative for Fitnesse, implemented in .NET and chases the holy grail of executable requirements. If you are interested in how to achieve the promise of shared and executable requirements, this just might be your tool.</p>  <ul>   <li><a href="http://storyteller.tigris.org/">Story Teller</a> </li>    <li><a href="http://codebetter.com/blogs/jeremy.miller/archive/2009/08/24/how-about-a-storyteller-preview-release.aspx">Jeremy’s StoryTeller post on a preview release</a> </li> </ul>  <p><a href="http://pluralsight-free.s3.amazonaws.com/david-starr/ecc/ECC_30_StoryTeller.mp3">Get the show here</a></p>  <p><a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=271207118"><img border="0" alt="View in iTunes" src="http://elegantcode.com/cast/files/images/itunes_button.gif" /></a> <a href="http://feeds2.feedburner.com/elegantcodecast"><img border="0" alt="Any Podcatcher" src="http://elegantcode.com/cast/files/images/rss_podcast.jpg" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
<enclosure url="http://pluralsight-free.s3.amazonaws.com/david-starr/ecc/ECC_30_StoryTeller.mp3" length="36208890" type="audio/mpeg" />
		</item>
		<item>
		<title>Visual Studio Team System for Small Teams</title>
		<link>http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=visual-studio-team-system-for-small-teams</link>
		<comments>http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 23:27:41 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[ALM]]></category>
		<category><![CDATA[Craftsmanship]]></category>
		<category><![CDATA[Source Control]]></category>
		<category><![CDATA[Team System]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/</guid>
		<description><![CDATA[There was a recent brouhaha on Twitter and in some blogs about the appropriateness of Team System in small teams. The gist of the discussion was simply that there are a lot of alternatives to TFS and VSTS tooling and many of them come cheaper out of the box. In many cases, free! Duh. I [...]]]></description>
			<content:encoded><![CDATA[<p>There was a recent brouhaha on Twitter and in some blogs about the appropriateness of Team System in small teams. The gist of the discussion was simply that there are a lot of alternatives to TFS and VSTS tooling and many of them come cheaper out of the box. In many cases, free!</p>  <p>Duh.</p>  <p>I have worked with Team System quite a bit and with alternatives just as much. With a lot of experience behind me on this, I feel confident I can make a legitimate case for using Team System in a small team.</p>  <p>I consider a small team a development organization of fewer than 10 people.</p>  <h3>Some Context and Disclosure</h3>  <ul>   <li>I am a Team System MVP </li>    <li>I use Team System on a daily basis </li>    <li>I use SVN+Team City on a daily basis </li>    <li>I care more about pragmatism and craftsmanship than tooling, and that means focusing on how to use tools, not just the tools themselves </li>    <li>I have been present on day one of a brand new team </li>    <li>I have been in a team that has grown quickly over a short time </li> </ul>  <h3>Focus on the Work</h3>  <p>What happens when teams squabble about tools instead of just getting on with it? Lots of churn and wasted energy, is my experience. </p>  <p>I can report having seen small teams succeed and fail. The success or failure in both cases obviously has a lot more to do with leadership and business than developer tools, but I can also say the way companies approach developer tooling can have a lot to do with culture.</p>  <p>Any startup or small team simply <em>must</em> be focused to succeed. This can also be extremely difficult to achieve. A small team simply doesn’t have the capacity or depth to be distracted with issues not pertaining to delivering product. Paradoxically, team members are often wearing several hats. That is, everyone is doing a little of everything. That can quickly trend to entropy, because no one ends focusing on the work at hand.</p>  <p>The last thing I want to do on day 1 of a new team, or very often in a small teams, is visit tooling. Not deliberately making choices about tooling, though, will eventually bite you. Hard. How many of us are in organizations with over 2 brands of source control systems because new ones were added in an ad-hoc manor? I’ve been there. How many unit test frameworks are being used? I have been on a team that used 4 at once. Think that caused some problems?</p>  <p>As team lead, I care far less about optimizations of specific tools, and far more about a cohesive and fluid process enabling flow within the team. I care a great deal that there is a single source of truth for requirements and very little that we are using the coolest new unit test framework.</p>  <p>Often, focusing on work simply means implementing a system of tools and getting past the discussion. Have you ever heard developers purse fight over text editors? Now, there’s a constructive use of energy. The same thing can happen when geeks whip out their favorite source control, merge tools, unit testing frameworks, Visual Studio add-ins, logging library, laptop brand, or bug tracking system. </p>  <p>Point number one is let’s get past the time suck of the my-NAnt-is-better-than-your-MS-Build and just prescribe a toolset so we can get on with the real business of our team. </p>  <h3>Team System is Like a Box of Tools at Sears</h3>  <p>When I go to Sears and browse the Craftsman (or DeWalt) tools, I usually see some interesting little specialty tools. I might buy a funky swivel socket or a single ratchet, but I rarely browse the aisle with the large all-in-one kits. The reason I don’t browse the kit aisle is because my father-in-law bought be a basic Craftsman starter kit almost 20 years ago and my collection of tools has grown over time. </p>  <p>I don’t still have all of the tools in that original kit, but I do still have many of them. Further, my need for hand tools have gotten more specialized over time. Also, I am making a bit more money than I was when I married my wife, so I may spend extra for a special-purpose hammer rather than always relying on the one that came in the original kit.</p>  <p>Without that original kit, though, I would never have been able to even get started. No, it didn’t have every tool I would ever need, but it had almost everything I needed right then.</p>  <p>Team System is much the same. A team can absolutely hit the ground running with the rich toolset VSTS provides. Maybe you’ll augment the toolbox over time. Maybe you’ll even change tools (can anyone say [TestClass]?) but the kit that comes in the box really can provide most of what a small team needs to get going, and do it in a single solution.</p>  <p>That’s huge. </p>  <p>As soon as I start looking around to sub-optimize my hammer or my source control, I am going to start slowing the team down. GIT? SVN? PerForce? There are a ton of options for source control, each with their strengths and weaknesses. It’s freaking source control. Get on with it. I mean, how sexy can a hammer be?</p>  <h3>It May Not Cost What You Think</h3>  <p>You can buy a big toolkit at Sears for far less than it costs to buy all the tools individually. Further, buying the toolkit for the person without tools is a good move because they will have all the basics covered in a single purchase. </p>  <p>Craftsman Toolkits are a favorite gift of mine for graduates and newlyweds for this very reason.</p>  <p>Microsoft has the same insight that Sears had. If a person gets accustomed to Craftsman by selling the kit cheaply, they’ll be a customer for life. This is the exact idea behind the BizSpark program. If you aren’t familiar with it, BizSpark is a Microsoft program that allows free (that’s right, free!) access to all developer tools, operating systems, and other software for startups.</p>  <p>Is your company less than 2 years old? Do you make software? If yes, you qualify, I kid you not.</p>  <h3>Integration Matters</h3>  <p>Even if you are paying full price (which you shouldn’t :) ) I believe the value of VSTS is still there. The productivity loss involved in setting up a system of disparate and non-integrated developer tools is tremendous. I have been there and done that.</p>  <p>I know SVN is good. I know Team City is good. I also know that setting up a basic Continuous Integration build in Team System is stupid simple. And the real money shot comes with Work Item management. How many teams out there are using work item management systems or defect tracking systems they hate?</p>  <p>Well, we all are. </p>  <p>So, we may as well have one that works right in the IDE and allows me to tie check ins to work I am performing. The context switching that occurs in non-integrated systems of reporting, SCC, build, and work item management is HUGE. Huge! No really. </p>  <h3>Get On With It</h3>  <p>The people involved in the recent online Team System kerfuffle are folks I would consider in the top 1% of developer talent. Quite frankly, it makes a lot of sense to me that people at that level will have replaced their hammer from the kit with one that has an ergonomic grip.</p>  <p>That said, there are a lot of startups and small teams in entropy out there. For those folks, I firmly believe that standardizing on an integrated toolset for the development team is a bigger savings than “free like a puppy” solutions that can work well, but with more churn.</p>  <p>Now quit fussing about source control and learn how to use a decent ORM, people.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Implementing Team City for .NET Projects, Part 5: Deployments</title>
		<link>http://elegantcode.com/2010/11/30/autotest-net/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=autotest-net</link>
		<comments>http://elegantcode.com/2010/11/30/autotest-net/#comments</comments>
		<pubDate>Tue, 30 Nov 2010 11:00:00 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[TDD]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/11/30/autotest-net/</guid>
		<description><![CDATA[I just want to quickly point out a tool that I’ve been playing with for a couple of days now, named AutoTest.NET. Its an open-source tool that originates from a popular tool in the Ruby community called ZenTest, which basically runs all your valuable unit tests when you save your source files or when you [...]]]></description>
			<content:encoded><![CDATA[<p>I just want to quickly point out a tool that I’ve been playing with for a couple of days now, named <a href="https://github.com/acken/AutoTest.Net" target="_blank">AutoTest.NET</a>. Its an open-source tool that originates from a popular tool in the Ruby community called <a href="http://www.zenspider.com/ZSS/Products/ZenTest/" target="_blank">ZenTest</a>, which basically runs all your valuable unit tests when you save your source files or when you build your code. It enables you to get feedback about your changes as soon as possible.</p>  <p>The project started out a couple of years ago on <a href="http://code.google.com/p/autotestnet/" target="_blank">Google code</a> and was first initiated by <a href="http://averyblog.com/" target="_blank">James Avery</a>. Contribution stopped at some point until recently where <a href="http://ackenpacken.blogspot.com/" target="_blank">Svein Arne Ackenhausen</a> forked the source code and <a href="https://github.com/acken/AutoTest.Net" target="_blank">put it on GitHub</a>. Now it runs both for .NET as well as Mono, with NUnit, MSTest and xUnit as the currently supported unit test frameworks. </p>  <p>Here’s a screenshot from the feedback window when all tests pass:</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2010/11/Success.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Success" border="0" alt="Success" src="http://elegantcode.com/wp-content/uploads/2010/11/Success_thumb.png" width="540" height="189" /></a> </p>  <p>And here you can see the same window after I broke one of my unit tests:</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2010/11/Failure.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Failure" border="0" alt="Failure" src="http://elegantcode.com/wp-content/uploads/2010/11/Failure_thumb.png" width="538" height="319" /></a> </p>  <p>Here you can see which particular unit test has been broken and by clicking the specified link you end up at the right source file in Visual Studio. </p>  <p>I encourage you to pick up this small tool and learn how it can facilitate your TDD flow. Take a look at <a href="https://github.com/acken/AutoTest.Net/wiki/Get-started!" target="_blank">this page</a> in order to get up-and-running in no time. Also don’t forget to provide the owner(s) of this project with some feedback that you might have. Svein has been very helpful over the last week answering all my stupid questions and remarks (and the Nobel price for this year’s most patient person goes to … ;-) ). </p>  <p>I would definitely like to see this tool becoming more popular, so go check it out.&#160;&#160; </p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/11/30/autotest-net/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Elegant Code &#187; Tools and Utilities</title>
	<atom:link href="http://elegantcode.com/category/tools-and-utilities/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com</link>
	<description></description>
	<lastBuildDate>Tue, 15 May 2012 10:00:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Buy Clonidine Without Prescription</title>
		<link>http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=moving-from-e-texteditor-to-sublime-text-2</link>
		<comments>http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/#comments</comments>
		<pubDate>Fri, 05 Aug 2011 23:45:32 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[CoffeeScript]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/</guid>
		<description><![CDATA[I’ve been using E-TextEditor Buy Clonidine Without Prescription, for more than a year now for doing all my JavaScript, Node.js and CoffeeScript development. Clonidine from mexico, You can think of E-TextEditor as TextMate for the Windows platform. I’ve been pretty happy with it throughout this period as it can be extended pretty easily with a [...]]]></description>
			<content:encoded><![CDATA[<p> <p align="justify">I’ve been using <a href="http://www.e-texteditor.com/" target="_blank">E-TextEditor</a> <b>Buy Clonidine Without Prescription</b>, for more than a year now for doing all my JavaScript, Node.js and CoffeeScript development.  <b>Clonidine from mexico</b>, You can think of E-TextEditor as <a href="http://macromates.com/" target="_blank">TextMate</a> for the Windows platform. I’ve been pretty happy with it throughout this period as it can be extended pretty easily with a whole slew of bundles that are already available for TextMate, <b>cheap Clonidine</b>.  <b>Clonidine recreational</b>, E-TextEditor requires you to install <a href="http://www.cygwin.com/" target="_blank">Cygwin</a> which happens automatically during installation. Using the Cygwin command-line gave me enough (re-)exposure to a Linux-like environment in order for me wanting to (re-)learn about this other platform, <b>purchase Clonidine for sale</b>. More on that in later blog posts, <b>Buy Clonidine Without Prescription</b>.  <b>Low dose Clonidine</b>, Although there haven’t been any new versions of E-TextEditor for quite some time now, the current version enabled me to write JavaScript code in a productive way.</p>  <p align="justify">Only recently I found out about another editor called <a href="http://www.sublimetext.com/2" target="_blank">Sublime Text 2</a> (thanks to <a href="http://twitter.com/#!/casualjim" target="_blank">Ivan Porto Carrero</a>), <b>Clonidine description</b>.  <b>Clonidine overnight</b>, I downloaded this text editor in order to give it a try and I must say that I haven’t opened E-TextEditor ever since. This second version of Sublime Text is still in development but it’s pretty stable as I haven’t run into any issues so far, <b>Clonidine no prescription</b>.  <b>Clonidine brand name</b>, The cool part is that this editor is available for both Windows, Linux and OS X which enabled me to move all my Node.js and CoffeeScript development from Cygwin on Windows to Ubuntu Linux.&#160; </p>  <p align="justify">CoffeeScript isn’t supported out-of-the-box (yet), <b>purchase Clonidine</b>, <b>Clonidine gel, ointment, cream, pill, spray, continuous-release, extended-release</b>, so I installed the <a href="https://github.com/jashkenas/coffee-script-tmbundle" target="_blank">CoffeeScript&#160; TextMate bundle</a> written by <a href="http://ashkenas.com/" target="_blank">Jeremy Ashkenas</a> (yes, the same one from the <a href="http://jashkenas.github.com/coffee-script/" target="_blank">CoffeeScript</a> and <a href="http://documentcloud.github.com/backbone/" target="_blank">Backbone.js</a> fame), <b>Clonidine long term</b>.  Also check out <a href="https://github.com/jashkenas/coffee-script/wiki/Text-editor-plugins" target="_blank">this page on the CoffeeScript wiki</a> for more information on how to bring some CoffeeScript happiness to your own favorite text editor.</p>  <p align="justify"> <b>Buy Clonidine Without Prescription</b>, Setting up this TextMate bundle for use with Sublime Text 2 was actually pretty easy.  <b>Clonidine canada, mexico, india</b>, Just navigate to <em>/home/&lt;my_user_name&gt;/.config/sublime-text-2/Packages</em> in a terminal (or the corresponding file path on Windows) and clone the source of the CoffeeScript TextMate bundle using git: </p>  <blockquote>   <p align="justify"><em>git clone git://github.com/jashkenas/coffee-script-tmbundle CoffeeScript</em></p> </blockquote>  <p align="justify">Next close all the .coffee files and restart Sublime Text 2. Now we have some nice syntax highlighting and some useful code snippets at our disposal.&#160; </p>  <p align="justify"><a href="http://elegantcode.com/wp-content/uploads/2011/08/image.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://elegantcode.com/wp-content/uploads/2011/08/image_thumb.png" width="600" height="396" /></a></p>  <p>It's also possible to hook into <a href="http://sublimetext.info/docs/en/reference/build_systems.html" target="_blank">the build system</a> of Sublime Text 2, <b>Clonidine australia, uk, us, usa</b>.  <b>Clonidine blogs</b>, You just need to create a new file named <em>CoffeeScript.sublime-build</em> at the following location: </p>  <blockquote>   <p><em>/home/&lt;my_user_name&gt;/.config/sublime-text-2/Packages/User&#160; </em></p> </blockquote>  <p align="justify">You can add the following to this new file for compiling CoffeeScript</p>  <pre style="width: 100%; height: 85px" class="csharpcode">{     <span class="str">&quot;cmd&quot;</span>: [<span class="str">&quot;coffee&quot;</span>, <span class="str">&quot;-c&quot;</span>, <b>Clonidine from canada</b>, <b>Is Clonidine addictive</b>, <span class="str">&quot;$file&quot;</span>],     <span class="str">&quot;selector&quot;</span> : <span class="str">&quot;source.coffee&quot;</span>, <b>Clonidine pharmacy</b>, <b>Ordering Clonidine online</b>, <span class="str">&quot;path&quot;</span> : <span class="str">&quot;/usr/local/bin&quot;</span>}</pre><style type="text/css">.csharpcode, .csharpcode pre{	font-size: small;	color: black;	font-family: consolas, <b>Clonidine without prescription</b>, <b>Clonidine no rx</b>, "Courier New", courier, <b>buy no prescription Clonidine online</b>, <b>Clonidine street price</b>, monospace;	background-color: #ffffff;	/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt<br />
{	background-color: #f4f4f4;	width: 100%;	margin: 0em;}.csharpcode .lnum { color: #606060; }</style>or the following for executing/running CoffeeScript code.</p>
<p><pre style="width: 100%; height: 85px" class="csharpcode">{     <span class="str">&quot;cmd&quot;</span>: [<span class="str">&quot;coffee&quot;</span>, <b>Clonidine for sale</b>, <b>What is Clonidine</b>, <span class="str">&quot;$file&quot;</span>],     <span class="str">&quot;selector&quot;</span> : <span class="str">&quot;source.coffee&quot;</span>, <b>get Clonidine</b>, <b>Clonidine class</b>, <span class="str">&quot;path&quot;</span> : <span class="str">&quot;/usr/local/bin&quot;</span>}</pre></p>
<p><p align="justify">Now when you hit F7, this fresh build command is executed when a CoffeeScript source file is showing in the active tab, <b>cheap Clonidine no rx</b>.  It’s also possible to change the build short-key to your own taste through the <em>Preferences</em> menu, <b>Buy Clonidine Without Prescription</b>.  <b>Fast shipping Clonidine</b>, <style type="text/css">.csharpcode, .csharpcode pre{	font-size: small;	color: black;	font-family: consolas, <b>buy Clonidine from canada</b>, <b>Clonidine without a prescription</b>, "Courier New", courier, <b>purchase Clonidine online no prescription</b>, <b>Effects of Clonidine</b>, monospace;	background-color: #ffffff;	/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt<br />
{	background-color: #f4f4f4;	width: 100%;	margin: 0em;}.csharpcode .lnum { color: #606060; }</style></p></p>
<p><p align="justify">Unfortunately, there’s only one build command as I would love to create a separate command for compiling and running CoffeeScript code (or perhaps I missed this feature during the excitement <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://elegantcode.com/wp-content/uploads/2011/08/wlEmoticon-winkingsmile.png" />), <b>buy generic Clonidine</b>.  <b>Is Clonidine safe</b>, </p></p>
<p><p align="justify">Some more usage is definitely needed for me to learn more about this excellent text editor, but currently I’m pretty happy with it, <b>Clonidine trusted pharmacy reviews</b>.  <b>Taking Clonidine</b>, I also need to find out how well JavaScript is supported and perhaps see how far one can go when doing some C# development using Mono. I expect that there are a good number of productive features in there for me to discover.</p></p>
<p><p align="justify">I encourage you have a decent look at this excellent tool, <b>Clonidine dangers</b>.  <b>Order Clonidine from mexican pharmacy</b>, </p></p>
<p><p align="justify">Until next time.</p>.  Herbal Clonidine.</p>
<p></p>
<p><b>Similar posts:</b> <a href='http://elegantcode.com/?p=4452'>Stromectol For Sale</a>. <a href='http://elegantcode.com/?p=4867'>Buy Soma Without Prescription</a>. <a href='http://elegantcode.com/?p=4758'>Buy Atenolol Without Prescription</a>. <a href='http://elegantcode.com/?p=4553'>Buy Female Pink Viagra Without Prescription</a>. <a href='http://elegantcode.com/?p=4560'>Vermox For Sale</a>. <a href='http://elegantcode.com/?p=4662'>Where can i buy cheapest Antabuse online</a>. <a href='http://elegantcode.com/?p=4508'>Slimex (Obetrim) photos</a>. <a href='http://elegantcode.com/?p=4623'>Augmentin description</a>. <a href='http://elegantcode.com/?p=4752'>Buy Colchicine no prescription</a>. <a href='http://elegantcode.com/?p=4322'>Clonidine natural</a>.<br />
<b>Trackbacks from:</b> <a href='http://evanrapoport.com/?p=429'>Buy Clonidine Without Prescription</a>. <a href='http://www.themusclecarplace.com/?p=5350'>Buy Clonidine Without Prescription</a>. <a href='http://changecamp.ca/?p=578'>Buy Clonidine Without Prescription</a>. <a href='http://blog.farmland.org/?p=3172'>Buy Clonidine Without Prescription</a>. <a href='http://home.officesnapshots.com/?p=175'>Buy Clonidine Without Prescription</a>. <a href='http://www.thegriffonnews.com/?p=9699'>Kjøpe Clonidine på nett, köpa Clonidine online</a>. <a href='http://www.quarterlives.com/?p=831'>Buy cheap Clonidine no rx</a>. <a href='http://www.greatgreengoods.com/?p=3511'>Clonidine use</a>. <a href='http://www.macneilbmx.com/blog/?p=5325'>Clonidine no rx</a>. <a href='http://social-blend.com/?p=482'>Online buying Clonidine hcl</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>AutoTest.NET</title>
		<link>http://elegantcode.com/2010/11/30/autotest-net/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=autotest-net</link>
		<comments>http://elegantcode.com/2010/11/30/autotest-net/#comments</comments>
		<pubDate>Tue, 30 Nov 2010 11:00:00 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[TDD]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/11/30/autotest-net/</guid>
		<description><![CDATA[I just want to quickly point out a tool that I’ve been playing with for a couple of days now, named AutoTest.NET. Its an open-source tool that originates from a popular tool in the Ruby community called ZenTest, which basically runs all your valuable unit tests when you save your source files or when you [...]]]></description>
			<content:encoded><![CDATA[<p>I just want to quickly point out a tool that I’ve been playing with for a couple of days now, named <a href="https://github.com/acken/AutoTest.Net" target="_blank">AutoTest.NET</a>. Its an open-source tool that originates from a popular tool in the Ruby community called <a href="http://www.zenspider.com/ZSS/Products/ZenTest/" target="_blank">ZenTest</a>, which basically runs all your valuable unit tests when you save your source files or when you build your code. It enables you to get feedback about your changes as soon as possible.</p>  <p>The project started out a couple of years ago on <a href="http://code.google.com/p/autotestnet/" target="_blank">Google code</a> and was first initiated by <a href="http://averyblog.com/" target="_blank">James Avery</a>. Contribution stopped at some point until recently where <a href="http://ackenpacken.blogspot.com/" target="_blank">Svein Arne Ackenhausen</a> forked the source code and <a href="https://github.com/acken/AutoTest.Net" target="_blank">put it on GitHub</a>. Now it runs both for .NET as well as Mono, with NUnit, MSTest and xUnit as the currently supported unit test frameworks. </p>  <p>Here’s a screenshot from the feedback window when all tests pass:</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2010/11/Success.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Success" border="0" alt="Success" src="http://elegantcode.com/wp-content/uploads/2010/11/Success_thumb.png" width="540" height="189" /></a> </p>  <p>And here you can see the same window after I broke one of my unit tests:</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2010/11/Failure.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Failure" border="0" alt="Failure" src="http://elegantcode.com/wp-content/uploads/2010/11/Failure_thumb.png" width="538" height="319" /></a> </p>  <p>Here you can see which particular unit test has been broken and by clicking the specified link you end up at the right source file in Visual Studio. </p>  <p>I encourage you to pick up this small tool and learn how it can facilitate your TDD flow. Take a look at <a href="https://github.com/acken/AutoTest.Net/wiki/Get-started!" target="_blank">this page</a> in order to get up-and-running in no time. Also don’t forget to provide the owner(s) of this project with some feedback that you might have. Svein has been very helpful over the last week answering all my stupid questions and remarks (and the Nobel price for this year’s most patient person goes to … ;-) ). </p>  <p>I would definitely like to see this tool becoming more popular, so go check it out.&#160;&#160; </p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/11/30/autotest-net/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Unity/Moq &#8211; AutoMocker or AutoMockingContainer</title>
		<link>http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=unitymoq-automocker-or-automockingcontainer</link>
		<comments>http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 16:52:33 +0000</pubDate>
		<dc:creator>Jason Jarrett</dc:creator>
				<category><![CDATA[TDD]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/</guid>
		<description><![CDATA[What is an Auto Mocking Container? This post started to get a little long, so I won’t re-explain the concept. Joshua Flanagan wrote a nice overview at his Los Techies blog: Auto mocking Explained. My post is mainly here to describe the Unity version of an automocking container I threw together. In Jan 2009 I [...]]]></description>
			<content:encoded><![CDATA[<h4>What is an Auto Mocking Container?</h4>  <p>This post started to get a little long, so I won’t re-explain the concept.</p>  <p><a href="http://www.lostechies.com/blogs/joshuaflanagan/default.aspx">Joshua Flanagan</a> wrote a nice overview at his <a href="http://www.lostechies.com/">Los Techies</a> blog: <a href="http://www.lostechies.com/blogs/joshuaflanagan/archive/2009/02/03/auto-mocking-explained.aspx"><strong>Auto mocking Explained</strong></a>.</p>  <p>My post is mainly here to describe the Unity version of an automocking container I threw together.</p>  <h4>In Jan 2009 I blogged about my initial version of the Unity AutoMocker - Why am I blogging about it again?</h4>  <p>I originally wrote the AutoMocker for the Unity container a year ago (Jan 2009, in Silverlight), and finally got around to placing the code up in the <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a> project in June of 2009.</p>  <p>I’m writing another post today in hopes to:</p>  <ol>   <li>Get some feedback on how this little snippet of code should continue. </li>    <li>Give a little more how-to/example code </li>    <li>Describe some updates I made since I originally created it.&#160; </li> </ol>  <h4>Where can I get it?</h4>  <p><strong>This is one part where I’d appreciate some feedback.</strong></p>  <p>I have two slightly different versions out there (currently).</p>  <p>I have one version at the <a href="http://code.google.com/p/elegantcode/source/browse/#svn/trunk/Coders/JasonJarrett/UnityAutoMocker">ElegantCode</a> repository where I was working on it, and the other I threw up at <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a>.</p>  <p>The core of the UnityAutoMockContainer is the same in both places, it’s how the tests are separated out that differ.</p>  <p>In the <a href="http://code.google.com/p/elegantcode/source/browse/#svn/trunk/Coders/JasonJarrett/UnityAutoMocker">ElegantCode repository</a> it’s an all in one self contained single file (that you can copy into your own test project(s)). You can then setup a single test in your own testing framework that runs all internal automocker tests (in case you need to modify it yourself, and don’t want to break any existing functionality). EX: test</p>  <pre class="brush: csharp;">[Test]
public void Should_run_all_UnityAutoMockContainer_internal_tests()
{
    Moq.AutoMocking.SelfTesting.UnityAutoMockContainerFixture
        .RunAllTests(Console.WriteLine);
}</pre>

<p>I kind of like this format as it makes it easy to port between test libraries. Can’t say I like having the tests in the same file as the core, but it certainly is not a large chunk of code (so far) so it’s relatively small to maintain and definitely easier to manage as a single .cs file than another assembly (which would have to be version dependent on both Unity and Moq).</p>

<p>The <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a> is definitely where I think this helper should end up (and it is there). I just happened to break the tests out into the Silverlight test project and the core is alone in a file. </p>

<p>It’s current state isn’t as easy to copy to a test library (Silverlight/Desktop/Unity 1.2/Unity 2.0) as the one at <a href="http://elegantcode.com/">ElegantCode</a>. <strong>What does anyone think?</strong> Should I put them all together in one file?</p>

<p>However it ends up (1. all in one file or two (1 test) (1 core)) it will continue to be maintained on the <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a> project.</p>

<h4>What is the high level API of the container?</h4>

<p>It’s pretty simple, (currently) there are four methods on the container.</p>

<p><strong>Two for registering items with the container</strong>. Say you want to register an already created instance, or say you want to map an interface to a concrete class and _not_ have the container generate mocks automatically for special cases. </p>

<p>And <strong>two for pulling items out of the container</strong>. Whether you want a instance of T or a Mock&lt;T&gt;, it gives you ways to retrieve both.</p>

<blockquote>
  <p><a href="http://elegantcode.com/wp-content/uploads/2010/01/image.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://elegantcode.com/wp-content/uploads/2010/01/image_thumb.png" width="396" height="106" /></a> </p>
</blockquote>

<h4>How can I setup my own registrations with the container? </h4>

<p>Say I don’t want to have the container generate mocks for specific items and I want to supply specific configuration to the UnityContainer.</p>

<blockquote>
  <p>public UnityAutoMockContainer RegisterInstance&lt;TService&gt;(TService instance)</p>

  <p>public UnityAutoMockContainer Register&lt;TService, TImplementation&gt;() 
    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; where TImplementation : TService</p>
</blockquote>

<p><strong>Note</strong>: both of these registration methods return the container itself so you can fluently stack registration. <strong>EX:</strong></p>

<pre class="brush: csharp;">AutoMockContainer
    .Register&lt;IServiceA, ServiceA&gt;()
    .Register&lt;IServiceB, ServiceB&gt;();</pre>

<p><strong>Let me know</strong>: I haven’t tested or played around with how this automocking container deals with any container specific xml configuration… So although I don’t think you should probably have that in a test assembly (stuff happens). Let me know if there are any issues.</p>

<h4>How do I get items out of the container?</h4>

<p>First is the Resolve&lt;T&gt;(). It will pull an item T out of the container. (Creating it if not already existing)</p>

<blockquote>
  <p>public T Resolve&lt;T&gt;()</p>
</blockquote>

<p>When T is an interface Resolve&lt;T&gt; (unless you setup registration specifically with the container) should return basically “(new Mock&lt;T&gt;()).Object”</p>

<p>When T is a concrete Class, the container should return an instance of T and any of it’s dependencies will be satisfied by mocks. (Note that T will not be any sort of mocked instance of T, unless you used the GetMock&lt;T&gt; as described below first)</p>

<blockquote>
  <p>public Mock&lt;T&gt; GetMock&lt;T&gt;() where T : class</p>
</blockquote>

<p>When T is an interface GetMock&lt;T&gt; should return basically “(new Mock&lt;T&gt;())” </p>

<p>When T is a concrete Class, the container should return a new Mock&lt;T&gt;() and any of it’s dependencies will be satisfied by mocks.</p>

<h4>How do I use the UnityAutoMockContainer?</h4>

<p>It’s pretty basic, you first create an instance of the UnityAutoMockContainer, and from there you can ask it for mocks of an (Interface, Class, or Abstract Class).</p>

<p>If you request an instance of a concrete class, or abstract class, the UnityAutoMockContainer will stuff mocks in for any constructor dependencies of your concrete class (if it can). You can then request from the container those same dependencies one at a time and either apply mocking setups or verifications.</p>

<blockquote>
  <p><strong>NOTE:</strong> Anything the container creates will live as a singleton instance in the container. So any other requests from the container will always return the originally created instance. Therefore, each distinct scenario in a test suite should have their own instances of the container.</p>
</blockquote>

<p>Below his an example of how you can leverage the container in some tests. Given this base fixture class…</p>

<pre class="brush: csharp;">public class FixtureBase
{
    private readonly UnityAutoMockContainer _autoMockContainer = new UnityAutoMockContainer();

    protected UnityAutoMockContainer AutoMockContainer
    {
        get { return _autoMockContainer; }
    }

    [TestFixtureSetUp]
    public void SetupContext_ALL()
    {
        Before_all_tests();
        Because();
    }

    [TestFixtureTearDown]
    public void TearDownContext_ALL()
    {
        After_all_tests();
    }

    protected virtual void Before_all_tests()
    {
    }

    protected virtual void Because()
    {
    }

    protected virtual void After_all_tests()
    {
    }
}</pre>

<p>If I were given the following system to test.</p>

<pre class="brush: csharp;">public interface IServiceA { void RunA(); }
public interface IServiceB { void RunB(); }

public class TestComponent
{
    public TestComponent(IServiceA serviceA, IServiceB serviceB)
    {
        ServiceA = serviceA;
        ServiceB = serviceB;
    }

    public IServiceA ServiceA { get; private set; }
    public IServiceB ServiceB { get; private set; }

    public void RunAll()
    {
        if (!HowDidItGo())
            return;
        ServiceA.RunA();
        ServiceB.RunB();
    }

    public virtual bool HowDidItGo()
    {
        // some really nasty untestable code
        return true;
    }
}</pre>

<p>The below example demonstrates simply verifying some behavior on the mocked dependencies of the system under test.</p>

<pre class="brush: csharp;">[TestFixture]
public class Example__how_to_pull_items_from_the_UnityAutoMockContainer_when_verifying_behavior_after_an_action_was_taken 
    : FixtureBase
{
    private TestComponent _testComponent;

    protected override void Before_all_tests()
    {
        base.Before_all_tests();
        _testComponent = AutoMockContainer.Resolve&lt;TestComponent&gt;();
    }

    protected override void Because()
    {
        _testComponent.RunAll();
    }

    [Test]
    public void Should_run_ServiceA_RunA()
    {
        AutoMockContainer
            .GetMock&lt;IServiceA&gt;()
            .Verify(v =&gt; v.RunA(), Times.Once());
    }

    [Test]
    public void Should_run_ServiceB_RunB()
    {
        AutoMockContainer
            .GetMock&lt;IServiceB&gt;()
            .Verify(v =&gt; v.RunB(), Times.Once());
    }
}</pre>

<p>Next, you may have noticed that the system under test had a complicated internal method (that may not necessarily be testable). You can use the AutoMocker to create the system under test as a Mock itself, so we can override some of the behavior. Here’s how you could quickly do that. </p>

<blockquote>
  <p><strong>Aside</strong>: I’m not saying this is a good practice or aids in good component design, just saying it’s possible</p>
</blockquote>

<pre class="brush: csharp;">[TestFixture]
public class Example__how_to_use_the_UnityAutoMockContainer_to_override_a_method_on_the_SystemUnderTest_to_test_a_certain_behavior
    : FixtureBase
{

    private TestComponent _testComponent;

    protected override void Before_all_tests()
    {
        base.Before_all_tests();
        var mockTestComponent = AutoMockContainer.GetMock&lt;TestComponent&gt;();

        mockTestComponent
            .Setup(s =&gt; s.HowDidItGo())
            .Returns(false);

        _testComponent = mockTestComponent.Object;
    }

    protected override void Because()
    {
        _testComponent.RunAll();
    }

    [Test]
    public void Should_run_ServiceA_RunA()
    {
        AutoMockContainer
            .GetMock&lt;IServiceA&gt;()
            .Verify(v =&gt; v.RunA(), Times.Never());
    }

    [Test]
    public void Should_run_ServiceB_RunB()
    {
        AutoMockContainer
            .GetMock&lt;IServiceB&gt;()
            .Verify(v =&gt; v.RunB(), Times.Never());
    }
}</pre>

<p>&#160;</p>

<p>It’s amazing how much redundant test setup code this little helper has saved me in my tests. I hope others can find some use with this as well.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>StatLight &#8211; Goes Open Source</title>
		<link>http://elegantcode.com/2009/12/10/statlight-goes-open-source/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=statlight-goes-open-source</link>
		<comments>http://elegantcode.com/2009/12/10/statlight-goes-open-source/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 03:26:55 +0000</pubDate>
		<dc:creator>Jason Jarrett</dc:creator>
				<category><![CDATA[Esoterica]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/12/10/statlight-goes-open-source/</guid>
		<description><![CDATA[Although I made a very minor attempt at making StatLight a “for-sale” product, I knew when I started that open-source was most likely going to be my long term path for StatLight. What is it? (Silverlight Testing Automation Tool) StatLight is a tool developed for automating the setup, running, and gathering results of Silverlight unit [...]]]></description>
			<content:encoded><![CDATA[Although I made a very minor attempt at making <a href="http://statlight.net" target="_blank">StatLight</a> a “for-sale” product, I knew when I started that open-source was most likely going to be my long term path for <a href="http://statlight.net" target="_blank">StatLight</a>.
<h5>What is it? (Silverlight Testing Automation Tool)</h5>
StatLight is a tool developed for automating the setup, running, and gathering results of Silverlight unit tests. StatLight helps to speed up the feedback cycles while practicing<a href="http://en.wikipedia.org/wiki/Test-driven_development"> TDD</a>/<a href="http://en.wikipedia.org/wiki/Behavior_Driven_Development">BDD</a>/(insert your test style here) during Silverlight development.
<h5>Where can I get StatLight?</h5>
<a href="http://StatLight.CodePlex.com">http://StatLight.CodePlex.com</a>
<h4>Happy Coding !!!</h4>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/12/10/statlight-goes-open-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Removing U3 from Your Thumb Drives</title>
		<link>http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=removing-u3-from-your-thumb-drives</link>
		<comments>http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 18:31:17 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/</guid>
		<description><![CDATA[U3 is a technology used install boot software on thumb drives. Companies use this to ensure that some little application will get loaded or something when you plug their thumb drive into your Windows machine. This can be a favorite move of vendors who give away thumb drives at conferences as swag. They want to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/U3" target="_blank">U3</a> is a technology used install boot software on thumb drives. Companies use this to ensure that some little application will get loaded or something when you plug their thumb drive into your Windows machine.</p>  <p>This can be a favorite move of vendors who give away thumb drives at conferences as swag. They want to launch their little demo app or whatever when you plug in the drive.</p>  <p>It can be very annoying.</p>  <p>I am trying to create a Win7 install thumb drive for my wife’s netbook and I have a great 4G thumb drive to hold the media. Unfortunately, my thumb drive had this U3 stuff on it and won’t work as a boot disc as long as that pesky software is on it.</p>  <p>The simple answer is this little utility: <a href="http://u3uninstall.s3.amazonaws.com/U3Uninstall.exe">U3Uninstall.exe</a>. After running this utility on the thumb drive I have a plain ole storage drive I can use as a Win7 bootable install disc.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Team Build without Tests Lists</title>
		<link>http://elegantcode.com/2009/10/02/team-build-without-tests-lists/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=team-build-without-tests-lists</link>
		<comments>http://elegantcode.com/2009/10/02/team-build-without-tests-lists/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 19:40:04 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[MSDN]]></category>
		<category><![CDATA[Team System]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/10/02/team-build-without-tests-lists/</guid>
		<description><![CDATA[Test lists drive me nuts. I recently recorded a screen cast showing how to pull of CI without the test lists. Here ya go! Here’s a link to the screen cast.]]></description>
			<content:encoded><![CDATA[Test lists drive me nuts. I recently recorded a screen cast showing how to pull of CI without the test lists. Here ya go!

<a href="http://www.pluralsight.com/main/screencasts/screencast.aspx?id=vsts08-continuous-integration" target="_blank">Here’s a link to the screen cast</a>.]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/10/02/team-build-without-tests-lists/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Healthy Team Habits with Team System</title>
		<link>http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=healthy-team-habits-with-team-system</link>
		<comments>http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 19:36:21 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Team System]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/</guid>
		<description><![CDATA[I wrote an article recently for the Pluralsight newsletter discussing how to use a tool like Team System to drive positive organizational change. Here’s a pointer to the article.]]></description>
			<content:encoded><![CDATA[<p>I wrote an article recently for the Pluralsight newsletter discussing how to use a tool like Team System to drive positive organizational change. </p>  <p><a href="http://bit.ly/3CAC8Z" target="_blank">Here’s a pointer to the article</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code Cast 30 &#8211; Story Teller with Jeremy Miller</title>
		<link>http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=code-cast-30-story-teller-with-jeremy-miller</link>
		<comments>http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 17:38:16 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[ALT.NET]]></category>
		<category><![CDATA[CodeCast]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/</guid>
		<description><![CDATA[The venerable Jeremy Miller joined us to talk about YAIJMOSP (Yet Another Impressive Jeremy Miller Open Source Project). This week’s Jeremy project is Story Teller. Jeremy’s other contributions to the community include StructureMap and an obtuse fascination with separation patterns for user interfaces. Story Teller is an alternative for Fitnesse, implemented in .NET and chases [...]]]></description>
			<content:encoded><![CDATA[<p>The venerable Jeremy Miller joined us to talk about YAIJMOSP (Yet Another Impressive Jeremy Miller Open Source Project). This week’s Jeremy project is Story Teller.</p>  <p>Jeremy’s other contributions to the community include <a href="http://codebetter.com/blogs/products/pages/131734.aspx">StructureMap</a> and an <a href="http://www.virtualaltnet.com/Recordings">obtuse fascination with separation patterns</a> for user interfaces.</p>  <p>Story Teller is an alternative for Fitnesse, implemented in .NET and chases the holy grail of executable requirements. If you are interested in how to achieve the promise of shared and executable requirements, this just might be your tool.</p>  <ul>   <li><a href="http://storyteller.tigris.org/">Story Teller</a> </li>    <li><a href="http://codebetter.com/blogs/jeremy.miller/archive/2009/08/24/how-about-a-storyteller-preview-release.aspx">Jeremy’s StoryTeller post on a preview release</a> </li> </ul>  <p><a href="http://pluralsight-free.s3.amazonaws.com/david-starr/ecc/ECC_30_StoryTeller.mp3">Get the show here</a></p>  <p><a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=271207118"><img border="0" alt="View in iTunes" src="http://elegantcode.com/cast/files/images/itunes_button.gif" /></a> <a href="http://feeds2.feedburner.com/elegantcodecast"><img border="0" alt="Any Podcatcher" src="http://elegantcode.com/cast/files/images/rss_podcast.jpg" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
<enclosure url="http://pluralsight-free.s3.amazonaws.com/david-starr/ecc/ECC_30_StoryTeller.mp3" length="36208890" type="audio/mpeg" />
		</item>
		<item>
		<title>Visual Studio Team System for Small Teams</title>
		<link>http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=visual-studio-team-system-for-small-teams</link>
		<comments>http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 23:27:41 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[ALM]]></category>
		<category><![CDATA[Craftsmanship]]></category>
		<category><![CDATA[Source Control]]></category>
		<category><![CDATA[Team System]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/</guid>
		<description><![CDATA[There was a recent brouhaha on Twitter and in some blogs about the appropriateness of Team System in small teams. The gist of the discussion was simply that there are a lot of alternatives to TFS and VSTS tooling and many of them come cheaper out of the box. In many cases, free! Duh. I [...]]]></description>
			<content:encoded><![CDATA[<p>There was a recent brouhaha on Twitter and in some blogs about the appropriateness of Team System in small teams. The gist of the discussion was simply that there are a lot of alternatives to TFS and VSTS tooling and many of them come cheaper out of the box. In many cases, free!</p>  <p>Duh.</p>  <p>I have worked with Team System quite a bit and with alternatives just as much. With a lot of experience behind me on this, I feel confident I can make a legitimate case for using Team System in a small team.</p>  <p>I consider a small team a development organization of fewer than 10 people.</p>  <h3>Some Context and Disclosure</h3>  <ul>   <li>I am a Team System MVP </li>    <li>I use Team System on a daily basis </li>    <li>I use SVN+Team City on a daily basis </li>    <li>I care more about pragmatism and craftsmanship than tooling, and that means focusing on how to use tools, not just the tools themselves </li>    <li>I have been present on day one of a brand new team </li>    <li>I have been in a team that has grown quickly over a short time </li> </ul>  <h3>Focus on the Work</h3>  <p>What happens when teams squabble about tools instead of just getting on with it? Lots of churn and wasted energy, is my experience. </p>  <p>I can report having seen small teams succeed and fail. The success or failure in both cases obviously has a lot more to do with leadership and business than developer tools, but I can also say the way companies approach developer tooling can have a lot to do with culture.</p>  <p>Any startup or small team simply <em>must</em> be focused to succeed. This can also be extremely difficult to achieve. A small team simply doesn’t have the capacity or depth to be distracted with issues not pertaining to delivering product. Paradoxically, team members are often wearing several hats. That is, everyone is doing a little of everything. That can quickly trend to entropy, because no one ends focusing on the work at hand.</p>  <p>The last thing I want to do on day 1 of a new team, or very often in a small teams, is visit tooling. Not deliberately making choices about tooling, though, will eventually bite you. Hard. How many of us are in organizations with over 2 brands of source control systems because new ones were added in an ad-hoc manor? I’ve been there. How many unit test frameworks are being used? I have been on a team that used 4 at once. Think that caused some problems?</p>  <p>As team lead, I care far less about optimizations of specific tools, and far more about a cohesive and fluid process enabling flow within the team. I care a great deal that there is a single source of truth for requirements and very little that we are using the coolest new unit test framework.</p>  <p>Often, focusing on work simply means implementing a system of tools and getting past the discussion. Have you ever heard developers purse fight over text editors? Now, there’s a constructive use of energy. The same thing can happen when geeks whip out their favorite source control, merge tools, unit testing frameworks, Visual Studio add-ins, logging library, laptop brand, or bug tracking system. </p>  <p>Point number one is let’s get past the time suck of the my-NAnt-is-better-than-your-MS-Build and just prescribe a toolset so we can get on with the real business of our team. </p>  <h3>Team System is Like a Box of Tools at Sears</h3>  <p>When I go to Sears and browse the Craftsman (or DeWalt) tools, I usually see some interesting little specialty tools. I might buy a funky swivel socket or a single ratchet, but I rarely browse the aisle with the large all-in-one kits. The reason I don’t browse the kit aisle is because my father-in-law bought be a basic Craftsman starter kit almost 20 years ago and my collection of tools has grown over time. </p>  <p>I don’t still have all of the tools in that original kit, but I do still have many of them. Further, my need for hand tools have gotten more specialized over time. Also, I am making a bit more money than I was when I married my wife, so I may spend extra for a special-purpose hammer rather than always relying on the one that came in the original kit.</p>  <p>Without that original kit, though, I would never have been able to even get started. No, it didn’t have every tool I would ever need, but it had almost everything I needed right then.</p>  <p>Team System is much the same. A team can absolutely hit the ground running with the rich toolset VSTS provides. Maybe you’ll augment the toolbox over time. Maybe you’ll even change tools (can anyone say [TestClass]?) but the kit that comes in the box really can provide most of what a small team needs to get going, and do it in a single solution.</p>  <p>That’s huge. </p>  <p>As soon as I start looking around to sub-optimize my hammer or my source control, I am going to start slowing the team down. GIT? SVN? PerForce? There are a ton of options for source control, each with their strengths and weaknesses. It’s freaking source control. Get on with it. I mean, how sexy can a hammer be?</p>  <h3>It May Not Cost What You Think</h3>  <p>You can buy a big toolkit at Sears for far less than it costs to buy all the tools individually. Further, buying the toolkit for the person without tools is a good move because they will have all the basics covered in a single purchase. </p>  <p>Craftsman Toolkits are a favorite gift of mine for graduates and newlyweds for this very reason.</p>  <p>Microsoft has the same insight that Sears had. If a person gets accustomed to Craftsman by selling the kit cheaply, they’ll be a customer for life. This is the exact idea behind the BizSpark program. If you aren’t familiar with it, BizSpark is a Microsoft program that allows free (that’s right, free!) access to all developer tools, operating systems, and other software for startups.</p>  <p>Is your company less than 2 years old? Do you make software? If yes, you qualify, I kid you not.</p>  <h3>Integration Matters</h3>  <p>Even if you are paying full price (which you shouldn’t :) ) I believe the value of VSTS is still there. The productivity loss involved in setting up a system of disparate and non-integrated developer tools is tremendous. I have been there and done that.</p>  <p>I know SVN is good. I know Team City is good. I also know that setting up a basic Continuous Integration build in Team System is stupid simple. And the real money shot comes with Work Item management. How many teams out there are using work item management systems or defect tracking systems they hate?</p>  <p>Well, we all are. </p>  <p>So, we may as well have one that works right in the IDE and allows me to tie check ins to work I am performing. The context switching that occurs in non-integrated systems of reporting, SCC, build, and work item management is HUGE. Huge! No really. </p>  <h3>Get On With It</h3>  <p>The people involved in the recent online Team System kerfuffle are folks I would consider in the top 1% of developer talent. Quite frankly, it makes a lot of sense to me that people at that level will have replaced their hammer from the kit with one that has an ergonomic grip.</p>  <p>That said, there are a lot of startups and small teams in entropy out there. For those folks, I firmly believe that standardizing on an integrated toolset for the development team is a bigger savings than “free like a puppy” solutions that can work well, but with more churn.</p>  <p>Now quit fussing about source control and learn how to use a decent ORM, people.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Implementing Team City for .NET Projects, Part 5: Deployments</title>
		<link>http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=unitymoq-automocker-or-automockingcontainer</link>
		<comments>http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 16:52:33 +0000</pubDate>
		<dc:creator>Jason Jarrett</dc:creator>
				<category><![CDATA[TDD]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/</guid>
		<description><![CDATA[What is an Auto Mocking Container? This post started to get a little long, so I won’t re-explain the concept. Joshua Flanagan wrote a nice overview at his Los Techies blog: Auto mocking Explained. My post is mainly here to describe the Unity version of an automocking container I threw together. In Jan 2009 I [...]]]></description>
			<content:encoded><![CDATA[<h4>What is an Auto Mocking Container?</h4>  <p>This post started to get a little long, so I won’t re-explain the concept.</p>  <p><a href="http://www.lostechies.com/blogs/joshuaflanagan/default.aspx">Joshua Flanagan</a> wrote a nice overview at his <a href="http://www.lostechies.com/">Los Techies</a> blog: <a href="http://www.lostechies.com/blogs/joshuaflanagan/archive/2009/02/03/auto-mocking-explained.aspx"><strong>Auto mocking Explained</strong></a>.</p>  <p>My post is mainly here to describe the Unity version of an automocking container I threw together.</p>  <h4>In Jan 2009 I blogged about my initial version of the Unity AutoMocker - Why am I blogging about it again?</h4>  <p>I originally wrote the AutoMocker for the Unity container a year ago (Jan 2009, in Silverlight), and finally got around to placing the code up in the <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a> project in June of 2009.</p>  <p>I’m writing another post today in hopes to:</p>  <ol>   <li>Get some feedback on how this little snippet of code should continue. </li>    <li>Give a little more how-to/example code </li>    <li>Describe some updates I made since I originally created it.&#160; </li> </ol>  <h4>Where can I get it?</h4>  <p><strong>This is one part where I’d appreciate some feedback.</strong></p>  <p>I have two slightly different versions out there (currently).</p>  <p>I have one version at the <a href="http://code.google.com/p/elegantcode/source/browse/#svn/trunk/Coders/JasonJarrett/UnityAutoMocker">ElegantCode</a> repository where I was working on it, and the other I threw up at <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a>.</p>  <p>The core of the UnityAutoMockContainer is the same in both places, it’s how the tests are separated out that differ.</p>  <p>In the <a href="http://code.google.com/p/elegantcode/source/browse/#svn/trunk/Coders/JasonJarrett/UnityAutoMocker">ElegantCode repository</a> it’s an all in one self contained single file (that you can copy into your own test project(s)). You can then setup a single test in your own testing framework that runs all internal automocker tests (in case you need to modify it yourself, and don’t want to break any existing functionality). EX: test</p>  <pre class="brush: csharp;">[Test]
public void Should_run_all_UnityAutoMockContainer_internal_tests()
{
    Moq.AutoMocking.SelfTesting.UnityAutoMockContainerFixture
        .RunAllTests(Console.WriteLine);
}</pre>

<p>I kind of like this format as it makes it easy to port between test libraries. Can’t say I like having the tests in the same file as the core, but it certainly is not a large chunk of code (so far) so it’s relatively small to maintain and definitely easier to manage as a single .cs file than another assembly (which would have to be version dependent on both Unity and Moq).</p>

<p>The <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a> is definitely where I think this helper should end up (and it is there). I just happened to break the tests out into the Silverlight test project and the core is alone in a file. </p>

<p>It’s current state isn’t as easy to copy to a test library (Silverlight/Desktop/Unity 1.2/Unity 2.0) as the one at <a href="http://elegantcode.com/">ElegantCode</a>. <strong>What does anyone think?</strong> Should I put them all together in one file?</p>

<p>However it ends up (1. all in one file or two (1 test) (1 core)) it will continue to be maintained on the <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a> project.</p>

<h4>What is the high level API of the container?</h4>

<p>It’s pretty simple, (currently) there are four methods on the container.</p>

<p><strong>Two for registering items with the container</strong>. Say you want to register an already created instance, or say you want to map an interface to a concrete class and _not_ have the container generate mocks automatically for special cases. </p>

<p>And <strong>two for pulling items out of the container</strong>. Whether you want a instance of T or a Mock&lt;T&gt;, it gives you ways to retrieve both.</p>

<blockquote>
  <p><a href="http://elegantcode.com/wp-content/uploads/2010/01/image.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://elegantcode.com/wp-content/uploads/2010/01/image_thumb.png" width="396" height="106" /></a> </p>
</blockquote>

<h4>How can I setup my own registrations with the container? </h4>

<p>Say I don’t want to have the container generate mocks for specific items and I want to supply specific configuration to the UnityContainer.</p>

<blockquote>
  <p>public UnityAutoMockContainer RegisterInstance&lt;TService&gt;(TService instance)</p>

  <p>public UnityAutoMockContainer Register&lt;TService, TImplementation&gt;() 
    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; where TImplementation : TService</p>
</blockquote>

<p><strong>Note</strong>: both of these registration methods return the container itself so you can fluently stack registration. <strong>EX:</strong></p>

<pre class="brush: csharp;">AutoMockContainer
    .Register&lt;IServiceA, ServiceA&gt;()
    .Register&lt;IServiceB, ServiceB&gt;();</pre>

<p><strong>Let me know</strong>: I haven’t tested or played around with how this automocking container deals with any container specific xml configuration… So although I don’t think you should probably have that in a test assembly (stuff happens). Let me know if there are any issues.</p>

<h4>How do I get items out of the container?</h4>

<p>First is the Resolve&lt;T&gt;(). It will pull an item T out of the container. (Creating it if not already existing)</p>

<blockquote>
  <p>public T Resolve&lt;T&gt;()</p>
</blockquote>

<p>When T is an interface Resolve&lt;T&gt; (unless you setup registration specifically with the container) should return basically “(new Mock&lt;T&gt;()).Object”</p>

<p>When T is a concrete Class, the container should return an instance of T and any of it’s dependencies will be satisfied by mocks. (Note that T will not be any sort of mocked instance of T, unless you used the GetMock&lt;T&gt; as described below first)</p>

<blockquote>
  <p>public Mock&lt;T&gt; GetMock&lt;T&gt;() where T : class</p>
</blockquote>

<p>When T is an interface GetMock&lt;T&gt; should return basically “(new Mock&lt;T&gt;())” </p>

<p>When T is a concrete Class, the container should return a new Mock&lt;T&gt;() and any of it’s dependencies will be satisfied by mocks.</p>

<h4>How do I use the UnityAutoMockContainer?</h4>

<p>It’s pretty basic, you first create an instance of the UnityAutoMockContainer, and from there you can ask it for mocks of an (Interface, Class, or Abstract Class).</p>

<p>If you request an instance of a concrete class, or abstract class, the UnityAutoMockContainer will stuff mocks in for any constructor dependencies of your concrete class (if it can). You can then request from the container those same dependencies one at a time and either apply mocking setups or verifications.</p>

<blockquote>
  <p><strong>NOTE:</strong> Anything the container creates will live as a singleton instance in the container. So any other requests from the container will always return the originally created instance. Therefore, each distinct scenario in a test suite should have their own instances of the container.</p>
</blockquote>

<p>Below his an example of how you can leverage the container in some tests. Given this base fixture class…</p>

<pre class="brush: csharp;">public class FixtureBase
{
    private readonly UnityAutoMockContainer _autoMockContainer = new UnityAutoMockContainer();

    protected UnityAutoMockContainer AutoMockContainer
    {
        get { return _autoMockContainer; }
    }

    [TestFixtureSetUp]
    public void SetupContext_ALL()
    {
        Before_all_tests();
        Because();
    }

    [TestFixtureTearDown]
    public void TearDownContext_ALL()
    {
        After_all_tests();
    }

    protected virtual void Before_all_tests()
    {
    }

    protected virtual void Because()
    {
    }

    protected virtual void After_all_tests()
    {
    }
}</pre>

<p>If I were given the following system to test.</p>

<pre class="brush: csharp;">public interface IServiceA { void RunA(); }
public interface IServiceB { void RunB(); }

public class TestComponent
{
    public TestComponent(IServiceA serviceA, IServiceB serviceB)
    {
        ServiceA = serviceA;
        ServiceB = serviceB;
    }

    public IServiceA ServiceA { get; private set; }
    public IServiceB ServiceB { get; private set; }

    public void RunAll()
    {
        if (!HowDidItGo())
            return;
        ServiceA.RunA();
        ServiceB.RunB();
    }

    public virtual bool HowDidItGo()
    {
        // some really nasty untestable code
        return true;
    }
}</pre>

<p>The below example demonstrates simply verifying some behavior on the mocked dependencies of the system under test.</p>

<pre class="brush: csharp;">[TestFixture]
public class Example__how_to_pull_items_from_the_UnityAutoMockContainer_when_verifying_behavior_after_an_action_was_taken 
    : FixtureBase
{
    private TestComponent _testComponent;

    protected override void Before_all_tests()
    {
        base.Before_all_tests();
        _testComponent = AutoMockContainer.Resolve&lt;TestComponent&gt;();
    }

    protected override void Because()
    {
        _testComponent.RunAll();
    }

    [Test]
    public void Should_run_ServiceA_RunA()
    {
        AutoMockContainer
            .GetMock&lt;IServiceA&gt;()
            .Verify(v =&gt; v.RunA(), Times.Once());
    }

    [Test]
    public void Should_run_ServiceB_RunB()
    {
        AutoMockContainer
            .GetMock&lt;IServiceB&gt;()
            .Verify(v =&gt; v.RunB(), Times.Once());
    }
}</pre>

<p>Next, you may have noticed that the system under test had a complicated internal method (that may not necessarily be testable). You can use the AutoMocker to create the system under test as a Mock itself, so we can override some of the behavior. Here’s how you could quickly do that. </p>

<blockquote>
  <p><strong>Aside</strong>: I’m not saying this is a good practice or aids in good component design, just saying it’s possible</p>
</blockquote>

<pre class="brush: csharp;">[TestFixture]
public class Example__how_to_use_the_UnityAutoMockContainer_to_override_a_method_on_the_SystemUnderTest_to_test_a_certain_behavior
    : FixtureBase
{

    private TestComponent _testComponent;

    protected override void Before_all_tests()
    {
        base.Before_all_tests();
        var mockTestComponent = AutoMockContainer.GetMock&lt;TestComponent&gt;();

        mockTestComponent
            .Setup(s =&gt; s.HowDidItGo())
            .Returns(false);

        _testComponent = mockTestComponent.Object;
    }

    protected override void Because()
    {
        _testComponent.RunAll();
    }

    [Test]
    public void Should_run_ServiceA_RunA()
    {
        AutoMockContainer
            .GetMock&lt;IServiceA&gt;()
            .Verify(v =&gt; v.RunA(), Times.Never());
    }

    [Test]
    public void Should_run_ServiceB_RunB()
    {
        AutoMockContainer
            .GetMock&lt;IServiceB&gt;()
            .Verify(v =&gt; v.RunB(), Times.Never());
    }
}</pre>

<p>&#160;</p>

<p>It’s amazing how much redundant test setup code this little helper has saved me in my tests. I hope others can find some use with this as well.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Elegant Code &#187; Tools and Utilities</title>
	<atom:link href="http://elegantcode.com/category/tools-and-utilities/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com</link>
	<description></description>
	<lastBuildDate>Tue, 15 May 2012 10:00:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Buy Clonidine Without Prescription</title>
		<link>http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=moving-from-e-texteditor-to-sublime-text-2</link>
		<comments>http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/#comments</comments>
		<pubDate>Fri, 05 Aug 2011 23:45:32 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[CoffeeScript]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/</guid>
		<description><![CDATA[I’ve been using E-TextEditor Buy Clonidine Without Prescription, for more than a year now for doing all my JavaScript, Node.js and CoffeeScript development. Clonidine from mexico, You can think of E-TextEditor as TextMate for the Windows platform. I’ve been pretty happy with it throughout this period as it can be extended pretty easily with a [...]]]></description>
			<content:encoded><![CDATA[<p> <p align="justify">I’ve been using <a href="http://www.e-texteditor.com/" target="_blank">E-TextEditor</a> <b>Buy Clonidine Without Prescription</b>, for more than a year now for doing all my JavaScript, Node.js and CoffeeScript development.  <b>Clonidine from mexico</b>, You can think of E-TextEditor as <a href="http://macromates.com/" target="_blank">TextMate</a> for the Windows platform. I’ve been pretty happy with it throughout this period as it can be extended pretty easily with a whole slew of bundles that are already available for TextMate, <b>cheap Clonidine</b>.  <b>Clonidine recreational</b>, E-TextEditor requires you to install <a href="http://www.cygwin.com/" target="_blank">Cygwin</a> which happens automatically during installation. Using the Cygwin command-line gave me enough (re-)exposure to a Linux-like environment in order for me wanting to (re-)learn about this other platform, <b>purchase Clonidine for sale</b>. More on that in later blog posts, <b>Buy Clonidine Without Prescription</b>.  <b>Low dose Clonidine</b>, Although there haven’t been any new versions of E-TextEditor for quite some time now, the current version enabled me to write JavaScript code in a productive way.</p>  <p align="justify">Only recently I found out about another editor called <a href="http://www.sublimetext.com/2" target="_blank">Sublime Text 2</a> (thanks to <a href="http://twitter.com/#!/casualjim" target="_blank">Ivan Porto Carrero</a>), <b>Clonidine description</b>.  <b>Clonidine overnight</b>, I downloaded this text editor in order to give it a try and I must say that I haven’t opened E-TextEditor ever since. This second version of Sublime Text is still in development but it’s pretty stable as I haven’t run into any issues so far, <b>Clonidine no prescription</b>.  <b>Clonidine brand name</b>, The cool part is that this editor is available for both Windows, Linux and OS X which enabled me to move all my Node.js and CoffeeScript development from Cygwin on Windows to Ubuntu Linux.&#160; </p>  <p align="justify">CoffeeScript isn’t supported out-of-the-box (yet), <b>purchase Clonidine</b>, <b>Clonidine gel, ointment, cream, pill, spray, continuous-release, extended-release</b>, so I installed the <a href="https://github.com/jashkenas/coffee-script-tmbundle" target="_blank">CoffeeScript&#160; TextMate bundle</a> written by <a href="http://ashkenas.com/" target="_blank">Jeremy Ashkenas</a> (yes, the same one from the <a href="http://jashkenas.github.com/coffee-script/" target="_blank">CoffeeScript</a> and <a href="http://documentcloud.github.com/backbone/" target="_blank">Backbone.js</a> fame), <b>Clonidine long term</b>.  Also check out <a href="https://github.com/jashkenas/coffee-script/wiki/Text-editor-plugins" target="_blank">this page on the CoffeeScript wiki</a> for more information on how to bring some CoffeeScript happiness to your own favorite text editor.</p>  <p align="justify"> <b>Buy Clonidine Without Prescription</b>, Setting up this TextMate bundle for use with Sublime Text 2 was actually pretty easy.  <b>Clonidine canada, mexico, india</b>, Just navigate to <em>/home/&lt;my_user_name&gt;/.config/sublime-text-2/Packages</em> in a terminal (or the corresponding file path on Windows) and clone the source of the CoffeeScript TextMate bundle using git: </p>  <blockquote>   <p align="justify"><em>git clone git://github.com/jashkenas/coffee-script-tmbundle CoffeeScript</em></p> </blockquote>  <p align="justify">Next close all the .coffee files and restart Sublime Text 2. Now we have some nice syntax highlighting and some useful code snippets at our disposal.&#160; </p>  <p align="justify"><a href="http://elegantcode.com/wp-content/uploads/2011/08/image.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://elegantcode.com/wp-content/uploads/2011/08/image_thumb.png" width="600" height="396" /></a></p>  <p>It's also possible to hook into <a href="http://sublimetext.info/docs/en/reference/build_systems.html" target="_blank">the build system</a> of Sublime Text 2, <b>Clonidine australia, uk, us, usa</b>.  <b>Clonidine blogs</b>, You just need to create a new file named <em>CoffeeScript.sublime-build</em> at the following location: </p>  <blockquote>   <p><em>/home/&lt;my_user_name&gt;/.config/sublime-text-2/Packages/User&#160; </em></p> </blockquote>  <p align="justify">You can add the following to this new file for compiling CoffeeScript</p>  <pre style="width: 100%; height: 85px" class="csharpcode">{     <span class="str">&quot;cmd&quot;</span>: [<span class="str">&quot;coffee&quot;</span>, <span class="str">&quot;-c&quot;</span>, <b>Clonidine from canada</b>, <b>Is Clonidine addictive</b>, <span class="str">&quot;$file&quot;</span>],     <span class="str">&quot;selector&quot;</span> : <span class="str">&quot;source.coffee&quot;</span>, <b>Clonidine pharmacy</b>, <b>Ordering Clonidine online</b>, <span class="str">&quot;path&quot;</span> : <span class="str">&quot;/usr/local/bin&quot;</span>}</pre><style type="text/css">.csharpcode, .csharpcode pre{	font-size: small;	color: black;	font-family: consolas, <b>Clonidine without prescription</b>, <b>Clonidine no rx</b>, "Courier New", courier, <b>buy no prescription Clonidine online</b>, <b>Clonidine street price</b>, monospace;	background-color: #ffffff;	/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt<br />
{	background-color: #f4f4f4;	width: 100%;	margin: 0em;}.csharpcode .lnum { color: #606060; }</style>or the following for executing/running CoffeeScript code.</p>
<p><pre style="width: 100%; height: 85px" class="csharpcode">{     <span class="str">&quot;cmd&quot;</span>: [<span class="str">&quot;coffee&quot;</span>, <b>Clonidine for sale</b>, <b>What is Clonidine</b>, <span class="str">&quot;$file&quot;</span>],     <span class="str">&quot;selector&quot;</span> : <span class="str">&quot;source.coffee&quot;</span>, <b>get Clonidine</b>, <b>Clonidine class</b>, <span class="str">&quot;path&quot;</span> : <span class="str">&quot;/usr/local/bin&quot;</span>}</pre></p>
<p><p align="justify">Now when you hit F7, this fresh build command is executed when a CoffeeScript source file is showing in the active tab, <b>cheap Clonidine no rx</b>.  It’s also possible to change the build short-key to your own taste through the <em>Preferences</em> menu, <b>Buy Clonidine Without Prescription</b>.  <b>Fast shipping Clonidine</b>, <style type="text/css">.csharpcode, .csharpcode pre{	font-size: small;	color: black;	font-family: consolas, <b>buy Clonidine from canada</b>, <b>Clonidine without a prescription</b>, "Courier New", courier, <b>purchase Clonidine online no prescription</b>, <b>Effects of Clonidine</b>, monospace;	background-color: #ffffff;	/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt<br />
{	background-color: #f4f4f4;	width: 100%;	margin: 0em;}.csharpcode .lnum { color: #606060; }</style></p></p>
<p><p align="justify">Unfortunately, there’s only one build command as I would love to create a separate command for compiling and running CoffeeScript code (or perhaps I missed this feature during the excitement <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://elegantcode.com/wp-content/uploads/2011/08/wlEmoticon-winkingsmile.png" />), <b>buy generic Clonidine</b>.  <b>Is Clonidine safe</b>, </p></p>
<p><p align="justify">Some more usage is definitely needed for me to learn more about this excellent text editor, but currently I’m pretty happy with it, <b>Clonidine trusted pharmacy reviews</b>.  <b>Taking Clonidine</b>, I also need to find out how well JavaScript is supported and perhaps see how far one can go when doing some C# development using Mono. I expect that there are a good number of productive features in there for me to discover.</p></p>
<p><p align="justify">I encourage you have a decent look at this excellent tool, <b>Clonidine dangers</b>.  <b>Order Clonidine from mexican pharmacy</b>, </p></p>
<p><p align="justify">Until next time.</p>.  Herbal Clonidine.</p>
<p></p>
<p><b>Similar posts:</b> <a href='http://elegantcode.com/?p=4452'>Stromectol For Sale</a>. <a href='http://elegantcode.com/?p=4867'>Buy Soma Without Prescription</a>. <a href='http://elegantcode.com/?p=4758'>Buy Atenolol Without Prescription</a>. <a href='http://elegantcode.com/?p=4553'>Buy Female Pink Viagra Without Prescription</a>. <a href='http://elegantcode.com/?p=4560'>Vermox For Sale</a>. <a href='http://elegantcode.com/?p=4662'>Where can i buy cheapest Antabuse online</a>. <a href='http://elegantcode.com/?p=4508'>Slimex (Obetrim) photos</a>. <a href='http://elegantcode.com/?p=4623'>Augmentin description</a>. <a href='http://elegantcode.com/?p=4752'>Buy Colchicine no prescription</a>. <a href='http://elegantcode.com/?p=4322'>Clonidine natural</a>.<br />
<b>Trackbacks from:</b> <a href='http://evanrapoport.com/?p=429'>Buy Clonidine Without Prescription</a>. <a href='http://www.themusclecarplace.com/?p=5350'>Buy Clonidine Without Prescription</a>. <a href='http://changecamp.ca/?p=578'>Buy Clonidine Without Prescription</a>. <a href='http://blog.farmland.org/?p=3172'>Buy Clonidine Without Prescription</a>. <a href='http://home.officesnapshots.com/?p=175'>Buy Clonidine Without Prescription</a>. <a href='http://www.thegriffonnews.com/?p=9699'>Kjøpe Clonidine på nett, köpa Clonidine online</a>. <a href='http://www.quarterlives.com/?p=831'>Buy cheap Clonidine no rx</a>. <a href='http://www.greatgreengoods.com/?p=3511'>Clonidine use</a>. <a href='http://www.macneilbmx.com/blog/?p=5325'>Clonidine no rx</a>. <a href='http://social-blend.com/?p=482'>Online buying Clonidine hcl</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>AutoTest.NET</title>
		<link>http://elegantcode.com/2010/11/30/autotest-net/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=autotest-net</link>
		<comments>http://elegantcode.com/2010/11/30/autotest-net/#comments</comments>
		<pubDate>Tue, 30 Nov 2010 11:00:00 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[TDD]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/11/30/autotest-net/</guid>
		<description><![CDATA[I just want to quickly point out a tool that I’ve been playing with for a couple of days now, named AutoTest.NET. Its an open-source tool that originates from a popular tool in the Ruby community called ZenTest, which basically runs all your valuable unit tests when you save your source files or when you [...]]]></description>
			<content:encoded><![CDATA[<p>I just want to quickly point out a tool that I’ve been playing with for a couple of days now, named <a href="https://github.com/acken/AutoTest.Net" target="_blank">AutoTest.NET</a>. Its an open-source tool that originates from a popular tool in the Ruby community called <a href="http://www.zenspider.com/ZSS/Products/ZenTest/" target="_blank">ZenTest</a>, which basically runs all your valuable unit tests when you save your source files or when you build your code. It enables you to get feedback about your changes as soon as possible.</p>  <p>The project started out a couple of years ago on <a href="http://code.google.com/p/autotestnet/" target="_blank">Google code</a> and was first initiated by <a href="http://averyblog.com/" target="_blank">James Avery</a>. Contribution stopped at some point until recently where <a href="http://ackenpacken.blogspot.com/" target="_blank">Svein Arne Ackenhausen</a> forked the source code and <a href="https://github.com/acken/AutoTest.Net" target="_blank">put it on GitHub</a>. Now it runs both for .NET as well as Mono, with NUnit, MSTest and xUnit as the currently supported unit test frameworks. </p>  <p>Here’s a screenshot from the feedback window when all tests pass:</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2010/11/Success.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Success" border="0" alt="Success" src="http://elegantcode.com/wp-content/uploads/2010/11/Success_thumb.png" width="540" height="189" /></a> </p>  <p>And here you can see the same window after I broke one of my unit tests:</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2010/11/Failure.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Failure" border="0" alt="Failure" src="http://elegantcode.com/wp-content/uploads/2010/11/Failure_thumb.png" width="538" height="319" /></a> </p>  <p>Here you can see which particular unit test has been broken and by clicking the specified link you end up at the right source file in Visual Studio. </p>  <p>I encourage you to pick up this small tool and learn how it can facilitate your TDD flow. Take a look at <a href="https://github.com/acken/AutoTest.Net/wiki/Get-started!" target="_blank">this page</a> in order to get up-and-running in no time. Also don’t forget to provide the owner(s) of this project with some feedback that you might have. Svein has been very helpful over the last week answering all my stupid questions and remarks (and the Nobel price for this year’s most patient person goes to … ;-) ). </p>  <p>I would definitely like to see this tool becoming more popular, so go check it out.&#160;&#160; </p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/11/30/autotest-net/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Unity/Moq &#8211; AutoMocker or AutoMockingContainer</title>
		<link>http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=unitymoq-automocker-or-automockingcontainer</link>
		<comments>http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 16:52:33 +0000</pubDate>
		<dc:creator>Jason Jarrett</dc:creator>
				<category><![CDATA[TDD]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/</guid>
		<description><![CDATA[What is an Auto Mocking Container? This post started to get a little long, so I won’t re-explain the concept. Joshua Flanagan wrote a nice overview at his Los Techies blog: Auto mocking Explained. My post is mainly here to describe the Unity version of an automocking container I threw together. In Jan 2009 I [...]]]></description>
			<content:encoded><![CDATA[<h4>What is an Auto Mocking Container?</h4>  <p>This post started to get a little long, so I won’t re-explain the concept.</p>  <p><a href="http://www.lostechies.com/blogs/joshuaflanagan/default.aspx">Joshua Flanagan</a> wrote a nice overview at his <a href="http://www.lostechies.com/">Los Techies</a> blog: <a href="http://www.lostechies.com/blogs/joshuaflanagan/archive/2009/02/03/auto-mocking-explained.aspx"><strong>Auto mocking Explained</strong></a>.</p>  <p>My post is mainly here to describe the Unity version of an automocking container I threw together.</p>  <h4>In Jan 2009 I blogged about my initial version of the Unity AutoMocker - Why am I blogging about it again?</h4>  <p>I originally wrote the AutoMocker for the Unity container a year ago (Jan 2009, in Silverlight), and finally got around to placing the code up in the <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a> project in June of 2009.</p>  <p>I’m writing another post today in hopes to:</p>  <ol>   <li>Get some feedback on how this little snippet of code should continue. </li>    <li>Give a little more how-to/example code </li>    <li>Describe some updates I made since I originally created it.&#160; </li> </ol>  <h4>Where can I get it?</h4>  <p><strong>This is one part where I’d appreciate some feedback.</strong></p>  <p>I have two slightly different versions out there (currently).</p>  <p>I have one version at the <a href="http://code.google.com/p/elegantcode/source/browse/#svn/trunk/Coders/JasonJarrett/UnityAutoMocker">ElegantCode</a> repository where I was working on it, and the other I threw up at <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a>.</p>  <p>The core of the UnityAutoMockContainer is the same in both places, it’s how the tests are separated out that differ.</p>  <p>In the <a href="http://code.google.com/p/elegantcode/source/browse/#svn/trunk/Coders/JasonJarrett/UnityAutoMocker">ElegantCode repository</a> it’s an all in one self contained single file (that you can copy into your own test project(s)). You can then setup a single test in your own testing framework that runs all internal automocker tests (in case you need to modify it yourself, and don’t want to break any existing functionality). EX: test</p>  <pre class="brush: csharp;">[Test]
public void Should_run_all_UnityAutoMockContainer_internal_tests()
{
    Moq.AutoMocking.SelfTesting.UnityAutoMockContainerFixture
        .RunAllTests(Console.WriteLine);
}</pre>

<p>I kind of like this format as it makes it easy to port between test libraries. Can’t say I like having the tests in the same file as the core, but it certainly is not a large chunk of code (so far) so it’s relatively small to maintain and definitely easier to manage as a single .cs file than another assembly (which would have to be version dependent on both Unity and Moq).</p>

<p>The <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a> is definitely where I think this helper should end up (and it is there). I just happened to break the tests out into the Silverlight test project and the core is alone in a file. </p>

<p>It’s current state isn’t as easy to copy to a test library (Silverlight/Desktop/Unity 1.2/Unity 2.0) as the one at <a href="http://elegantcode.com/">ElegantCode</a>. <strong>What does anyone think?</strong> Should I put them all together in one file?</p>

<p>However it ends up (1. all in one file or two (1 test) (1 core)) it will continue to be maintained on the <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a> project.</p>

<h4>What is the high level API of the container?</h4>

<p>It’s pretty simple, (currently) there are four methods on the container.</p>

<p><strong>Two for registering items with the container</strong>. Say you want to register an already created instance, or say you want to map an interface to a concrete class and _not_ have the container generate mocks automatically for special cases. </p>

<p>And <strong>two for pulling items out of the container</strong>. Whether you want a instance of T or a Mock&lt;T&gt;, it gives you ways to retrieve both.</p>

<blockquote>
  <p><a href="http://elegantcode.com/wp-content/uploads/2010/01/image.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://elegantcode.com/wp-content/uploads/2010/01/image_thumb.png" width="396" height="106" /></a> </p>
</blockquote>

<h4>How can I setup my own registrations with the container? </h4>

<p>Say I don’t want to have the container generate mocks for specific items and I want to supply specific configuration to the UnityContainer.</p>

<blockquote>
  <p>public UnityAutoMockContainer RegisterInstance&lt;TService&gt;(TService instance)</p>

  <p>public UnityAutoMockContainer Register&lt;TService, TImplementation&gt;() 
    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; where TImplementation : TService</p>
</blockquote>

<p><strong>Note</strong>: both of these registration methods return the container itself so you can fluently stack registration. <strong>EX:</strong></p>

<pre class="brush: csharp;">AutoMockContainer
    .Register&lt;IServiceA, ServiceA&gt;()
    .Register&lt;IServiceB, ServiceB&gt;();</pre>

<p><strong>Let me know</strong>: I haven’t tested or played around with how this automocking container deals with any container specific xml configuration… So although I don’t think you should probably have that in a test assembly (stuff happens). Let me know if there are any issues.</p>

<h4>How do I get items out of the container?</h4>

<p>First is the Resolve&lt;T&gt;(). It will pull an item T out of the container. (Creating it if not already existing)</p>

<blockquote>
  <p>public T Resolve&lt;T&gt;()</p>
</blockquote>

<p>When T is an interface Resolve&lt;T&gt; (unless you setup registration specifically with the container) should return basically “(new Mock&lt;T&gt;()).Object”</p>

<p>When T is a concrete Class, the container should return an instance of T and any of it’s dependencies will be satisfied by mocks. (Note that T will not be any sort of mocked instance of T, unless you used the GetMock&lt;T&gt; as described below first)</p>

<blockquote>
  <p>public Mock&lt;T&gt; GetMock&lt;T&gt;() where T : class</p>
</blockquote>

<p>When T is an interface GetMock&lt;T&gt; should return basically “(new Mock&lt;T&gt;())” </p>

<p>When T is a concrete Class, the container should return a new Mock&lt;T&gt;() and any of it’s dependencies will be satisfied by mocks.</p>

<h4>How do I use the UnityAutoMockContainer?</h4>

<p>It’s pretty basic, you first create an instance of the UnityAutoMockContainer, and from there you can ask it for mocks of an (Interface, Class, or Abstract Class).</p>

<p>If you request an instance of a concrete class, or abstract class, the UnityAutoMockContainer will stuff mocks in for any constructor dependencies of your concrete class (if it can). You can then request from the container those same dependencies one at a time and either apply mocking setups or verifications.</p>

<blockquote>
  <p><strong>NOTE:</strong> Anything the container creates will live as a singleton instance in the container. So any other requests from the container will always return the originally created instance. Therefore, each distinct scenario in a test suite should have their own instances of the container.</p>
</blockquote>

<p>Below his an example of how you can leverage the container in some tests. Given this base fixture class…</p>

<pre class="brush: csharp;">public class FixtureBase
{
    private readonly UnityAutoMockContainer _autoMockContainer = new UnityAutoMockContainer();

    protected UnityAutoMockContainer AutoMockContainer
    {
        get { return _autoMockContainer; }
    }

    [TestFixtureSetUp]
    public void SetupContext_ALL()
    {
        Before_all_tests();
        Because();
    }

    [TestFixtureTearDown]
    public void TearDownContext_ALL()
    {
        After_all_tests();
    }

    protected virtual void Before_all_tests()
    {
    }

    protected virtual void Because()
    {
    }

    protected virtual void After_all_tests()
    {
    }
}</pre>

<p>If I were given the following system to test.</p>

<pre class="brush: csharp;">public interface IServiceA { void RunA(); }
public interface IServiceB { void RunB(); }

public class TestComponent
{
    public TestComponent(IServiceA serviceA, IServiceB serviceB)
    {
        ServiceA = serviceA;
        ServiceB = serviceB;
    }

    public IServiceA ServiceA { get; private set; }
    public IServiceB ServiceB { get; private set; }

    public void RunAll()
    {
        if (!HowDidItGo())
            return;
        ServiceA.RunA();
        ServiceB.RunB();
    }

    public virtual bool HowDidItGo()
    {
        // some really nasty untestable code
        return true;
    }
}</pre>

<p>The below example demonstrates simply verifying some behavior on the mocked dependencies of the system under test.</p>

<pre class="brush: csharp;">[TestFixture]
public class Example__how_to_pull_items_from_the_UnityAutoMockContainer_when_verifying_behavior_after_an_action_was_taken 
    : FixtureBase
{
    private TestComponent _testComponent;

    protected override void Before_all_tests()
    {
        base.Before_all_tests();
        _testComponent = AutoMockContainer.Resolve&lt;TestComponent&gt;();
    }

    protected override void Because()
    {
        _testComponent.RunAll();
    }

    [Test]
    public void Should_run_ServiceA_RunA()
    {
        AutoMockContainer
            .GetMock&lt;IServiceA&gt;()
            .Verify(v =&gt; v.RunA(), Times.Once());
    }

    [Test]
    public void Should_run_ServiceB_RunB()
    {
        AutoMockContainer
            .GetMock&lt;IServiceB&gt;()
            .Verify(v =&gt; v.RunB(), Times.Once());
    }
}</pre>

<p>Next, you may have noticed that the system under test had a complicated internal method (that may not necessarily be testable). You can use the AutoMocker to create the system under test as a Mock itself, so we can override some of the behavior. Here’s how you could quickly do that. </p>

<blockquote>
  <p><strong>Aside</strong>: I’m not saying this is a good practice or aids in good component design, just saying it’s possible</p>
</blockquote>

<pre class="brush: csharp;">[TestFixture]
public class Example__how_to_use_the_UnityAutoMockContainer_to_override_a_method_on_the_SystemUnderTest_to_test_a_certain_behavior
    : FixtureBase
{

    private TestComponent _testComponent;

    protected override void Before_all_tests()
    {
        base.Before_all_tests();
        var mockTestComponent = AutoMockContainer.GetMock&lt;TestComponent&gt;();

        mockTestComponent
            .Setup(s =&gt; s.HowDidItGo())
            .Returns(false);

        _testComponent = mockTestComponent.Object;
    }

    protected override void Because()
    {
        _testComponent.RunAll();
    }

    [Test]
    public void Should_run_ServiceA_RunA()
    {
        AutoMockContainer
            .GetMock&lt;IServiceA&gt;()
            .Verify(v =&gt; v.RunA(), Times.Never());
    }

    [Test]
    public void Should_run_ServiceB_RunB()
    {
        AutoMockContainer
            .GetMock&lt;IServiceB&gt;()
            .Verify(v =&gt; v.RunB(), Times.Never());
    }
}</pre>

<p>&#160;</p>

<p>It’s amazing how much redundant test setup code this little helper has saved me in my tests. I hope others can find some use with this as well.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>StatLight &#8211; Goes Open Source</title>
		<link>http://elegantcode.com/2009/12/10/statlight-goes-open-source/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=statlight-goes-open-source</link>
		<comments>http://elegantcode.com/2009/12/10/statlight-goes-open-source/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 03:26:55 +0000</pubDate>
		<dc:creator>Jason Jarrett</dc:creator>
				<category><![CDATA[Esoterica]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/12/10/statlight-goes-open-source/</guid>
		<description><![CDATA[Although I made a very minor attempt at making StatLight a “for-sale” product, I knew when I started that open-source was most likely going to be my long term path for StatLight. What is it? (Silverlight Testing Automation Tool) StatLight is a tool developed for automating the setup, running, and gathering results of Silverlight unit [...]]]></description>
			<content:encoded><![CDATA[Although I made a very minor attempt at making <a href="http://statlight.net" target="_blank">StatLight</a> a “for-sale” product, I knew when I started that open-source was most likely going to be my long term path for <a href="http://statlight.net" target="_blank">StatLight</a>.
<h5>What is it? (Silverlight Testing Automation Tool)</h5>
StatLight is a tool developed for automating the setup, running, and gathering results of Silverlight unit tests. StatLight helps to speed up the feedback cycles while practicing<a href="http://en.wikipedia.org/wiki/Test-driven_development"> TDD</a>/<a href="http://en.wikipedia.org/wiki/Behavior_Driven_Development">BDD</a>/(insert your test style here) during Silverlight development.
<h5>Where can I get StatLight?</h5>
<a href="http://StatLight.CodePlex.com">http://StatLight.CodePlex.com</a>
<h4>Happy Coding !!!</h4>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/12/10/statlight-goes-open-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Removing U3 from Your Thumb Drives</title>
		<link>http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=removing-u3-from-your-thumb-drives</link>
		<comments>http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 18:31:17 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/</guid>
		<description><![CDATA[U3 is a technology used install boot software on thumb drives. Companies use this to ensure that some little application will get loaded or something when you plug their thumb drive into your Windows machine. This can be a favorite move of vendors who give away thumb drives at conferences as swag. They want to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/U3" target="_blank">U3</a> is a technology used install boot software on thumb drives. Companies use this to ensure that some little application will get loaded or something when you plug their thumb drive into your Windows machine.</p>  <p>This can be a favorite move of vendors who give away thumb drives at conferences as swag. They want to launch their little demo app or whatever when you plug in the drive.</p>  <p>It can be very annoying.</p>  <p>I am trying to create a Win7 install thumb drive for my wife’s netbook and I have a great 4G thumb drive to hold the media. Unfortunately, my thumb drive had this U3 stuff on it and won’t work as a boot disc as long as that pesky software is on it.</p>  <p>The simple answer is this little utility: <a href="http://u3uninstall.s3.amazonaws.com/U3Uninstall.exe">U3Uninstall.exe</a>. After running this utility on the thumb drive I have a plain ole storage drive I can use as a Win7 bootable install disc.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Team Build without Tests Lists</title>
		<link>http://elegantcode.com/2009/10/02/team-build-without-tests-lists/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=team-build-without-tests-lists</link>
		<comments>http://elegantcode.com/2009/10/02/team-build-without-tests-lists/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 19:40:04 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[MSDN]]></category>
		<category><![CDATA[Team System]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/10/02/team-build-without-tests-lists/</guid>
		<description><![CDATA[Test lists drive me nuts. I recently recorded a screen cast showing how to pull of CI without the test lists. Here ya go! Here’s a link to the screen cast.]]></description>
			<content:encoded><![CDATA[Test lists drive me nuts. I recently recorded a screen cast showing how to pull of CI without the test lists. Here ya go!

<a href="http://www.pluralsight.com/main/screencasts/screencast.aspx?id=vsts08-continuous-integration" target="_blank">Here’s a link to the screen cast</a>.]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/10/02/team-build-without-tests-lists/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Healthy Team Habits with Team System</title>
		<link>http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=healthy-team-habits-with-team-system</link>
		<comments>http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 19:36:21 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Team System]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/</guid>
		<description><![CDATA[I wrote an article recently for the Pluralsight newsletter discussing how to use a tool like Team System to drive positive organizational change. Here’s a pointer to the article.]]></description>
			<content:encoded><![CDATA[<p>I wrote an article recently for the Pluralsight newsletter discussing how to use a tool like Team System to drive positive organizational change. </p>  <p><a href="http://bit.ly/3CAC8Z" target="_blank">Here’s a pointer to the article</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code Cast 30 &#8211; Story Teller with Jeremy Miller</title>
		<link>http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=code-cast-30-story-teller-with-jeremy-miller</link>
		<comments>http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 17:38:16 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[ALT.NET]]></category>
		<category><![CDATA[CodeCast]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/</guid>
		<description><![CDATA[The venerable Jeremy Miller joined us to talk about YAIJMOSP (Yet Another Impressive Jeremy Miller Open Source Project). This week’s Jeremy project is Story Teller. Jeremy’s other contributions to the community include StructureMap and an obtuse fascination with separation patterns for user interfaces. Story Teller is an alternative for Fitnesse, implemented in .NET and chases [...]]]></description>
			<content:encoded><![CDATA[<p>The venerable Jeremy Miller joined us to talk about YAIJMOSP (Yet Another Impressive Jeremy Miller Open Source Project). This week’s Jeremy project is Story Teller.</p>  <p>Jeremy’s other contributions to the community include <a href="http://codebetter.com/blogs/products/pages/131734.aspx">StructureMap</a> and an <a href="http://www.virtualaltnet.com/Recordings">obtuse fascination with separation patterns</a> for user interfaces.</p>  <p>Story Teller is an alternative for Fitnesse, implemented in .NET and chases the holy grail of executable requirements. If you are interested in how to achieve the promise of shared and executable requirements, this just might be your tool.</p>  <ul>   <li><a href="http://storyteller.tigris.org/">Story Teller</a> </li>    <li><a href="http://codebetter.com/blogs/jeremy.miller/archive/2009/08/24/how-about-a-storyteller-preview-release.aspx">Jeremy’s StoryTeller post on a preview release</a> </li> </ul>  <p><a href="http://pluralsight-free.s3.amazonaws.com/david-starr/ecc/ECC_30_StoryTeller.mp3">Get the show here</a></p>  <p><a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=271207118"><img border="0" alt="View in iTunes" src="http://elegantcode.com/cast/files/images/itunes_button.gif" /></a> <a href="http://feeds2.feedburner.com/elegantcodecast"><img border="0" alt="Any Podcatcher" src="http://elegantcode.com/cast/files/images/rss_podcast.jpg" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
<enclosure url="http://pluralsight-free.s3.amazonaws.com/david-starr/ecc/ECC_30_StoryTeller.mp3" length="36208890" type="audio/mpeg" />
		</item>
		<item>
		<title>Visual Studio Team System for Small Teams</title>
		<link>http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=visual-studio-team-system-for-small-teams</link>
		<comments>http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 23:27:41 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[ALM]]></category>
		<category><![CDATA[Craftsmanship]]></category>
		<category><![CDATA[Source Control]]></category>
		<category><![CDATA[Team System]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/</guid>
		<description><![CDATA[There was a recent brouhaha on Twitter and in some blogs about the appropriateness of Team System in small teams. The gist of the discussion was simply that there are a lot of alternatives to TFS and VSTS tooling and many of them come cheaper out of the box. In many cases, free! Duh. I [...]]]></description>
			<content:encoded><![CDATA[<p>There was a recent brouhaha on Twitter and in some blogs about the appropriateness of Team System in small teams. The gist of the discussion was simply that there are a lot of alternatives to TFS and VSTS tooling and many of them come cheaper out of the box. In many cases, free!</p>  <p>Duh.</p>  <p>I have worked with Team System quite a bit and with alternatives just as much. With a lot of experience behind me on this, I feel confident I can make a legitimate case for using Team System in a small team.</p>  <p>I consider a small team a development organization of fewer than 10 people.</p>  <h3>Some Context and Disclosure</h3>  <ul>   <li>I am a Team System MVP </li>    <li>I use Team System on a daily basis </li>    <li>I use SVN+Team City on a daily basis </li>    <li>I care more about pragmatism and craftsmanship than tooling, and that means focusing on how to use tools, not just the tools themselves </li>    <li>I have been present on day one of a brand new team </li>    <li>I have been in a team that has grown quickly over a short time </li> </ul>  <h3>Focus on the Work</h3>  <p>What happens when teams squabble about tools instead of just getting on with it? Lots of churn and wasted energy, is my experience. </p>  <p>I can report having seen small teams succeed and fail. The success or failure in both cases obviously has a lot more to do with leadership and business than developer tools, but I can also say the way companies approach developer tooling can have a lot to do with culture.</p>  <p>Any startup or small team simply <em>must</em> be focused to succeed. This can also be extremely difficult to achieve. A small team simply doesn’t have the capacity or depth to be distracted with issues not pertaining to delivering product. Paradoxically, team members are often wearing several hats. That is, everyone is doing a little of everything. That can quickly trend to entropy, because no one ends focusing on the work at hand.</p>  <p>The last thing I want to do on day 1 of a new team, or very often in a small teams, is visit tooling. Not deliberately making choices about tooling, though, will eventually bite you. Hard. How many of us are in organizations with over 2 brands of source control systems because new ones were added in an ad-hoc manor? I’ve been there. How many unit test frameworks are being used? I have been on a team that used 4 at once. Think that caused some problems?</p>  <p>As team lead, I care far less about optimizations of specific tools, and far more about a cohesive and fluid process enabling flow within the team. I care a great deal that there is a single source of truth for requirements and very little that we are using the coolest new unit test framework.</p>  <p>Often, focusing on work simply means implementing a system of tools and getting past the discussion. Have you ever heard developers purse fight over text editors? Now, there’s a constructive use of energy. The same thing can happen when geeks whip out their favorite source control, merge tools, unit testing frameworks, Visual Studio add-ins, logging library, laptop brand, or bug tracking system. </p>  <p>Point number one is let’s get past the time suck of the my-NAnt-is-better-than-your-MS-Build and just prescribe a toolset so we can get on with the real business of our team. </p>  <h3>Team System is Like a Box of Tools at Sears</h3>  <p>When I go to Sears and browse the Craftsman (or DeWalt) tools, I usually see some interesting little specialty tools. I might buy a funky swivel socket or a single ratchet, but I rarely browse the aisle with the large all-in-one kits. The reason I don’t browse the kit aisle is because my father-in-law bought be a basic Craftsman starter kit almost 20 years ago and my collection of tools has grown over time. </p>  <p>I don’t still have all of the tools in that original kit, but I do still have many of them. Further, my need for hand tools have gotten more specialized over time. Also, I am making a bit more money than I was when I married my wife, so I may spend extra for a special-purpose hammer rather than always relying on the one that came in the original kit.</p>  <p>Without that original kit, though, I would never have been able to even get started. No, it didn’t have every tool I would ever need, but it had almost everything I needed right then.</p>  <p>Team System is much the same. A team can absolutely hit the ground running with the rich toolset VSTS provides. Maybe you’ll augment the toolbox over time. Maybe you’ll even change tools (can anyone say [TestClass]?) but the kit that comes in the box really can provide most of what a small team needs to get going, and do it in a single solution.</p>  <p>That’s huge. </p>  <p>As soon as I start looking around to sub-optimize my hammer or my source control, I am going to start slowing the team down. GIT? SVN? PerForce? There are a ton of options for source control, each with their strengths and weaknesses. It’s freaking source control. Get on with it. I mean, how sexy can a hammer be?</p>  <h3>It May Not Cost What You Think</h3>  <p>You can buy a big toolkit at Sears for far less than it costs to buy all the tools individually. Further, buying the toolkit for the person without tools is a good move because they will have all the basics covered in a single purchase. </p>  <p>Craftsman Toolkits are a favorite gift of mine for graduates and newlyweds for this very reason.</p>  <p>Microsoft has the same insight that Sears had. If a person gets accustomed to Craftsman by selling the kit cheaply, they’ll be a customer for life. This is the exact idea behind the BizSpark program. If you aren’t familiar with it, BizSpark is a Microsoft program that allows free (that’s right, free!) access to all developer tools, operating systems, and other software for startups.</p>  <p>Is your company less than 2 years old? Do you make software? If yes, you qualify, I kid you not.</p>  <h3>Integration Matters</h3>  <p>Even if you are paying full price (which you shouldn’t :) ) I believe the value of VSTS is still there. The productivity loss involved in setting up a system of disparate and non-integrated developer tools is tremendous. I have been there and done that.</p>  <p>I know SVN is good. I know Team City is good. I also know that setting up a basic Continuous Integration build in Team System is stupid simple. And the real money shot comes with Work Item management. How many teams out there are using work item management systems or defect tracking systems they hate?</p>  <p>Well, we all are. </p>  <p>So, we may as well have one that works right in the IDE and allows me to tie check ins to work I am performing. The context switching that occurs in non-integrated systems of reporting, SCC, build, and work item management is HUGE. Huge! No really. </p>  <h3>Get On With It</h3>  <p>The people involved in the recent online Team System kerfuffle are folks I would consider in the top 1% of developer talent. Quite frankly, it makes a lot of sense to me that people at that level will have replaced their hammer from the kit with one that has an ergonomic grip.</p>  <p>That said, there are a lot of startups and small teams in entropy out there. For those folks, I firmly believe that standardizing on an integrated toolset for the development team is a bigger savings than “free like a puppy” solutions that can work well, but with more churn.</p>  <p>Now quit fussing about source control and learn how to use a decent ORM, people.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Implementing Team City for .NET Projects, Part 5: Deployments</title>
		<link>http://elegantcode.com/2009/12/10/statlight-goes-open-source/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=statlight-goes-open-source</link>
		<comments>http://elegantcode.com/2009/12/10/statlight-goes-open-source/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 03:26:55 +0000</pubDate>
		<dc:creator>Jason Jarrett</dc:creator>
				<category><![CDATA[Esoterica]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/12/10/statlight-goes-open-source/</guid>
		<description><![CDATA[Although I made a very minor attempt at making StatLight a “for-sale” product, I knew when I started that open-source was most likely going to be my long term path for StatLight. What is it? (Silverlight Testing Automation Tool) StatLight is a tool developed for automating the setup, running, and gathering results of Silverlight unit [...]]]></description>
			<content:encoded><![CDATA[Although I made a very minor attempt at making <a href="http://statlight.net" target="_blank">StatLight</a> a “for-sale” product, I knew when I started that open-source was most likely going to be my long term path for <a href="http://statlight.net" target="_blank">StatLight</a>.
<h5>What is it? (Silverlight Testing Automation Tool)</h5>
StatLight is a tool developed for automating the setup, running, and gathering results of Silverlight unit tests. StatLight helps to speed up the feedback cycles while practicing<a href="http://en.wikipedia.org/wiki/Test-driven_development"> TDD</a>/<a href="http://en.wikipedia.org/wiki/Behavior_Driven_Development">BDD</a>/(insert your test style here) during Silverlight development.
<h5>Where can I get StatLight?</h5>
<a href="http://StatLight.CodePlex.com">http://StatLight.CodePlex.com</a>
<h4>Happy Coding !!!</h4>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/12/10/statlight-goes-open-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Elegant Code &#187; Tools and Utilities</title>
	<atom:link href="http://elegantcode.com/category/tools-and-utilities/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com</link>
	<description></description>
	<lastBuildDate>Tue, 15 May 2012 10:00:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Buy Clonidine Without Prescription</title>
		<link>http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=moving-from-e-texteditor-to-sublime-text-2</link>
		<comments>http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/#comments</comments>
		<pubDate>Fri, 05 Aug 2011 23:45:32 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[CoffeeScript]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/</guid>
		<description><![CDATA[I’ve been using E-TextEditor Buy Clonidine Without Prescription, for more than a year now for doing all my JavaScript, Node.js and CoffeeScript development. Clonidine from mexico, You can think of E-TextEditor as TextMate for the Windows platform. I’ve been pretty happy with it throughout this period as it can be extended pretty easily with a [...]]]></description>
			<content:encoded><![CDATA[<p> <p align="justify">I’ve been using <a href="http://www.e-texteditor.com/" target="_blank">E-TextEditor</a> <b>Buy Clonidine Without Prescription</b>, for more than a year now for doing all my JavaScript, Node.js and CoffeeScript development.  <b>Clonidine from mexico</b>, You can think of E-TextEditor as <a href="http://macromates.com/" target="_blank">TextMate</a> for the Windows platform. I’ve been pretty happy with it throughout this period as it can be extended pretty easily with a whole slew of bundles that are already available for TextMate, <b>cheap Clonidine</b>.  <b>Clonidine recreational</b>, E-TextEditor requires you to install <a href="http://www.cygwin.com/" target="_blank">Cygwin</a> which happens automatically during installation. Using the Cygwin command-line gave me enough (re-)exposure to a Linux-like environment in order for me wanting to (re-)learn about this other platform, <b>purchase Clonidine for sale</b>. More on that in later blog posts, <b>Buy Clonidine Without Prescription</b>.  <b>Low dose Clonidine</b>, Although there haven’t been any new versions of E-TextEditor for quite some time now, the current version enabled me to write JavaScript code in a productive way.</p>  <p align="justify">Only recently I found out about another editor called <a href="http://www.sublimetext.com/2" target="_blank">Sublime Text 2</a> (thanks to <a href="http://twitter.com/#!/casualjim" target="_blank">Ivan Porto Carrero</a>), <b>Clonidine description</b>.  <b>Clonidine overnight</b>, I downloaded this text editor in order to give it a try and I must say that I haven’t opened E-TextEditor ever since. This second version of Sublime Text is still in development but it’s pretty stable as I haven’t run into any issues so far, <b>Clonidine no prescription</b>.  <b>Clonidine brand name</b>, The cool part is that this editor is available for both Windows, Linux and OS X which enabled me to move all my Node.js and CoffeeScript development from Cygwin on Windows to Ubuntu Linux.&#160; </p>  <p align="justify">CoffeeScript isn’t supported out-of-the-box (yet), <b>purchase Clonidine</b>, <b>Clonidine gel, ointment, cream, pill, spray, continuous-release, extended-release</b>, so I installed the <a href="https://github.com/jashkenas/coffee-script-tmbundle" target="_blank">CoffeeScript&#160; TextMate bundle</a> written by <a href="http://ashkenas.com/" target="_blank">Jeremy Ashkenas</a> (yes, the same one from the <a href="http://jashkenas.github.com/coffee-script/" target="_blank">CoffeeScript</a> and <a href="http://documentcloud.github.com/backbone/" target="_blank">Backbone.js</a> fame), <b>Clonidine long term</b>.  Also check out <a href="https://github.com/jashkenas/coffee-script/wiki/Text-editor-plugins" target="_blank">this page on the CoffeeScript wiki</a> for more information on how to bring some CoffeeScript happiness to your own favorite text editor.</p>  <p align="justify"> <b>Buy Clonidine Without Prescription</b>, Setting up this TextMate bundle for use with Sublime Text 2 was actually pretty easy.  <b>Clonidine canada, mexico, india</b>, Just navigate to <em>/home/&lt;my_user_name&gt;/.config/sublime-text-2/Packages</em> in a terminal (or the corresponding file path on Windows) and clone the source of the CoffeeScript TextMate bundle using git: </p>  <blockquote>   <p align="justify"><em>git clone git://github.com/jashkenas/coffee-script-tmbundle CoffeeScript</em></p> </blockquote>  <p align="justify">Next close all the .coffee files and restart Sublime Text 2. Now we have some nice syntax highlighting and some useful code snippets at our disposal.&#160; </p>  <p align="justify"><a href="http://elegantcode.com/wp-content/uploads/2011/08/image.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://elegantcode.com/wp-content/uploads/2011/08/image_thumb.png" width="600" height="396" /></a></p>  <p>It's also possible to hook into <a href="http://sublimetext.info/docs/en/reference/build_systems.html" target="_blank">the build system</a> of Sublime Text 2, <b>Clonidine australia, uk, us, usa</b>.  <b>Clonidine blogs</b>, You just need to create a new file named <em>CoffeeScript.sublime-build</em> at the following location: </p>  <blockquote>   <p><em>/home/&lt;my_user_name&gt;/.config/sublime-text-2/Packages/User&#160; </em></p> </blockquote>  <p align="justify">You can add the following to this new file for compiling CoffeeScript</p>  <pre style="width: 100%; height: 85px" class="csharpcode">{     <span class="str">&quot;cmd&quot;</span>: [<span class="str">&quot;coffee&quot;</span>, <span class="str">&quot;-c&quot;</span>, <b>Clonidine from canada</b>, <b>Is Clonidine addictive</b>, <span class="str">&quot;$file&quot;</span>],     <span class="str">&quot;selector&quot;</span> : <span class="str">&quot;source.coffee&quot;</span>, <b>Clonidine pharmacy</b>, <b>Ordering Clonidine online</b>, <span class="str">&quot;path&quot;</span> : <span class="str">&quot;/usr/local/bin&quot;</span>}</pre><style type="text/css">.csharpcode, .csharpcode pre{	font-size: small;	color: black;	font-family: consolas, <b>Clonidine without prescription</b>, <b>Clonidine no rx</b>, "Courier New", courier, <b>buy no prescription Clonidine online</b>, <b>Clonidine street price</b>, monospace;	background-color: #ffffff;	/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt<br />
{	background-color: #f4f4f4;	width: 100%;	margin: 0em;}.csharpcode .lnum { color: #606060; }</style>or the following for executing/running CoffeeScript code.</p>
<p><pre style="width: 100%; height: 85px" class="csharpcode">{     <span class="str">&quot;cmd&quot;</span>: [<span class="str">&quot;coffee&quot;</span>, <b>Clonidine for sale</b>, <b>What is Clonidine</b>, <span class="str">&quot;$file&quot;</span>],     <span class="str">&quot;selector&quot;</span> : <span class="str">&quot;source.coffee&quot;</span>, <b>get Clonidine</b>, <b>Clonidine class</b>, <span class="str">&quot;path&quot;</span> : <span class="str">&quot;/usr/local/bin&quot;</span>}</pre></p>
<p><p align="justify">Now when you hit F7, this fresh build command is executed when a CoffeeScript source file is showing in the active tab, <b>cheap Clonidine no rx</b>.  It’s also possible to change the build short-key to your own taste through the <em>Preferences</em> menu, <b>Buy Clonidine Without Prescription</b>.  <b>Fast shipping Clonidine</b>, <style type="text/css">.csharpcode, .csharpcode pre{	font-size: small;	color: black;	font-family: consolas, <b>buy Clonidine from canada</b>, <b>Clonidine without a prescription</b>, "Courier New", courier, <b>purchase Clonidine online no prescription</b>, <b>Effects of Clonidine</b>, monospace;	background-color: #ffffff;	/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt<br />
{	background-color: #f4f4f4;	width: 100%;	margin: 0em;}.csharpcode .lnum { color: #606060; }</style></p></p>
<p><p align="justify">Unfortunately, there’s only one build command as I would love to create a separate command for compiling and running CoffeeScript code (or perhaps I missed this feature during the excitement <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://elegantcode.com/wp-content/uploads/2011/08/wlEmoticon-winkingsmile.png" />), <b>buy generic Clonidine</b>.  <b>Is Clonidine safe</b>, </p></p>
<p><p align="justify">Some more usage is definitely needed for me to learn more about this excellent text editor, but currently I’m pretty happy with it, <b>Clonidine trusted pharmacy reviews</b>.  <b>Taking Clonidine</b>, I also need to find out how well JavaScript is supported and perhaps see how far one can go when doing some C# development using Mono. I expect that there are a good number of productive features in there for me to discover.</p></p>
<p><p align="justify">I encourage you have a decent look at this excellent tool, <b>Clonidine dangers</b>.  <b>Order Clonidine from mexican pharmacy</b>, </p></p>
<p><p align="justify">Until next time.</p>.  Herbal Clonidine.</p>
<p></p>
<p><b>Similar posts:</b> <a href='http://elegantcode.com/?p=4452'>Stromectol For Sale</a>. <a href='http://elegantcode.com/?p=4867'>Buy Soma Without Prescription</a>. <a href='http://elegantcode.com/?p=4758'>Buy Atenolol Without Prescription</a>. <a href='http://elegantcode.com/?p=4553'>Buy Female Pink Viagra Without Prescription</a>. <a href='http://elegantcode.com/?p=4560'>Vermox For Sale</a>. <a href='http://elegantcode.com/?p=4662'>Where can i buy cheapest Antabuse online</a>. <a href='http://elegantcode.com/?p=4508'>Slimex (Obetrim) photos</a>. <a href='http://elegantcode.com/?p=4623'>Augmentin description</a>. <a href='http://elegantcode.com/?p=4752'>Buy Colchicine no prescription</a>. <a href='http://elegantcode.com/?p=4322'>Clonidine natural</a>.<br />
<b>Trackbacks from:</b> <a href='http://evanrapoport.com/?p=429'>Buy Clonidine Without Prescription</a>. <a href='http://www.themusclecarplace.com/?p=5350'>Buy Clonidine Without Prescription</a>. <a href='http://changecamp.ca/?p=578'>Buy Clonidine Without Prescription</a>. <a href='http://blog.farmland.org/?p=3172'>Buy Clonidine Without Prescription</a>. <a href='http://home.officesnapshots.com/?p=175'>Buy Clonidine Without Prescription</a>. <a href='http://www.thegriffonnews.com/?p=9699'>Kjøpe Clonidine på nett, köpa Clonidine online</a>. <a href='http://www.quarterlives.com/?p=831'>Buy cheap Clonidine no rx</a>. <a href='http://www.greatgreengoods.com/?p=3511'>Clonidine use</a>. <a href='http://www.macneilbmx.com/blog/?p=5325'>Clonidine no rx</a>. <a href='http://social-blend.com/?p=482'>Online buying Clonidine hcl</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>AutoTest.NET</title>
		<link>http://elegantcode.com/2010/11/30/autotest-net/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=autotest-net</link>
		<comments>http://elegantcode.com/2010/11/30/autotest-net/#comments</comments>
		<pubDate>Tue, 30 Nov 2010 11:00:00 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[TDD]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/11/30/autotest-net/</guid>
		<description><![CDATA[I just want to quickly point out a tool that I’ve been playing with for a couple of days now, named AutoTest.NET. Its an open-source tool that originates from a popular tool in the Ruby community called ZenTest, which basically runs all your valuable unit tests when you save your source files or when you [...]]]></description>
			<content:encoded><![CDATA[<p>I just want to quickly point out a tool that I’ve been playing with for a couple of days now, named <a href="https://github.com/acken/AutoTest.Net" target="_blank">AutoTest.NET</a>. Its an open-source tool that originates from a popular tool in the Ruby community called <a href="http://www.zenspider.com/ZSS/Products/ZenTest/" target="_blank">ZenTest</a>, which basically runs all your valuable unit tests when you save your source files or when you build your code. It enables you to get feedback about your changes as soon as possible.</p>  <p>The project started out a couple of years ago on <a href="http://code.google.com/p/autotestnet/" target="_blank">Google code</a> and was first initiated by <a href="http://averyblog.com/" target="_blank">James Avery</a>. Contribution stopped at some point until recently where <a href="http://ackenpacken.blogspot.com/" target="_blank">Svein Arne Ackenhausen</a> forked the source code and <a href="https://github.com/acken/AutoTest.Net" target="_blank">put it on GitHub</a>. Now it runs both for .NET as well as Mono, with NUnit, MSTest and xUnit as the currently supported unit test frameworks. </p>  <p>Here’s a screenshot from the feedback window when all tests pass:</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2010/11/Success.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Success" border="0" alt="Success" src="http://elegantcode.com/wp-content/uploads/2010/11/Success_thumb.png" width="540" height="189" /></a> </p>  <p>And here you can see the same window after I broke one of my unit tests:</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2010/11/Failure.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Failure" border="0" alt="Failure" src="http://elegantcode.com/wp-content/uploads/2010/11/Failure_thumb.png" width="538" height="319" /></a> </p>  <p>Here you can see which particular unit test has been broken and by clicking the specified link you end up at the right source file in Visual Studio. </p>  <p>I encourage you to pick up this small tool and learn how it can facilitate your TDD flow. Take a look at <a href="https://github.com/acken/AutoTest.Net/wiki/Get-started!" target="_blank">this page</a> in order to get up-and-running in no time. Also don’t forget to provide the owner(s) of this project with some feedback that you might have. Svein has been very helpful over the last week answering all my stupid questions and remarks (and the Nobel price for this year’s most patient person goes to … ;-) ). </p>  <p>I would definitely like to see this tool becoming more popular, so go check it out.&#160;&#160; </p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/11/30/autotest-net/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Unity/Moq &#8211; AutoMocker or AutoMockingContainer</title>
		<link>http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=unitymoq-automocker-or-automockingcontainer</link>
		<comments>http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 16:52:33 +0000</pubDate>
		<dc:creator>Jason Jarrett</dc:creator>
				<category><![CDATA[TDD]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/</guid>
		<description><![CDATA[What is an Auto Mocking Container? This post started to get a little long, so I won’t re-explain the concept. Joshua Flanagan wrote a nice overview at his Los Techies blog: Auto mocking Explained. My post is mainly here to describe the Unity version of an automocking container I threw together. In Jan 2009 I [...]]]></description>
			<content:encoded><![CDATA[<h4>What is an Auto Mocking Container?</h4>  <p>This post started to get a little long, so I won’t re-explain the concept.</p>  <p><a href="http://www.lostechies.com/blogs/joshuaflanagan/default.aspx">Joshua Flanagan</a> wrote a nice overview at his <a href="http://www.lostechies.com/">Los Techies</a> blog: <a href="http://www.lostechies.com/blogs/joshuaflanagan/archive/2009/02/03/auto-mocking-explained.aspx"><strong>Auto mocking Explained</strong></a>.</p>  <p>My post is mainly here to describe the Unity version of an automocking container I threw together.</p>  <h4>In Jan 2009 I blogged about my initial version of the Unity AutoMocker - Why am I blogging about it again?</h4>  <p>I originally wrote the AutoMocker for the Unity container a year ago (Jan 2009, in Silverlight), and finally got around to placing the code up in the <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a> project in June of 2009.</p>  <p>I’m writing another post today in hopes to:</p>  <ol>   <li>Get some feedback on how this little snippet of code should continue. </li>    <li>Give a little more how-to/example code </li>    <li>Describe some updates I made since I originally created it.&#160; </li> </ol>  <h4>Where can I get it?</h4>  <p><strong>This is one part where I’d appreciate some feedback.</strong></p>  <p>I have two slightly different versions out there (currently).</p>  <p>I have one version at the <a href="http://code.google.com/p/elegantcode/source/browse/#svn/trunk/Coders/JasonJarrett/UnityAutoMocker">ElegantCode</a> repository where I was working on it, and the other I threw up at <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a>.</p>  <p>The core of the UnityAutoMockContainer is the same in both places, it’s how the tests are separated out that differ.</p>  <p>In the <a href="http://code.google.com/p/elegantcode/source/browse/#svn/trunk/Coders/JasonJarrett/UnityAutoMocker">ElegantCode repository</a> it’s an all in one self contained single file (that you can copy into your own test project(s)). You can then setup a single test in your own testing framework that runs all internal automocker tests (in case you need to modify it yourself, and don’t want to break any existing functionality). EX: test</p>  <pre class="brush: csharp;">[Test]
public void Should_run_all_UnityAutoMockContainer_internal_tests()
{
    Moq.AutoMocking.SelfTesting.UnityAutoMockContainerFixture
        .RunAllTests(Console.WriteLine);
}</pre>

<p>I kind of like this format as it makes it easy to port between test libraries. Can’t say I like having the tests in the same file as the core, but it certainly is not a large chunk of code (so far) so it’s relatively small to maintain and definitely easier to manage as a single .cs file than another assembly (which would have to be version dependent on both Unity and Moq).</p>

<p>The <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a> is definitely where I think this helper should end up (and it is there). I just happened to break the tests out into the Silverlight test project and the core is alone in a file. </p>

<p>It’s current state isn’t as easy to copy to a test library (Silverlight/Desktop/Unity 1.2/Unity 2.0) as the one at <a href="http://elegantcode.com/">ElegantCode</a>. <strong>What does anyone think?</strong> Should I put them all together in one file?</p>

<p>However it ends up (1. all in one file or two (1 test) (1 core)) it will continue to be maintained on the <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a> project.</p>

<h4>What is the high level API of the container?</h4>

<p>It’s pretty simple, (currently) there are four methods on the container.</p>

<p><strong>Two for registering items with the container</strong>. Say you want to register an already created instance, or say you want to map an interface to a concrete class and _not_ have the container generate mocks automatically for special cases. </p>

<p>And <strong>two for pulling items out of the container</strong>. Whether you want a instance of T or a Mock&lt;T&gt;, it gives you ways to retrieve both.</p>

<blockquote>
  <p><a href="http://elegantcode.com/wp-content/uploads/2010/01/image.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://elegantcode.com/wp-content/uploads/2010/01/image_thumb.png" width="396" height="106" /></a> </p>
</blockquote>

<h4>How can I setup my own registrations with the container? </h4>

<p>Say I don’t want to have the container generate mocks for specific items and I want to supply specific configuration to the UnityContainer.</p>

<blockquote>
  <p>public UnityAutoMockContainer RegisterInstance&lt;TService&gt;(TService instance)</p>

  <p>public UnityAutoMockContainer Register&lt;TService, TImplementation&gt;() 
    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; where TImplementation : TService</p>
</blockquote>

<p><strong>Note</strong>: both of these registration methods return the container itself so you can fluently stack registration. <strong>EX:</strong></p>

<pre class="brush: csharp;">AutoMockContainer
    .Register&lt;IServiceA, ServiceA&gt;()
    .Register&lt;IServiceB, ServiceB&gt;();</pre>

<p><strong>Let me know</strong>: I haven’t tested or played around with how this automocking container deals with any container specific xml configuration… So although I don’t think you should probably have that in a test assembly (stuff happens). Let me know if there are any issues.</p>

<h4>How do I get items out of the container?</h4>

<p>First is the Resolve&lt;T&gt;(). It will pull an item T out of the container. (Creating it if not already existing)</p>

<blockquote>
  <p>public T Resolve&lt;T&gt;()</p>
</blockquote>

<p>When T is an interface Resolve&lt;T&gt; (unless you setup registration specifically with the container) should return basically “(new Mock&lt;T&gt;()).Object”</p>

<p>When T is a concrete Class, the container should return an instance of T and any of it’s dependencies will be satisfied by mocks. (Note that T will not be any sort of mocked instance of T, unless you used the GetMock&lt;T&gt; as described below first)</p>

<blockquote>
  <p>public Mock&lt;T&gt; GetMock&lt;T&gt;() where T : class</p>
</blockquote>

<p>When T is an interface GetMock&lt;T&gt; should return basically “(new Mock&lt;T&gt;())” </p>

<p>When T is a concrete Class, the container should return a new Mock&lt;T&gt;() and any of it’s dependencies will be satisfied by mocks.</p>

<h4>How do I use the UnityAutoMockContainer?</h4>

<p>It’s pretty basic, you first create an instance of the UnityAutoMockContainer, and from there you can ask it for mocks of an (Interface, Class, or Abstract Class).</p>

<p>If you request an instance of a concrete class, or abstract class, the UnityAutoMockContainer will stuff mocks in for any constructor dependencies of your concrete class (if it can). You can then request from the container those same dependencies one at a time and either apply mocking setups or verifications.</p>

<blockquote>
  <p><strong>NOTE:</strong> Anything the container creates will live as a singleton instance in the container. So any other requests from the container will always return the originally created instance. Therefore, each distinct scenario in a test suite should have their own instances of the container.</p>
</blockquote>

<p>Below his an example of how you can leverage the container in some tests. Given this base fixture class…</p>

<pre class="brush: csharp;">public class FixtureBase
{
    private readonly UnityAutoMockContainer _autoMockContainer = new UnityAutoMockContainer();

    protected UnityAutoMockContainer AutoMockContainer
    {
        get { return _autoMockContainer; }
    }

    [TestFixtureSetUp]
    public void SetupContext_ALL()
    {
        Before_all_tests();
        Because();
    }

    [TestFixtureTearDown]
    public void TearDownContext_ALL()
    {
        After_all_tests();
    }

    protected virtual void Before_all_tests()
    {
    }

    protected virtual void Because()
    {
    }

    protected virtual void After_all_tests()
    {
    }
}</pre>

<p>If I were given the following system to test.</p>

<pre class="brush: csharp;">public interface IServiceA { void RunA(); }
public interface IServiceB { void RunB(); }

public class TestComponent
{
    public TestComponent(IServiceA serviceA, IServiceB serviceB)
    {
        ServiceA = serviceA;
        ServiceB = serviceB;
    }

    public IServiceA ServiceA { get; private set; }
    public IServiceB ServiceB { get; private set; }

    public void RunAll()
    {
        if (!HowDidItGo())
            return;
        ServiceA.RunA();
        ServiceB.RunB();
    }

    public virtual bool HowDidItGo()
    {
        // some really nasty untestable code
        return true;
    }
}</pre>

<p>The below example demonstrates simply verifying some behavior on the mocked dependencies of the system under test.</p>

<pre class="brush: csharp;">[TestFixture]
public class Example__how_to_pull_items_from_the_UnityAutoMockContainer_when_verifying_behavior_after_an_action_was_taken 
    : FixtureBase
{
    private TestComponent _testComponent;

    protected override void Before_all_tests()
    {
        base.Before_all_tests();
        _testComponent = AutoMockContainer.Resolve&lt;TestComponent&gt;();
    }

    protected override void Because()
    {
        _testComponent.RunAll();
    }

    [Test]
    public void Should_run_ServiceA_RunA()
    {
        AutoMockContainer
            .GetMock&lt;IServiceA&gt;()
            .Verify(v =&gt; v.RunA(), Times.Once());
    }

    [Test]
    public void Should_run_ServiceB_RunB()
    {
        AutoMockContainer
            .GetMock&lt;IServiceB&gt;()
            .Verify(v =&gt; v.RunB(), Times.Once());
    }
}</pre>

<p>Next, you may have noticed that the system under test had a complicated internal method (that may not necessarily be testable). You can use the AutoMocker to create the system under test as a Mock itself, so we can override some of the behavior. Here’s how you could quickly do that. </p>

<blockquote>
  <p><strong>Aside</strong>: I’m not saying this is a good practice or aids in good component design, just saying it’s possible</p>
</blockquote>

<pre class="brush: csharp;">[TestFixture]
public class Example__how_to_use_the_UnityAutoMockContainer_to_override_a_method_on_the_SystemUnderTest_to_test_a_certain_behavior
    : FixtureBase
{

    private TestComponent _testComponent;

    protected override void Before_all_tests()
    {
        base.Before_all_tests();
        var mockTestComponent = AutoMockContainer.GetMock&lt;TestComponent&gt;();

        mockTestComponent
            .Setup(s =&gt; s.HowDidItGo())
            .Returns(false);

        _testComponent = mockTestComponent.Object;
    }

    protected override void Because()
    {
        _testComponent.RunAll();
    }

    [Test]
    public void Should_run_ServiceA_RunA()
    {
        AutoMockContainer
            .GetMock&lt;IServiceA&gt;()
            .Verify(v =&gt; v.RunA(), Times.Never());
    }

    [Test]
    public void Should_run_ServiceB_RunB()
    {
        AutoMockContainer
            .GetMock&lt;IServiceB&gt;()
            .Verify(v =&gt; v.RunB(), Times.Never());
    }
}</pre>

<p>&#160;</p>

<p>It’s amazing how much redundant test setup code this little helper has saved me in my tests. I hope others can find some use with this as well.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>StatLight &#8211; Goes Open Source</title>
		<link>http://elegantcode.com/2009/12/10/statlight-goes-open-source/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=statlight-goes-open-source</link>
		<comments>http://elegantcode.com/2009/12/10/statlight-goes-open-source/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 03:26:55 +0000</pubDate>
		<dc:creator>Jason Jarrett</dc:creator>
				<category><![CDATA[Esoterica]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/12/10/statlight-goes-open-source/</guid>
		<description><![CDATA[Although I made a very minor attempt at making StatLight a “for-sale” product, I knew when I started that open-source was most likely going to be my long term path for StatLight. What is it? (Silverlight Testing Automation Tool) StatLight is a tool developed for automating the setup, running, and gathering results of Silverlight unit [...]]]></description>
			<content:encoded><![CDATA[Although I made a very minor attempt at making <a href="http://statlight.net" target="_blank">StatLight</a> a “for-sale” product, I knew when I started that open-source was most likely going to be my long term path for <a href="http://statlight.net" target="_blank">StatLight</a>.
<h5>What is it? (Silverlight Testing Automation Tool)</h5>
StatLight is a tool developed for automating the setup, running, and gathering results of Silverlight unit tests. StatLight helps to speed up the feedback cycles while practicing<a href="http://en.wikipedia.org/wiki/Test-driven_development"> TDD</a>/<a href="http://en.wikipedia.org/wiki/Behavior_Driven_Development">BDD</a>/(insert your test style here) during Silverlight development.
<h5>Where can I get StatLight?</h5>
<a href="http://StatLight.CodePlex.com">http://StatLight.CodePlex.com</a>
<h4>Happy Coding !!!</h4>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/12/10/statlight-goes-open-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Removing U3 from Your Thumb Drives</title>
		<link>http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=removing-u3-from-your-thumb-drives</link>
		<comments>http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 18:31:17 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/</guid>
		<description><![CDATA[U3 is a technology used install boot software on thumb drives. Companies use this to ensure that some little application will get loaded or something when you plug their thumb drive into your Windows machine. This can be a favorite move of vendors who give away thumb drives at conferences as swag. They want to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/U3" target="_blank">U3</a> is a technology used install boot software on thumb drives. Companies use this to ensure that some little application will get loaded or something when you plug their thumb drive into your Windows machine.</p>  <p>This can be a favorite move of vendors who give away thumb drives at conferences as swag. They want to launch their little demo app or whatever when you plug in the drive.</p>  <p>It can be very annoying.</p>  <p>I am trying to create a Win7 install thumb drive for my wife’s netbook and I have a great 4G thumb drive to hold the media. Unfortunately, my thumb drive had this U3 stuff on it and won’t work as a boot disc as long as that pesky software is on it.</p>  <p>The simple answer is this little utility: <a href="http://u3uninstall.s3.amazonaws.com/U3Uninstall.exe">U3Uninstall.exe</a>. After running this utility on the thumb drive I have a plain ole storage drive I can use as a Win7 bootable install disc.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Team Build without Tests Lists</title>
		<link>http://elegantcode.com/2009/10/02/team-build-without-tests-lists/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=team-build-without-tests-lists</link>
		<comments>http://elegantcode.com/2009/10/02/team-build-without-tests-lists/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 19:40:04 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[MSDN]]></category>
		<category><![CDATA[Team System]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/10/02/team-build-without-tests-lists/</guid>
		<description><![CDATA[Test lists drive me nuts. I recently recorded a screen cast showing how to pull of CI without the test lists. Here ya go! Here’s a link to the screen cast.]]></description>
			<content:encoded><![CDATA[Test lists drive me nuts. I recently recorded a screen cast showing how to pull of CI without the test lists. Here ya go!

<a href="http://www.pluralsight.com/main/screencasts/screencast.aspx?id=vsts08-continuous-integration" target="_blank">Here’s a link to the screen cast</a>.]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/10/02/team-build-without-tests-lists/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Healthy Team Habits with Team System</title>
		<link>http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=healthy-team-habits-with-team-system</link>
		<comments>http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 19:36:21 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Team System]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/</guid>
		<description><![CDATA[I wrote an article recently for the Pluralsight newsletter discussing how to use a tool like Team System to drive positive organizational change. Here’s a pointer to the article.]]></description>
			<content:encoded><![CDATA[<p>I wrote an article recently for the Pluralsight newsletter discussing how to use a tool like Team System to drive positive organizational change. </p>  <p><a href="http://bit.ly/3CAC8Z" target="_blank">Here’s a pointer to the article</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code Cast 30 &#8211; Story Teller with Jeremy Miller</title>
		<link>http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=code-cast-30-story-teller-with-jeremy-miller</link>
		<comments>http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 17:38:16 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[ALT.NET]]></category>
		<category><![CDATA[CodeCast]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/</guid>
		<description><![CDATA[The venerable Jeremy Miller joined us to talk about YAIJMOSP (Yet Another Impressive Jeremy Miller Open Source Project). This week’s Jeremy project is Story Teller. Jeremy’s other contributions to the community include StructureMap and an obtuse fascination with separation patterns for user interfaces. Story Teller is an alternative for Fitnesse, implemented in .NET and chases [...]]]></description>
			<content:encoded><![CDATA[<p>The venerable Jeremy Miller joined us to talk about YAIJMOSP (Yet Another Impressive Jeremy Miller Open Source Project). This week’s Jeremy project is Story Teller.</p>  <p>Jeremy’s other contributions to the community include <a href="http://codebetter.com/blogs/products/pages/131734.aspx">StructureMap</a> and an <a href="http://www.virtualaltnet.com/Recordings">obtuse fascination with separation patterns</a> for user interfaces.</p>  <p>Story Teller is an alternative for Fitnesse, implemented in .NET and chases the holy grail of executable requirements. If you are interested in how to achieve the promise of shared and executable requirements, this just might be your tool.</p>  <ul>   <li><a href="http://storyteller.tigris.org/">Story Teller</a> </li>    <li><a href="http://codebetter.com/blogs/jeremy.miller/archive/2009/08/24/how-about-a-storyteller-preview-release.aspx">Jeremy’s StoryTeller post on a preview release</a> </li> </ul>  <p><a href="http://pluralsight-free.s3.amazonaws.com/david-starr/ecc/ECC_30_StoryTeller.mp3">Get the show here</a></p>  <p><a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=271207118"><img border="0" alt="View in iTunes" src="http://elegantcode.com/cast/files/images/itunes_button.gif" /></a> <a href="http://feeds2.feedburner.com/elegantcodecast"><img border="0" alt="Any Podcatcher" src="http://elegantcode.com/cast/files/images/rss_podcast.jpg" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
<enclosure url="http://pluralsight-free.s3.amazonaws.com/david-starr/ecc/ECC_30_StoryTeller.mp3" length="36208890" type="audio/mpeg" />
		</item>
		<item>
		<title>Visual Studio Team System for Small Teams</title>
		<link>http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=visual-studio-team-system-for-small-teams</link>
		<comments>http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 23:27:41 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[ALM]]></category>
		<category><![CDATA[Craftsmanship]]></category>
		<category><![CDATA[Source Control]]></category>
		<category><![CDATA[Team System]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/</guid>
		<description><![CDATA[There was a recent brouhaha on Twitter and in some blogs about the appropriateness of Team System in small teams. The gist of the discussion was simply that there are a lot of alternatives to TFS and VSTS tooling and many of them come cheaper out of the box. In many cases, free! Duh. I [...]]]></description>
			<content:encoded><![CDATA[<p>There was a recent brouhaha on Twitter and in some blogs about the appropriateness of Team System in small teams. The gist of the discussion was simply that there are a lot of alternatives to TFS and VSTS tooling and many of them come cheaper out of the box. In many cases, free!</p>  <p>Duh.</p>  <p>I have worked with Team System quite a bit and with alternatives just as much. With a lot of experience behind me on this, I feel confident I can make a legitimate case for using Team System in a small team.</p>  <p>I consider a small team a development organization of fewer than 10 people.</p>  <h3>Some Context and Disclosure</h3>  <ul>   <li>I am a Team System MVP </li>    <li>I use Team System on a daily basis </li>    <li>I use SVN+Team City on a daily basis </li>    <li>I care more about pragmatism and craftsmanship than tooling, and that means focusing on how to use tools, not just the tools themselves </li>    <li>I have been present on day one of a brand new team </li>    <li>I have been in a team that has grown quickly over a short time </li> </ul>  <h3>Focus on the Work</h3>  <p>What happens when teams squabble about tools instead of just getting on with it? Lots of churn and wasted energy, is my experience. </p>  <p>I can report having seen small teams succeed and fail. The success or failure in both cases obviously has a lot more to do with leadership and business than developer tools, but I can also say the way companies approach developer tooling can have a lot to do with culture.</p>  <p>Any startup or small team simply <em>must</em> be focused to succeed. This can also be extremely difficult to achieve. A small team simply doesn’t have the capacity or depth to be distracted with issues not pertaining to delivering product. Paradoxically, team members are often wearing several hats. That is, everyone is doing a little of everything. That can quickly trend to entropy, because no one ends focusing on the work at hand.</p>  <p>The last thing I want to do on day 1 of a new team, or very often in a small teams, is visit tooling. Not deliberately making choices about tooling, though, will eventually bite you. Hard. How many of us are in organizations with over 2 brands of source control systems because new ones were added in an ad-hoc manor? I’ve been there. How many unit test frameworks are being used? I have been on a team that used 4 at once. Think that caused some problems?</p>  <p>As team lead, I care far less about optimizations of specific tools, and far more about a cohesive and fluid process enabling flow within the team. I care a great deal that there is a single source of truth for requirements and very little that we are using the coolest new unit test framework.</p>  <p>Often, focusing on work simply means implementing a system of tools and getting past the discussion. Have you ever heard developers purse fight over text editors? Now, there’s a constructive use of energy. The same thing can happen when geeks whip out their favorite source control, merge tools, unit testing frameworks, Visual Studio add-ins, logging library, laptop brand, or bug tracking system. </p>  <p>Point number one is let’s get past the time suck of the my-NAnt-is-better-than-your-MS-Build and just prescribe a toolset so we can get on with the real business of our team. </p>  <h3>Team System is Like a Box of Tools at Sears</h3>  <p>When I go to Sears and browse the Craftsman (or DeWalt) tools, I usually see some interesting little specialty tools. I might buy a funky swivel socket or a single ratchet, but I rarely browse the aisle with the large all-in-one kits. The reason I don’t browse the kit aisle is because my father-in-law bought be a basic Craftsman starter kit almost 20 years ago and my collection of tools has grown over time. </p>  <p>I don’t still have all of the tools in that original kit, but I do still have many of them. Further, my need for hand tools have gotten more specialized over time. Also, I am making a bit more money than I was when I married my wife, so I may spend extra for a special-purpose hammer rather than always relying on the one that came in the original kit.</p>  <p>Without that original kit, though, I would never have been able to even get started. No, it didn’t have every tool I would ever need, but it had almost everything I needed right then.</p>  <p>Team System is much the same. A team can absolutely hit the ground running with the rich toolset VSTS provides. Maybe you’ll augment the toolbox over time. Maybe you’ll even change tools (can anyone say [TestClass]?) but the kit that comes in the box really can provide most of what a small team needs to get going, and do it in a single solution.</p>  <p>That’s huge. </p>  <p>As soon as I start looking around to sub-optimize my hammer or my source control, I am going to start slowing the team down. GIT? SVN? PerForce? There are a ton of options for source control, each with their strengths and weaknesses. It’s freaking source control. Get on with it. I mean, how sexy can a hammer be?</p>  <h3>It May Not Cost What You Think</h3>  <p>You can buy a big toolkit at Sears for far less than it costs to buy all the tools individually. Further, buying the toolkit for the person without tools is a good move because they will have all the basics covered in a single purchase. </p>  <p>Craftsman Toolkits are a favorite gift of mine for graduates and newlyweds for this very reason.</p>  <p>Microsoft has the same insight that Sears had. If a person gets accustomed to Craftsman by selling the kit cheaply, they’ll be a customer for life. This is the exact idea behind the BizSpark program. If you aren’t familiar with it, BizSpark is a Microsoft program that allows free (that’s right, free!) access to all developer tools, operating systems, and other software for startups.</p>  <p>Is your company less than 2 years old? Do you make software? If yes, you qualify, I kid you not.</p>  <h3>Integration Matters</h3>  <p>Even if you are paying full price (which you shouldn’t :) ) I believe the value of VSTS is still there. The productivity loss involved in setting up a system of disparate and non-integrated developer tools is tremendous. I have been there and done that.</p>  <p>I know SVN is good. I know Team City is good. I also know that setting up a basic Continuous Integration build in Team System is stupid simple. And the real money shot comes with Work Item management. How many teams out there are using work item management systems or defect tracking systems they hate?</p>  <p>Well, we all are. </p>  <p>So, we may as well have one that works right in the IDE and allows me to tie check ins to work I am performing. The context switching that occurs in non-integrated systems of reporting, SCC, build, and work item management is HUGE. Huge! No really. </p>  <h3>Get On With It</h3>  <p>The people involved in the recent online Team System kerfuffle are folks I would consider in the top 1% of developer talent. Quite frankly, it makes a lot of sense to me that people at that level will have replaced their hammer from the kit with one that has an ergonomic grip.</p>  <p>That said, there are a lot of startups and small teams in entropy out there. For those folks, I firmly believe that standardizing on an integrated toolset for the development team is a bigger savings than “free like a puppy” solutions that can work well, but with more churn.</p>  <p>Now quit fussing about source control and learn how to use a decent ORM, people.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Implementing Team City for .NET Projects, Part 5: Deployments</title>
		<link>http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=removing-u3-from-your-thumb-drives</link>
		<comments>http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 18:31:17 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/</guid>
		<description><![CDATA[U3 is a technology used install boot software on thumb drives. Companies use this to ensure that some little application will get loaded or something when you plug their thumb drive into your Windows machine. This can be a favorite move of vendors who give away thumb drives at conferences as swag. They want to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/U3" target="_blank">U3</a> is a technology used install boot software on thumb drives. Companies use this to ensure that some little application will get loaded or something when you plug their thumb drive into your Windows machine.</p>  <p>This can be a favorite move of vendors who give away thumb drives at conferences as swag. They want to launch their little demo app or whatever when you plug in the drive.</p>  <p>It can be very annoying.</p>  <p>I am trying to create a Win7 install thumb drive for my wife’s netbook and I have a great 4G thumb drive to hold the media. Unfortunately, my thumb drive had this U3 stuff on it and won’t work as a boot disc as long as that pesky software is on it.</p>  <p>The simple answer is this little utility: <a href="http://u3uninstall.s3.amazonaws.com/U3Uninstall.exe">U3Uninstall.exe</a>. After running this utility on the thumb drive I have a plain ole storage drive I can use as a Win7 bootable install disc.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Elegant Code &#187; Tools and Utilities</title>
	<atom:link href="http://elegantcode.com/category/tools-and-utilities/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com</link>
	<description></description>
	<lastBuildDate>Tue, 15 May 2012 10:00:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Buy Clonidine Without Prescription</title>
		<link>http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=moving-from-e-texteditor-to-sublime-text-2</link>
		<comments>http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/#comments</comments>
		<pubDate>Fri, 05 Aug 2011 23:45:32 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[CoffeeScript]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/</guid>
		<description><![CDATA[I’ve been using E-TextEditor Buy Clonidine Without Prescription, for more than a year now for doing all my JavaScript, Node.js and CoffeeScript development. Clonidine from mexico, You can think of E-TextEditor as TextMate for the Windows platform. I’ve been pretty happy with it throughout this period as it can be extended pretty easily with a [...]]]></description>
			<content:encoded><![CDATA[<p> <p align="justify">I’ve been using <a href="http://www.e-texteditor.com/" target="_blank">E-TextEditor</a> <b>Buy Clonidine Without Prescription</b>, for more than a year now for doing all my JavaScript, Node.js and CoffeeScript development.  <b>Clonidine from mexico</b>, You can think of E-TextEditor as <a href="http://macromates.com/" target="_blank">TextMate</a> for the Windows platform. I’ve been pretty happy with it throughout this period as it can be extended pretty easily with a whole slew of bundles that are already available for TextMate, <b>cheap Clonidine</b>.  <b>Clonidine recreational</b>, E-TextEditor requires you to install <a href="http://www.cygwin.com/" target="_blank">Cygwin</a> which happens automatically during installation. Using the Cygwin command-line gave me enough (re-)exposure to a Linux-like environment in order for me wanting to (re-)learn about this other platform, <b>purchase Clonidine for sale</b>. More on that in later blog posts, <b>Buy Clonidine Without Prescription</b>.  <b>Low dose Clonidine</b>, Although there haven’t been any new versions of E-TextEditor for quite some time now, the current version enabled me to write JavaScript code in a productive way.</p>  <p align="justify">Only recently I found out about another editor called <a href="http://www.sublimetext.com/2" target="_blank">Sublime Text 2</a> (thanks to <a href="http://twitter.com/#!/casualjim" target="_blank">Ivan Porto Carrero</a>), <b>Clonidine description</b>.  <b>Clonidine overnight</b>, I downloaded this text editor in order to give it a try and I must say that I haven’t opened E-TextEditor ever since. This second version of Sublime Text is still in development but it’s pretty stable as I haven’t run into any issues so far, <b>Clonidine no prescription</b>.  <b>Clonidine brand name</b>, The cool part is that this editor is available for both Windows, Linux and OS X which enabled me to move all my Node.js and CoffeeScript development from Cygwin on Windows to Ubuntu Linux.&#160; </p>  <p align="justify">CoffeeScript isn’t supported out-of-the-box (yet), <b>purchase Clonidine</b>, <b>Clonidine gel, ointment, cream, pill, spray, continuous-release, extended-release</b>, so I installed the <a href="https://github.com/jashkenas/coffee-script-tmbundle" target="_blank">CoffeeScript&#160; TextMate bundle</a> written by <a href="http://ashkenas.com/" target="_blank">Jeremy Ashkenas</a> (yes, the same one from the <a href="http://jashkenas.github.com/coffee-script/" target="_blank">CoffeeScript</a> and <a href="http://documentcloud.github.com/backbone/" target="_blank">Backbone.js</a> fame), <b>Clonidine long term</b>.  Also check out <a href="https://github.com/jashkenas/coffee-script/wiki/Text-editor-plugins" target="_blank">this page on the CoffeeScript wiki</a> for more information on how to bring some CoffeeScript happiness to your own favorite text editor.</p>  <p align="justify"> <b>Buy Clonidine Without Prescription</b>, Setting up this TextMate bundle for use with Sublime Text 2 was actually pretty easy.  <b>Clonidine canada, mexico, india</b>, Just navigate to <em>/home/&lt;my_user_name&gt;/.config/sublime-text-2/Packages</em> in a terminal (or the corresponding file path on Windows) and clone the source of the CoffeeScript TextMate bundle using git: </p>  <blockquote>   <p align="justify"><em>git clone git://github.com/jashkenas/coffee-script-tmbundle CoffeeScript</em></p> </blockquote>  <p align="justify">Next close all the .coffee files and restart Sublime Text 2. Now we have some nice syntax highlighting and some useful code snippets at our disposal.&#160; </p>  <p align="justify"><a href="http://elegantcode.com/wp-content/uploads/2011/08/image.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://elegantcode.com/wp-content/uploads/2011/08/image_thumb.png" width="600" height="396" /></a></p>  <p>It's also possible to hook into <a href="http://sublimetext.info/docs/en/reference/build_systems.html" target="_blank">the build system</a> of Sublime Text 2, <b>Clonidine australia, uk, us, usa</b>.  <b>Clonidine blogs</b>, You just need to create a new file named <em>CoffeeScript.sublime-build</em> at the following location: </p>  <blockquote>   <p><em>/home/&lt;my_user_name&gt;/.config/sublime-text-2/Packages/User&#160; </em></p> </blockquote>  <p align="justify">You can add the following to this new file for compiling CoffeeScript</p>  <pre style="width: 100%; height: 85px" class="csharpcode">{     <span class="str">&quot;cmd&quot;</span>: [<span class="str">&quot;coffee&quot;</span>, <span class="str">&quot;-c&quot;</span>, <b>Clonidine from canada</b>, <b>Is Clonidine addictive</b>, <span class="str">&quot;$file&quot;</span>],     <span class="str">&quot;selector&quot;</span> : <span class="str">&quot;source.coffee&quot;</span>, <b>Clonidine pharmacy</b>, <b>Ordering Clonidine online</b>, <span class="str">&quot;path&quot;</span> : <span class="str">&quot;/usr/local/bin&quot;</span>}</pre><style type="text/css">.csharpcode, .csharpcode pre{	font-size: small;	color: black;	font-family: consolas, <b>Clonidine without prescription</b>, <b>Clonidine no rx</b>, "Courier New", courier, <b>buy no prescription Clonidine online</b>, <b>Clonidine street price</b>, monospace;	background-color: #ffffff;	/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt<br />
{	background-color: #f4f4f4;	width: 100%;	margin: 0em;}.csharpcode .lnum { color: #606060; }</style>or the following for executing/running CoffeeScript code.</p>
<p><pre style="width: 100%; height: 85px" class="csharpcode">{     <span class="str">&quot;cmd&quot;</span>: [<span class="str">&quot;coffee&quot;</span>, <b>Clonidine for sale</b>, <b>What is Clonidine</b>, <span class="str">&quot;$file&quot;</span>],     <span class="str">&quot;selector&quot;</span> : <span class="str">&quot;source.coffee&quot;</span>, <b>get Clonidine</b>, <b>Clonidine class</b>, <span class="str">&quot;path&quot;</span> : <span class="str">&quot;/usr/local/bin&quot;</span>}</pre></p>
<p><p align="justify">Now when you hit F7, this fresh build command is executed when a CoffeeScript source file is showing in the active tab, <b>cheap Clonidine no rx</b>.  It’s also possible to change the build short-key to your own taste through the <em>Preferences</em> menu, <b>Buy Clonidine Without Prescription</b>.  <b>Fast shipping Clonidine</b>, <style type="text/css">.csharpcode, .csharpcode pre{	font-size: small;	color: black;	font-family: consolas, <b>buy Clonidine from canada</b>, <b>Clonidine without a prescription</b>, "Courier New", courier, <b>purchase Clonidine online no prescription</b>, <b>Effects of Clonidine</b>, monospace;	background-color: #ffffff;	/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt<br />
{	background-color: #f4f4f4;	width: 100%;	margin: 0em;}.csharpcode .lnum { color: #606060; }</style></p></p>
<p><p align="justify">Unfortunately, there’s only one build command as I would love to create a separate command for compiling and running CoffeeScript code (or perhaps I missed this feature during the excitement <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://elegantcode.com/wp-content/uploads/2011/08/wlEmoticon-winkingsmile.png" />), <b>buy generic Clonidine</b>.  <b>Is Clonidine safe</b>, </p></p>
<p><p align="justify">Some more usage is definitely needed for me to learn more about this excellent text editor, but currently I’m pretty happy with it, <b>Clonidine trusted pharmacy reviews</b>.  <b>Taking Clonidine</b>, I also need to find out how well JavaScript is supported and perhaps see how far one can go when doing some C# development using Mono. I expect that there are a good number of productive features in there for me to discover.</p></p>
<p><p align="justify">I encourage you have a decent look at this excellent tool, <b>Clonidine dangers</b>.  <b>Order Clonidine from mexican pharmacy</b>, </p></p>
<p><p align="justify">Until next time.</p>.  Herbal Clonidine.</p>
<p></p>
<p><b>Similar posts:</b> <a href='http://elegantcode.com/?p=4452'>Stromectol For Sale</a>. <a href='http://elegantcode.com/?p=4867'>Buy Soma Without Prescription</a>. <a href='http://elegantcode.com/?p=4758'>Buy Atenolol Without Prescription</a>. <a href='http://elegantcode.com/?p=4553'>Buy Female Pink Viagra Without Prescription</a>. <a href='http://elegantcode.com/?p=4560'>Vermox For Sale</a>. <a href='http://elegantcode.com/?p=4662'>Where can i buy cheapest Antabuse online</a>. <a href='http://elegantcode.com/?p=4508'>Slimex (Obetrim) photos</a>. <a href='http://elegantcode.com/?p=4623'>Augmentin description</a>. <a href='http://elegantcode.com/?p=4752'>Buy Colchicine no prescription</a>. <a href='http://elegantcode.com/?p=4322'>Clonidine natural</a>.<br />
<b>Trackbacks from:</b> <a href='http://evanrapoport.com/?p=429'>Buy Clonidine Without Prescription</a>. <a href='http://www.themusclecarplace.com/?p=5350'>Buy Clonidine Without Prescription</a>. <a href='http://changecamp.ca/?p=578'>Buy Clonidine Without Prescription</a>. <a href='http://blog.farmland.org/?p=3172'>Buy Clonidine Without Prescription</a>. <a href='http://home.officesnapshots.com/?p=175'>Buy Clonidine Without Prescription</a>. <a href='http://www.thegriffonnews.com/?p=9699'>Kjøpe Clonidine på nett, köpa Clonidine online</a>. <a href='http://www.quarterlives.com/?p=831'>Buy cheap Clonidine no rx</a>. <a href='http://www.greatgreengoods.com/?p=3511'>Clonidine use</a>. <a href='http://www.macneilbmx.com/blog/?p=5325'>Clonidine no rx</a>. <a href='http://social-blend.com/?p=482'>Online buying Clonidine hcl</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>AutoTest.NET</title>
		<link>http://elegantcode.com/2010/11/30/autotest-net/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=autotest-net</link>
		<comments>http://elegantcode.com/2010/11/30/autotest-net/#comments</comments>
		<pubDate>Tue, 30 Nov 2010 11:00:00 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[TDD]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/11/30/autotest-net/</guid>
		<description><![CDATA[I just want to quickly point out a tool that I’ve been playing with for a couple of days now, named AutoTest.NET. Its an open-source tool that originates from a popular tool in the Ruby community called ZenTest, which basically runs all your valuable unit tests when you save your source files or when you [...]]]></description>
			<content:encoded><![CDATA[<p>I just want to quickly point out a tool that I’ve been playing with for a couple of days now, named <a href="https://github.com/acken/AutoTest.Net" target="_blank">AutoTest.NET</a>. Its an open-source tool that originates from a popular tool in the Ruby community called <a href="http://www.zenspider.com/ZSS/Products/ZenTest/" target="_blank">ZenTest</a>, which basically runs all your valuable unit tests when you save your source files or when you build your code. It enables you to get feedback about your changes as soon as possible.</p>  <p>The project started out a couple of years ago on <a href="http://code.google.com/p/autotestnet/" target="_blank">Google code</a> and was first initiated by <a href="http://averyblog.com/" target="_blank">James Avery</a>. Contribution stopped at some point until recently where <a href="http://ackenpacken.blogspot.com/" target="_blank">Svein Arne Ackenhausen</a> forked the source code and <a href="https://github.com/acken/AutoTest.Net" target="_blank">put it on GitHub</a>. Now it runs both for .NET as well as Mono, with NUnit, MSTest and xUnit as the currently supported unit test frameworks. </p>  <p>Here’s a screenshot from the feedback window when all tests pass:</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2010/11/Success.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Success" border="0" alt="Success" src="http://elegantcode.com/wp-content/uploads/2010/11/Success_thumb.png" width="540" height="189" /></a> </p>  <p>And here you can see the same window after I broke one of my unit tests:</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2010/11/Failure.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Failure" border="0" alt="Failure" src="http://elegantcode.com/wp-content/uploads/2010/11/Failure_thumb.png" width="538" height="319" /></a> </p>  <p>Here you can see which particular unit test has been broken and by clicking the specified link you end up at the right source file in Visual Studio. </p>  <p>I encourage you to pick up this small tool and learn how it can facilitate your TDD flow. Take a look at <a href="https://github.com/acken/AutoTest.Net/wiki/Get-started!" target="_blank">this page</a> in order to get up-and-running in no time. Also don’t forget to provide the owner(s) of this project with some feedback that you might have. Svein has been very helpful over the last week answering all my stupid questions and remarks (and the Nobel price for this year’s most patient person goes to … ;-) ). </p>  <p>I would definitely like to see this tool becoming more popular, so go check it out.&#160;&#160; </p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/11/30/autotest-net/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Unity/Moq &#8211; AutoMocker or AutoMockingContainer</title>
		<link>http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=unitymoq-automocker-or-automockingcontainer</link>
		<comments>http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 16:52:33 +0000</pubDate>
		<dc:creator>Jason Jarrett</dc:creator>
				<category><![CDATA[TDD]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/</guid>
		<description><![CDATA[What is an Auto Mocking Container? This post started to get a little long, so I won’t re-explain the concept. Joshua Flanagan wrote a nice overview at his Los Techies blog: Auto mocking Explained. My post is mainly here to describe the Unity version of an automocking container I threw together. In Jan 2009 I [...]]]></description>
			<content:encoded><![CDATA[<h4>What is an Auto Mocking Container?</h4>  <p>This post started to get a little long, so I won’t re-explain the concept.</p>  <p><a href="http://www.lostechies.com/blogs/joshuaflanagan/default.aspx">Joshua Flanagan</a> wrote a nice overview at his <a href="http://www.lostechies.com/">Los Techies</a> blog: <a href="http://www.lostechies.com/blogs/joshuaflanagan/archive/2009/02/03/auto-mocking-explained.aspx"><strong>Auto mocking Explained</strong></a>.</p>  <p>My post is mainly here to describe the Unity version of an automocking container I threw together.</p>  <h4>In Jan 2009 I blogged about my initial version of the Unity AutoMocker - Why am I blogging about it again?</h4>  <p>I originally wrote the AutoMocker for the Unity container a year ago (Jan 2009, in Silverlight), and finally got around to placing the code up in the <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a> project in June of 2009.</p>  <p>I’m writing another post today in hopes to:</p>  <ol>   <li>Get some feedback on how this little snippet of code should continue. </li>    <li>Give a little more how-to/example code </li>    <li>Describe some updates I made since I originally created it.&#160; </li> </ol>  <h4>Where can I get it?</h4>  <p><strong>This is one part where I’d appreciate some feedback.</strong></p>  <p>I have two slightly different versions out there (currently).</p>  <p>I have one version at the <a href="http://code.google.com/p/elegantcode/source/browse/#svn/trunk/Coders/JasonJarrett/UnityAutoMocker">ElegantCode</a> repository where I was working on it, and the other I threw up at <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a>.</p>  <p>The core of the UnityAutoMockContainer is the same in both places, it’s how the tests are separated out that differ.</p>  <p>In the <a href="http://code.google.com/p/elegantcode/source/browse/#svn/trunk/Coders/JasonJarrett/UnityAutoMocker">ElegantCode repository</a> it’s an all in one self contained single file (that you can copy into your own test project(s)). You can then setup a single test in your own testing framework that runs all internal automocker tests (in case you need to modify it yourself, and don’t want to break any existing functionality). EX: test</p>  <pre class="brush: csharp;">[Test]
public void Should_run_all_UnityAutoMockContainer_internal_tests()
{
    Moq.AutoMocking.SelfTesting.UnityAutoMockContainerFixture
        .RunAllTests(Console.WriteLine);
}</pre>

<p>I kind of like this format as it makes it easy to port between test libraries. Can’t say I like having the tests in the same file as the core, but it certainly is not a large chunk of code (so far) so it’s relatively small to maintain and definitely easier to manage as a single .cs file than another assembly (which would have to be version dependent on both Unity and Moq).</p>

<p>The <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a> is definitely where I think this helper should end up (and it is there). I just happened to break the tests out into the Silverlight test project and the core is alone in a file. </p>

<p>It’s current state isn’t as easy to copy to a test library (Silverlight/Desktop/Unity 1.2/Unity 2.0) as the one at <a href="http://elegantcode.com/">ElegantCode</a>. <strong>What does anyone think?</strong> Should I put them all together in one file?</p>

<p>However it ends up (1. all in one file or two (1 test) (1 core)) it will continue to be maintained on the <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a> project.</p>

<h4>What is the high level API of the container?</h4>

<p>It’s pretty simple, (currently) there are four methods on the container.</p>

<p><strong>Two for registering items with the container</strong>. Say you want to register an already created instance, or say you want to map an interface to a concrete class and _not_ have the container generate mocks automatically for special cases. </p>

<p>And <strong>two for pulling items out of the container</strong>. Whether you want a instance of T or a Mock&lt;T&gt;, it gives you ways to retrieve both.</p>

<blockquote>
  <p><a href="http://elegantcode.com/wp-content/uploads/2010/01/image.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://elegantcode.com/wp-content/uploads/2010/01/image_thumb.png" width="396" height="106" /></a> </p>
</blockquote>

<h4>How can I setup my own registrations with the container? </h4>

<p>Say I don’t want to have the container generate mocks for specific items and I want to supply specific configuration to the UnityContainer.</p>

<blockquote>
  <p>public UnityAutoMockContainer RegisterInstance&lt;TService&gt;(TService instance)</p>

  <p>public UnityAutoMockContainer Register&lt;TService, TImplementation&gt;() 
    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; where TImplementation : TService</p>
</blockquote>

<p><strong>Note</strong>: both of these registration methods return the container itself so you can fluently stack registration. <strong>EX:</strong></p>

<pre class="brush: csharp;">AutoMockContainer
    .Register&lt;IServiceA, ServiceA&gt;()
    .Register&lt;IServiceB, ServiceB&gt;();</pre>

<p><strong>Let me know</strong>: I haven’t tested or played around with how this automocking container deals with any container specific xml configuration… So although I don’t think you should probably have that in a test assembly (stuff happens). Let me know if there are any issues.</p>

<h4>How do I get items out of the container?</h4>

<p>First is the Resolve&lt;T&gt;(). It will pull an item T out of the container. (Creating it if not already existing)</p>

<blockquote>
  <p>public T Resolve&lt;T&gt;()</p>
</blockquote>

<p>When T is an interface Resolve&lt;T&gt; (unless you setup registration specifically with the container) should return basically “(new Mock&lt;T&gt;()).Object”</p>

<p>When T is a concrete Class, the container should return an instance of T and any of it’s dependencies will be satisfied by mocks. (Note that T will not be any sort of mocked instance of T, unless you used the GetMock&lt;T&gt; as described below first)</p>

<blockquote>
  <p>public Mock&lt;T&gt; GetMock&lt;T&gt;() where T : class</p>
</blockquote>

<p>When T is an interface GetMock&lt;T&gt; should return basically “(new Mock&lt;T&gt;())” </p>

<p>When T is a concrete Class, the container should return a new Mock&lt;T&gt;() and any of it’s dependencies will be satisfied by mocks.</p>

<h4>How do I use the UnityAutoMockContainer?</h4>

<p>It’s pretty basic, you first create an instance of the UnityAutoMockContainer, and from there you can ask it for mocks of an (Interface, Class, or Abstract Class).</p>

<p>If you request an instance of a concrete class, or abstract class, the UnityAutoMockContainer will stuff mocks in for any constructor dependencies of your concrete class (if it can). You can then request from the container those same dependencies one at a time and either apply mocking setups or verifications.</p>

<blockquote>
  <p><strong>NOTE:</strong> Anything the container creates will live as a singleton instance in the container. So any other requests from the container will always return the originally created instance. Therefore, each distinct scenario in a test suite should have their own instances of the container.</p>
</blockquote>

<p>Below his an example of how you can leverage the container in some tests. Given this base fixture class…</p>

<pre class="brush: csharp;">public class FixtureBase
{
    private readonly UnityAutoMockContainer _autoMockContainer = new UnityAutoMockContainer();

    protected UnityAutoMockContainer AutoMockContainer
    {
        get { return _autoMockContainer; }
    }

    [TestFixtureSetUp]
    public void SetupContext_ALL()
    {
        Before_all_tests();
        Because();
    }

    [TestFixtureTearDown]
    public void TearDownContext_ALL()
    {
        After_all_tests();
    }

    protected virtual void Before_all_tests()
    {
    }

    protected virtual void Because()
    {
    }

    protected virtual void After_all_tests()
    {
    }
}</pre>

<p>If I were given the following system to test.</p>

<pre class="brush: csharp;">public interface IServiceA { void RunA(); }
public interface IServiceB { void RunB(); }

public class TestComponent
{
    public TestComponent(IServiceA serviceA, IServiceB serviceB)
    {
        ServiceA = serviceA;
        ServiceB = serviceB;
    }

    public IServiceA ServiceA { get; private set; }
    public IServiceB ServiceB { get; private set; }

    public void RunAll()
    {
        if (!HowDidItGo())
            return;
        ServiceA.RunA();
        ServiceB.RunB();
    }

    public virtual bool HowDidItGo()
    {
        // some really nasty untestable code
        return true;
    }
}</pre>

<p>The below example demonstrates simply verifying some behavior on the mocked dependencies of the system under test.</p>

<pre class="brush: csharp;">[TestFixture]
public class Example__how_to_pull_items_from_the_UnityAutoMockContainer_when_verifying_behavior_after_an_action_was_taken 
    : FixtureBase
{
    private TestComponent _testComponent;

    protected override void Before_all_tests()
    {
        base.Before_all_tests();
        _testComponent = AutoMockContainer.Resolve&lt;TestComponent&gt;();
    }

    protected override void Because()
    {
        _testComponent.RunAll();
    }

    [Test]
    public void Should_run_ServiceA_RunA()
    {
        AutoMockContainer
            .GetMock&lt;IServiceA&gt;()
            .Verify(v =&gt; v.RunA(), Times.Once());
    }

    [Test]
    public void Should_run_ServiceB_RunB()
    {
        AutoMockContainer
            .GetMock&lt;IServiceB&gt;()
            .Verify(v =&gt; v.RunB(), Times.Once());
    }
}</pre>

<p>Next, you may have noticed that the system under test had a complicated internal method (that may not necessarily be testable). You can use the AutoMocker to create the system under test as a Mock itself, so we can override some of the behavior. Here’s how you could quickly do that. </p>

<blockquote>
  <p><strong>Aside</strong>: I’m not saying this is a good practice or aids in good component design, just saying it’s possible</p>
</blockquote>

<pre class="brush: csharp;">[TestFixture]
public class Example__how_to_use_the_UnityAutoMockContainer_to_override_a_method_on_the_SystemUnderTest_to_test_a_certain_behavior
    : FixtureBase
{

    private TestComponent _testComponent;

    protected override void Before_all_tests()
    {
        base.Before_all_tests();
        var mockTestComponent = AutoMockContainer.GetMock&lt;TestComponent&gt;();

        mockTestComponent
            .Setup(s =&gt; s.HowDidItGo())
            .Returns(false);

        _testComponent = mockTestComponent.Object;
    }

    protected override void Because()
    {
        _testComponent.RunAll();
    }

    [Test]
    public void Should_run_ServiceA_RunA()
    {
        AutoMockContainer
            .GetMock&lt;IServiceA&gt;()
            .Verify(v =&gt; v.RunA(), Times.Never());
    }

    [Test]
    public void Should_run_ServiceB_RunB()
    {
        AutoMockContainer
            .GetMock&lt;IServiceB&gt;()
            .Verify(v =&gt; v.RunB(), Times.Never());
    }
}</pre>

<p>&#160;</p>

<p>It’s amazing how much redundant test setup code this little helper has saved me in my tests. I hope others can find some use with this as well.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>StatLight &#8211; Goes Open Source</title>
		<link>http://elegantcode.com/2009/12/10/statlight-goes-open-source/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=statlight-goes-open-source</link>
		<comments>http://elegantcode.com/2009/12/10/statlight-goes-open-source/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 03:26:55 +0000</pubDate>
		<dc:creator>Jason Jarrett</dc:creator>
				<category><![CDATA[Esoterica]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/12/10/statlight-goes-open-source/</guid>
		<description><![CDATA[Although I made a very minor attempt at making StatLight a “for-sale” product, I knew when I started that open-source was most likely going to be my long term path for StatLight. What is it? (Silverlight Testing Automation Tool) StatLight is a tool developed for automating the setup, running, and gathering results of Silverlight unit [...]]]></description>
			<content:encoded><![CDATA[Although I made a very minor attempt at making <a href="http://statlight.net" target="_blank">StatLight</a> a “for-sale” product, I knew when I started that open-source was most likely going to be my long term path for <a href="http://statlight.net" target="_blank">StatLight</a>.
<h5>What is it? (Silverlight Testing Automation Tool)</h5>
StatLight is a tool developed for automating the setup, running, and gathering results of Silverlight unit tests. StatLight helps to speed up the feedback cycles while practicing<a href="http://en.wikipedia.org/wiki/Test-driven_development"> TDD</a>/<a href="http://en.wikipedia.org/wiki/Behavior_Driven_Development">BDD</a>/(insert your test style here) during Silverlight development.
<h5>Where can I get StatLight?</h5>
<a href="http://StatLight.CodePlex.com">http://StatLight.CodePlex.com</a>
<h4>Happy Coding !!!</h4>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/12/10/statlight-goes-open-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Removing U3 from Your Thumb Drives</title>
		<link>http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=removing-u3-from-your-thumb-drives</link>
		<comments>http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 18:31:17 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/</guid>
		<description><![CDATA[U3 is a technology used install boot software on thumb drives. Companies use this to ensure that some little application will get loaded or something when you plug their thumb drive into your Windows machine. This can be a favorite move of vendors who give away thumb drives at conferences as swag. They want to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/U3" target="_blank">U3</a> is a technology used install boot software on thumb drives. Companies use this to ensure that some little application will get loaded or something when you plug their thumb drive into your Windows machine.</p>  <p>This can be a favorite move of vendors who give away thumb drives at conferences as swag. They want to launch their little demo app or whatever when you plug in the drive.</p>  <p>It can be very annoying.</p>  <p>I am trying to create a Win7 install thumb drive for my wife’s netbook and I have a great 4G thumb drive to hold the media. Unfortunately, my thumb drive had this U3 stuff on it and won’t work as a boot disc as long as that pesky software is on it.</p>  <p>The simple answer is this little utility: <a href="http://u3uninstall.s3.amazonaws.com/U3Uninstall.exe">U3Uninstall.exe</a>. After running this utility on the thumb drive I have a plain ole storage drive I can use as a Win7 bootable install disc.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Team Build without Tests Lists</title>
		<link>http://elegantcode.com/2009/10/02/team-build-without-tests-lists/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=team-build-without-tests-lists</link>
		<comments>http://elegantcode.com/2009/10/02/team-build-without-tests-lists/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 19:40:04 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[MSDN]]></category>
		<category><![CDATA[Team System]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/10/02/team-build-without-tests-lists/</guid>
		<description><![CDATA[Test lists drive me nuts. I recently recorded a screen cast showing how to pull of CI without the test lists. Here ya go! Here’s a link to the screen cast.]]></description>
			<content:encoded><![CDATA[Test lists drive me nuts. I recently recorded a screen cast showing how to pull of CI without the test lists. Here ya go!

<a href="http://www.pluralsight.com/main/screencasts/screencast.aspx?id=vsts08-continuous-integration" target="_blank">Here’s a link to the screen cast</a>.]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/10/02/team-build-without-tests-lists/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Healthy Team Habits with Team System</title>
		<link>http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=healthy-team-habits-with-team-system</link>
		<comments>http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 19:36:21 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Team System]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/</guid>
		<description><![CDATA[I wrote an article recently for the Pluralsight newsletter discussing how to use a tool like Team System to drive positive organizational change. Here’s a pointer to the article.]]></description>
			<content:encoded><![CDATA[<p>I wrote an article recently for the Pluralsight newsletter discussing how to use a tool like Team System to drive positive organizational change. </p>  <p><a href="http://bit.ly/3CAC8Z" target="_blank">Here’s a pointer to the article</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code Cast 30 &#8211; Story Teller with Jeremy Miller</title>
		<link>http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=code-cast-30-story-teller-with-jeremy-miller</link>
		<comments>http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 17:38:16 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[ALT.NET]]></category>
		<category><![CDATA[CodeCast]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/</guid>
		<description><![CDATA[The venerable Jeremy Miller joined us to talk about YAIJMOSP (Yet Another Impressive Jeremy Miller Open Source Project). This week’s Jeremy project is Story Teller. Jeremy’s other contributions to the community include StructureMap and an obtuse fascination with separation patterns for user interfaces. Story Teller is an alternative for Fitnesse, implemented in .NET and chases [...]]]></description>
			<content:encoded><![CDATA[<p>The venerable Jeremy Miller joined us to talk about YAIJMOSP (Yet Another Impressive Jeremy Miller Open Source Project). This week’s Jeremy project is Story Teller.</p>  <p>Jeremy’s other contributions to the community include <a href="http://codebetter.com/blogs/products/pages/131734.aspx">StructureMap</a> and an <a href="http://www.virtualaltnet.com/Recordings">obtuse fascination with separation patterns</a> for user interfaces.</p>  <p>Story Teller is an alternative for Fitnesse, implemented in .NET and chases the holy grail of executable requirements. If you are interested in how to achieve the promise of shared and executable requirements, this just might be your tool.</p>  <ul>   <li><a href="http://storyteller.tigris.org/">Story Teller</a> </li>    <li><a href="http://codebetter.com/blogs/jeremy.miller/archive/2009/08/24/how-about-a-storyteller-preview-release.aspx">Jeremy’s StoryTeller post on a preview release</a> </li> </ul>  <p><a href="http://pluralsight-free.s3.amazonaws.com/david-starr/ecc/ECC_30_StoryTeller.mp3">Get the show here</a></p>  <p><a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=271207118"><img border="0" alt="View in iTunes" src="http://elegantcode.com/cast/files/images/itunes_button.gif" /></a> <a href="http://feeds2.feedburner.com/elegantcodecast"><img border="0" alt="Any Podcatcher" src="http://elegantcode.com/cast/files/images/rss_podcast.jpg" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
<enclosure url="http://pluralsight-free.s3.amazonaws.com/david-starr/ecc/ECC_30_StoryTeller.mp3" length="36208890" type="audio/mpeg" />
		</item>
		<item>
		<title>Visual Studio Team System for Small Teams</title>
		<link>http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=visual-studio-team-system-for-small-teams</link>
		<comments>http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 23:27:41 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[ALM]]></category>
		<category><![CDATA[Craftsmanship]]></category>
		<category><![CDATA[Source Control]]></category>
		<category><![CDATA[Team System]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/</guid>
		<description><![CDATA[There was a recent brouhaha on Twitter and in some blogs about the appropriateness of Team System in small teams. The gist of the discussion was simply that there are a lot of alternatives to TFS and VSTS tooling and many of them come cheaper out of the box. In many cases, free! Duh. I [...]]]></description>
			<content:encoded><![CDATA[<p>There was a recent brouhaha on Twitter and in some blogs about the appropriateness of Team System in small teams. The gist of the discussion was simply that there are a lot of alternatives to TFS and VSTS tooling and many of them come cheaper out of the box. In many cases, free!</p>  <p>Duh.</p>  <p>I have worked with Team System quite a bit and with alternatives just as much. With a lot of experience behind me on this, I feel confident I can make a legitimate case for using Team System in a small team.</p>  <p>I consider a small team a development organization of fewer than 10 people.</p>  <h3>Some Context and Disclosure</h3>  <ul>   <li>I am a Team System MVP </li>    <li>I use Team System on a daily basis </li>    <li>I use SVN+Team City on a daily basis </li>    <li>I care more about pragmatism and craftsmanship than tooling, and that means focusing on how to use tools, not just the tools themselves </li>    <li>I have been present on day one of a brand new team </li>    <li>I have been in a team that has grown quickly over a short time </li> </ul>  <h3>Focus on the Work</h3>  <p>What happens when teams squabble about tools instead of just getting on with it? Lots of churn and wasted energy, is my experience. </p>  <p>I can report having seen small teams succeed and fail. The success or failure in both cases obviously has a lot more to do with leadership and business than developer tools, but I can also say the way companies approach developer tooling can have a lot to do with culture.</p>  <p>Any startup or small team simply <em>must</em> be focused to succeed. This can also be extremely difficult to achieve. A small team simply doesn’t have the capacity or depth to be distracted with issues not pertaining to delivering product. Paradoxically, team members are often wearing several hats. That is, everyone is doing a little of everything. That can quickly trend to entropy, because no one ends focusing on the work at hand.</p>  <p>The last thing I want to do on day 1 of a new team, or very often in a small teams, is visit tooling. Not deliberately making choices about tooling, though, will eventually bite you. Hard. How many of us are in organizations with over 2 brands of source control systems because new ones were added in an ad-hoc manor? I’ve been there. How many unit test frameworks are being used? I have been on a team that used 4 at once. Think that caused some problems?</p>  <p>As team lead, I care far less about optimizations of specific tools, and far more about a cohesive and fluid process enabling flow within the team. I care a great deal that there is a single source of truth for requirements and very little that we are using the coolest new unit test framework.</p>  <p>Often, focusing on work simply means implementing a system of tools and getting past the discussion. Have you ever heard developers purse fight over text editors? Now, there’s a constructive use of energy. The same thing can happen when geeks whip out their favorite source control, merge tools, unit testing frameworks, Visual Studio add-ins, logging library, laptop brand, or bug tracking system. </p>  <p>Point number one is let’s get past the time suck of the my-NAnt-is-better-than-your-MS-Build and just prescribe a toolset so we can get on with the real business of our team. </p>  <h3>Team System is Like a Box of Tools at Sears</h3>  <p>When I go to Sears and browse the Craftsman (or DeWalt) tools, I usually see some interesting little specialty tools. I might buy a funky swivel socket or a single ratchet, but I rarely browse the aisle with the large all-in-one kits. The reason I don’t browse the kit aisle is because my father-in-law bought be a basic Craftsman starter kit almost 20 years ago and my collection of tools has grown over time. </p>  <p>I don’t still have all of the tools in that original kit, but I do still have many of them. Further, my need for hand tools have gotten more specialized over time. Also, I am making a bit more money than I was when I married my wife, so I may spend extra for a special-purpose hammer rather than always relying on the one that came in the original kit.</p>  <p>Without that original kit, though, I would never have been able to even get started. No, it didn’t have every tool I would ever need, but it had almost everything I needed right then.</p>  <p>Team System is much the same. A team can absolutely hit the ground running with the rich toolset VSTS provides. Maybe you’ll augment the toolbox over time. Maybe you’ll even change tools (can anyone say [TestClass]?) but the kit that comes in the box really can provide most of what a small team needs to get going, and do it in a single solution.</p>  <p>That’s huge. </p>  <p>As soon as I start looking around to sub-optimize my hammer or my source control, I am going to start slowing the team down. GIT? SVN? PerForce? There are a ton of options for source control, each with their strengths and weaknesses. It’s freaking source control. Get on with it. I mean, how sexy can a hammer be?</p>  <h3>It May Not Cost What You Think</h3>  <p>You can buy a big toolkit at Sears for far less than it costs to buy all the tools individually. Further, buying the toolkit for the person without tools is a good move because they will have all the basics covered in a single purchase. </p>  <p>Craftsman Toolkits are a favorite gift of mine for graduates and newlyweds for this very reason.</p>  <p>Microsoft has the same insight that Sears had. If a person gets accustomed to Craftsman by selling the kit cheaply, they’ll be a customer for life. This is the exact idea behind the BizSpark program. If you aren’t familiar with it, BizSpark is a Microsoft program that allows free (that’s right, free!) access to all developer tools, operating systems, and other software for startups.</p>  <p>Is your company less than 2 years old? Do you make software? If yes, you qualify, I kid you not.</p>  <h3>Integration Matters</h3>  <p>Even if you are paying full price (which you shouldn’t :) ) I believe the value of VSTS is still there. The productivity loss involved in setting up a system of disparate and non-integrated developer tools is tremendous. I have been there and done that.</p>  <p>I know SVN is good. I know Team City is good. I also know that setting up a basic Continuous Integration build in Team System is stupid simple. And the real money shot comes with Work Item management. How many teams out there are using work item management systems or defect tracking systems they hate?</p>  <p>Well, we all are. </p>  <p>So, we may as well have one that works right in the IDE and allows me to tie check ins to work I am performing. The context switching that occurs in non-integrated systems of reporting, SCC, build, and work item management is HUGE. Huge! No really. </p>  <h3>Get On With It</h3>  <p>The people involved in the recent online Team System kerfuffle are folks I would consider in the top 1% of developer talent. Quite frankly, it makes a lot of sense to me that people at that level will have replaced their hammer from the kit with one that has an ergonomic grip.</p>  <p>That said, there are a lot of startups and small teams in entropy out there. For those folks, I firmly believe that standardizing on an integrated toolset for the development team is a bigger savings than “free like a puppy” solutions that can work well, but with more churn.</p>  <p>Now quit fussing about source control and learn how to use a decent ORM, people.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Implementing Team City for .NET Projects, Part 5: Deployments</title>
		<link>http://elegantcode.com/2009/10/02/team-build-without-tests-lists/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=team-build-without-tests-lists</link>
		<comments>http://elegantcode.com/2009/10/02/team-build-without-tests-lists/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 19:40:04 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[MSDN]]></category>
		<category><![CDATA[Team System]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/10/02/team-build-without-tests-lists/</guid>
		<description><![CDATA[Test lists drive me nuts. I recently recorded a screen cast showing how to pull of CI without the test lists. Here ya go! Here’s a link to the screen cast.]]></description>
			<content:encoded><![CDATA[Test lists drive me nuts. I recently recorded a screen cast showing how to pull of CI without the test lists. Here ya go!

<a href="http://www.pluralsight.com/main/screencasts/screencast.aspx?id=vsts08-continuous-integration" target="_blank">Here’s a link to the screen cast</a>.]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/10/02/team-build-without-tests-lists/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Elegant Code &#187; Tools and Utilities</title>
	<atom:link href="http://elegantcode.com/category/tools-and-utilities/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com</link>
	<description></description>
	<lastBuildDate>Tue, 15 May 2012 10:00:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Buy Clonidine Without Prescription</title>
		<link>http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=moving-from-e-texteditor-to-sublime-text-2</link>
		<comments>http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/#comments</comments>
		<pubDate>Fri, 05 Aug 2011 23:45:32 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[CoffeeScript]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/</guid>
		<description><![CDATA[I’ve been using E-TextEditor Buy Clonidine Without Prescription, for more than a year now for doing all my JavaScript, Node.js and CoffeeScript development. Clonidine from mexico, You can think of E-TextEditor as TextMate for the Windows platform. I’ve been pretty happy with it throughout this period as it can be extended pretty easily with a [...]]]></description>
			<content:encoded><![CDATA[<p> <p align="justify">I’ve been using <a href="http://www.e-texteditor.com/" target="_blank">E-TextEditor</a> <b>Buy Clonidine Without Prescription</b>, for more than a year now for doing all my JavaScript, Node.js and CoffeeScript development.  <b>Clonidine from mexico</b>, You can think of E-TextEditor as <a href="http://macromates.com/" target="_blank">TextMate</a> for the Windows platform. I’ve been pretty happy with it throughout this period as it can be extended pretty easily with a whole slew of bundles that are already available for TextMate, <b>cheap Clonidine</b>.  <b>Clonidine recreational</b>, E-TextEditor requires you to install <a href="http://www.cygwin.com/" target="_blank">Cygwin</a> which happens automatically during installation. Using the Cygwin command-line gave me enough (re-)exposure to a Linux-like environment in order for me wanting to (re-)learn about this other platform, <b>purchase Clonidine for sale</b>. More on that in later blog posts, <b>Buy Clonidine Without Prescription</b>.  <b>Low dose Clonidine</b>, Although there haven’t been any new versions of E-TextEditor for quite some time now, the current version enabled me to write JavaScript code in a productive way.</p>  <p align="justify">Only recently I found out about another editor called <a href="http://www.sublimetext.com/2" target="_blank">Sublime Text 2</a> (thanks to <a href="http://twitter.com/#!/casualjim" target="_blank">Ivan Porto Carrero</a>), <b>Clonidine description</b>.  <b>Clonidine overnight</b>, I downloaded this text editor in order to give it a try and I must say that I haven’t opened E-TextEditor ever since. This second version of Sublime Text is still in development but it’s pretty stable as I haven’t run into any issues so far, <b>Clonidine no prescription</b>.  <b>Clonidine brand name</b>, The cool part is that this editor is available for both Windows, Linux and OS X which enabled me to move all my Node.js and CoffeeScript development from Cygwin on Windows to Ubuntu Linux.&#160; </p>  <p align="justify">CoffeeScript isn’t supported out-of-the-box (yet), <b>purchase Clonidine</b>, <b>Clonidine gel, ointment, cream, pill, spray, continuous-release, extended-release</b>, so I installed the <a href="https://github.com/jashkenas/coffee-script-tmbundle" target="_blank">CoffeeScript&#160; TextMate bundle</a> written by <a href="http://ashkenas.com/" target="_blank">Jeremy Ashkenas</a> (yes, the same one from the <a href="http://jashkenas.github.com/coffee-script/" target="_blank">CoffeeScript</a> and <a href="http://documentcloud.github.com/backbone/" target="_blank">Backbone.js</a> fame), <b>Clonidine long term</b>.  Also check out <a href="https://github.com/jashkenas/coffee-script/wiki/Text-editor-plugins" target="_blank">this page on the CoffeeScript wiki</a> for more information on how to bring some CoffeeScript happiness to your own favorite text editor.</p>  <p align="justify"> <b>Buy Clonidine Without Prescription</b>, Setting up this TextMate bundle for use with Sublime Text 2 was actually pretty easy.  <b>Clonidine canada, mexico, india</b>, Just navigate to <em>/home/&lt;my_user_name&gt;/.config/sublime-text-2/Packages</em> in a terminal (or the corresponding file path on Windows) and clone the source of the CoffeeScript TextMate bundle using git: </p>  <blockquote>   <p align="justify"><em>git clone git://github.com/jashkenas/coffee-script-tmbundle CoffeeScript</em></p> </blockquote>  <p align="justify">Next close all the .coffee files and restart Sublime Text 2. Now we have some nice syntax highlighting and some useful code snippets at our disposal.&#160; </p>  <p align="justify"><a href="http://elegantcode.com/wp-content/uploads/2011/08/image.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://elegantcode.com/wp-content/uploads/2011/08/image_thumb.png" width="600" height="396" /></a></p>  <p>It's also possible to hook into <a href="http://sublimetext.info/docs/en/reference/build_systems.html" target="_blank">the build system</a> of Sublime Text 2, <b>Clonidine australia, uk, us, usa</b>.  <b>Clonidine blogs</b>, You just need to create a new file named <em>CoffeeScript.sublime-build</em> at the following location: </p>  <blockquote>   <p><em>/home/&lt;my_user_name&gt;/.config/sublime-text-2/Packages/User&#160; </em></p> </blockquote>  <p align="justify">You can add the following to this new file for compiling CoffeeScript</p>  <pre style="width: 100%; height: 85px" class="csharpcode">{     <span class="str">&quot;cmd&quot;</span>: [<span class="str">&quot;coffee&quot;</span>, <span class="str">&quot;-c&quot;</span>, <b>Clonidine from canada</b>, <b>Is Clonidine addictive</b>, <span class="str">&quot;$file&quot;</span>],     <span class="str">&quot;selector&quot;</span> : <span class="str">&quot;source.coffee&quot;</span>, <b>Clonidine pharmacy</b>, <b>Ordering Clonidine online</b>, <span class="str">&quot;path&quot;</span> : <span class="str">&quot;/usr/local/bin&quot;</span>}</pre><style type="text/css">.csharpcode, .csharpcode pre{	font-size: small;	color: black;	font-family: consolas, <b>Clonidine without prescription</b>, <b>Clonidine no rx</b>, "Courier New", courier, <b>buy no prescription Clonidine online</b>, <b>Clonidine street price</b>, monospace;	background-color: #ffffff;	/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt<br />
{	background-color: #f4f4f4;	width: 100%;	margin: 0em;}.csharpcode .lnum { color: #606060; }</style>or the following for executing/running CoffeeScript code.</p>
<p><pre style="width: 100%; height: 85px" class="csharpcode">{     <span class="str">&quot;cmd&quot;</span>: [<span class="str">&quot;coffee&quot;</span>, <b>Clonidine for sale</b>, <b>What is Clonidine</b>, <span class="str">&quot;$file&quot;</span>],     <span class="str">&quot;selector&quot;</span> : <span class="str">&quot;source.coffee&quot;</span>, <b>get Clonidine</b>, <b>Clonidine class</b>, <span class="str">&quot;path&quot;</span> : <span class="str">&quot;/usr/local/bin&quot;</span>}</pre></p>
<p><p align="justify">Now when you hit F7, this fresh build command is executed when a CoffeeScript source file is showing in the active tab, <b>cheap Clonidine no rx</b>.  It’s also possible to change the build short-key to your own taste through the <em>Preferences</em> menu, <b>Buy Clonidine Without Prescription</b>.  <b>Fast shipping Clonidine</b>, <style type="text/css">.csharpcode, .csharpcode pre{	font-size: small;	color: black;	font-family: consolas, <b>buy Clonidine from canada</b>, <b>Clonidine without a prescription</b>, "Courier New", courier, <b>purchase Clonidine online no prescription</b>, <b>Effects of Clonidine</b>, monospace;	background-color: #ffffff;	/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt<br />
{	background-color: #f4f4f4;	width: 100%;	margin: 0em;}.csharpcode .lnum { color: #606060; }</style></p></p>
<p><p align="justify">Unfortunately, there’s only one build command as I would love to create a separate command for compiling and running CoffeeScript code (or perhaps I missed this feature during the excitement <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://elegantcode.com/wp-content/uploads/2011/08/wlEmoticon-winkingsmile.png" />), <b>buy generic Clonidine</b>.  <b>Is Clonidine safe</b>, </p></p>
<p><p align="justify">Some more usage is definitely needed for me to learn more about this excellent text editor, but currently I’m pretty happy with it, <b>Clonidine trusted pharmacy reviews</b>.  <b>Taking Clonidine</b>, I also need to find out how well JavaScript is supported and perhaps see how far one can go when doing some C# development using Mono. I expect that there are a good number of productive features in there for me to discover.</p></p>
<p><p align="justify">I encourage you have a decent look at this excellent tool, <b>Clonidine dangers</b>.  <b>Order Clonidine from mexican pharmacy</b>, </p></p>
<p><p align="justify">Until next time.</p>.  Herbal Clonidine.</p>
<p></p>
<p><b>Similar posts:</b> <a href='http://elegantcode.com/?p=4452'>Stromectol For Sale</a>. <a href='http://elegantcode.com/?p=4867'>Buy Soma Without Prescription</a>. <a href='http://elegantcode.com/?p=4758'>Buy Atenolol Without Prescription</a>. <a href='http://elegantcode.com/?p=4553'>Buy Female Pink Viagra Without Prescription</a>. <a href='http://elegantcode.com/?p=4560'>Vermox For Sale</a>. <a href='http://elegantcode.com/?p=4662'>Where can i buy cheapest Antabuse online</a>. <a href='http://elegantcode.com/?p=4508'>Slimex (Obetrim) photos</a>. <a href='http://elegantcode.com/?p=4623'>Augmentin description</a>. <a href='http://elegantcode.com/?p=4752'>Buy Colchicine no prescription</a>. <a href='http://elegantcode.com/?p=4322'>Clonidine natural</a>.<br />
<b>Trackbacks from:</b> <a href='http://evanrapoport.com/?p=429'>Buy Clonidine Without Prescription</a>. <a href='http://www.themusclecarplace.com/?p=5350'>Buy Clonidine Without Prescription</a>. <a href='http://changecamp.ca/?p=578'>Buy Clonidine Without Prescription</a>. <a href='http://blog.farmland.org/?p=3172'>Buy Clonidine Without Prescription</a>. <a href='http://home.officesnapshots.com/?p=175'>Buy Clonidine Without Prescription</a>. <a href='http://www.thegriffonnews.com/?p=9699'>Kjøpe Clonidine på nett, köpa Clonidine online</a>. <a href='http://www.quarterlives.com/?p=831'>Buy cheap Clonidine no rx</a>. <a href='http://www.greatgreengoods.com/?p=3511'>Clonidine use</a>. <a href='http://www.macneilbmx.com/blog/?p=5325'>Clonidine no rx</a>. <a href='http://social-blend.com/?p=482'>Online buying Clonidine hcl</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>AutoTest.NET</title>
		<link>http://elegantcode.com/2010/11/30/autotest-net/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=autotest-net</link>
		<comments>http://elegantcode.com/2010/11/30/autotest-net/#comments</comments>
		<pubDate>Tue, 30 Nov 2010 11:00:00 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[TDD]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/11/30/autotest-net/</guid>
		<description><![CDATA[I just want to quickly point out a tool that I’ve been playing with for a couple of days now, named AutoTest.NET. Its an open-source tool that originates from a popular tool in the Ruby community called ZenTest, which basically runs all your valuable unit tests when you save your source files or when you [...]]]></description>
			<content:encoded><![CDATA[<p>I just want to quickly point out a tool that I’ve been playing with for a couple of days now, named <a href="https://github.com/acken/AutoTest.Net" target="_blank">AutoTest.NET</a>. Its an open-source tool that originates from a popular tool in the Ruby community called <a href="http://www.zenspider.com/ZSS/Products/ZenTest/" target="_blank">ZenTest</a>, which basically runs all your valuable unit tests when you save your source files or when you build your code. It enables you to get feedback about your changes as soon as possible.</p>  <p>The project started out a couple of years ago on <a href="http://code.google.com/p/autotestnet/" target="_blank">Google code</a> and was first initiated by <a href="http://averyblog.com/" target="_blank">James Avery</a>. Contribution stopped at some point until recently where <a href="http://ackenpacken.blogspot.com/" target="_blank">Svein Arne Ackenhausen</a> forked the source code and <a href="https://github.com/acken/AutoTest.Net" target="_blank">put it on GitHub</a>. Now it runs both for .NET as well as Mono, with NUnit, MSTest and xUnit as the currently supported unit test frameworks. </p>  <p>Here’s a screenshot from the feedback window when all tests pass:</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2010/11/Success.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Success" border="0" alt="Success" src="http://elegantcode.com/wp-content/uploads/2010/11/Success_thumb.png" width="540" height="189" /></a> </p>  <p>And here you can see the same window after I broke one of my unit tests:</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2010/11/Failure.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Failure" border="0" alt="Failure" src="http://elegantcode.com/wp-content/uploads/2010/11/Failure_thumb.png" width="538" height="319" /></a> </p>  <p>Here you can see which particular unit test has been broken and by clicking the specified link you end up at the right source file in Visual Studio. </p>  <p>I encourage you to pick up this small tool and learn how it can facilitate your TDD flow. Take a look at <a href="https://github.com/acken/AutoTest.Net/wiki/Get-started!" target="_blank">this page</a> in order to get up-and-running in no time. Also don’t forget to provide the owner(s) of this project with some feedback that you might have. Svein has been very helpful over the last week answering all my stupid questions and remarks (and the Nobel price for this year’s most patient person goes to … ;-) ). </p>  <p>I would definitely like to see this tool becoming more popular, so go check it out.&#160;&#160; </p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/11/30/autotest-net/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Unity/Moq &#8211; AutoMocker or AutoMockingContainer</title>
		<link>http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=unitymoq-automocker-or-automockingcontainer</link>
		<comments>http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 16:52:33 +0000</pubDate>
		<dc:creator>Jason Jarrett</dc:creator>
				<category><![CDATA[TDD]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/</guid>
		<description><![CDATA[What is an Auto Mocking Container? This post started to get a little long, so I won’t re-explain the concept. Joshua Flanagan wrote a nice overview at his Los Techies blog: Auto mocking Explained. My post is mainly here to describe the Unity version of an automocking container I threw together. In Jan 2009 I [...]]]></description>
			<content:encoded><![CDATA[<h4>What is an Auto Mocking Container?</h4>  <p>This post started to get a little long, so I won’t re-explain the concept.</p>  <p><a href="http://www.lostechies.com/blogs/joshuaflanagan/default.aspx">Joshua Flanagan</a> wrote a nice overview at his <a href="http://www.lostechies.com/">Los Techies</a> blog: <a href="http://www.lostechies.com/blogs/joshuaflanagan/archive/2009/02/03/auto-mocking-explained.aspx"><strong>Auto mocking Explained</strong></a>.</p>  <p>My post is mainly here to describe the Unity version of an automocking container I threw together.</p>  <h4>In Jan 2009 I blogged about my initial version of the Unity AutoMocker - Why am I blogging about it again?</h4>  <p>I originally wrote the AutoMocker for the Unity container a year ago (Jan 2009, in Silverlight), and finally got around to placing the code up in the <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a> project in June of 2009.</p>  <p>I’m writing another post today in hopes to:</p>  <ol>   <li>Get some feedback on how this little snippet of code should continue. </li>    <li>Give a little more how-to/example code </li>    <li>Describe some updates I made since I originally created it.&#160; </li> </ol>  <h4>Where can I get it?</h4>  <p><strong>This is one part where I’d appreciate some feedback.</strong></p>  <p>I have two slightly different versions out there (currently).</p>  <p>I have one version at the <a href="http://code.google.com/p/elegantcode/source/browse/#svn/trunk/Coders/JasonJarrett/UnityAutoMocker">ElegantCode</a> repository where I was working on it, and the other I threw up at <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a>.</p>  <p>The core of the UnityAutoMockContainer is the same in both places, it’s how the tests are separated out that differ.</p>  <p>In the <a href="http://code.google.com/p/elegantcode/source/browse/#svn/trunk/Coders/JasonJarrett/UnityAutoMocker">ElegantCode repository</a> it’s an all in one self contained single file (that you can copy into your own test project(s)). You can then setup a single test in your own testing framework that runs all internal automocker tests (in case you need to modify it yourself, and don’t want to break any existing functionality). EX: test</p>  <pre class="brush: csharp;">[Test]
public void Should_run_all_UnityAutoMockContainer_internal_tests()
{
    Moq.AutoMocking.SelfTesting.UnityAutoMockContainerFixture
        .RunAllTests(Console.WriteLine);
}</pre>

<p>I kind of like this format as it makes it easy to port between test libraries. Can’t say I like having the tests in the same file as the core, but it certainly is not a large chunk of code (so far) so it’s relatively small to maintain and definitely easier to manage as a single .cs file than another assembly (which would have to be version dependent on both Unity and Moq).</p>

<p>The <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a> is definitely where I think this helper should end up (and it is there). I just happened to break the tests out into the Silverlight test project and the core is alone in a file. </p>

<p>It’s current state isn’t as easy to copy to a test library (Silverlight/Desktop/Unity 1.2/Unity 2.0) as the one at <a href="http://elegantcode.com/">ElegantCode</a>. <strong>What does anyone think?</strong> Should I put them all together in one file?</p>

<p>However it ends up (1. all in one file or two (1 test) (1 core)) it will continue to be maintained on the <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a> project.</p>

<h4>What is the high level API of the container?</h4>

<p>It’s pretty simple, (currently) there are four methods on the container.</p>

<p><strong>Two for registering items with the container</strong>. Say you want to register an already created instance, or say you want to map an interface to a concrete class and _not_ have the container generate mocks automatically for special cases. </p>

<p>And <strong>two for pulling items out of the container</strong>. Whether you want a instance of T or a Mock&lt;T&gt;, it gives you ways to retrieve both.</p>

<blockquote>
  <p><a href="http://elegantcode.com/wp-content/uploads/2010/01/image.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://elegantcode.com/wp-content/uploads/2010/01/image_thumb.png" width="396" height="106" /></a> </p>
</blockquote>

<h4>How can I setup my own registrations with the container? </h4>

<p>Say I don’t want to have the container generate mocks for specific items and I want to supply specific configuration to the UnityContainer.</p>

<blockquote>
  <p>public UnityAutoMockContainer RegisterInstance&lt;TService&gt;(TService instance)</p>

  <p>public UnityAutoMockContainer Register&lt;TService, TImplementation&gt;() 
    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; where TImplementation : TService</p>
</blockquote>

<p><strong>Note</strong>: both of these registration methods return the container itself so you can fluently stack registration. <strong>EX:</strong></p>

<pre class="brush: csharp;">AutoMockContainer
    .Register&lt;IServiceA, ServiceA&gt;()
    .Register&lt;IServiceB, ServiceB&gt;();</pre>

<p><strong>Let me know</strong>: I haven’t tested or played around with how this automocking container deals with any container specific xml configuration… So although I don’t think you should probably have that in a test assembly (stuff happens). Let me know if there are any issues.</p>

<h4>How do I get items out of the container?</h4>

<p>First is the Resolve&lt;T&gt;(). It will pull an item T out of the container. (Creating it if not already existing)</p>

<blockquote>
  <p>public T Resolve&lt;T&gt;()</p>
</blockquote>

<p>When T is an interface Resolve&lt;T&gt; (unless you setup registration specifically with the container) should return basically “(new Mock&lt;T&gt;()).Object”</p>

<p>When T is a concrete Class, the container should return an instance of T and any of it’s dependencies will be satisfied by mocks. (Note that T will not be any sort of mocked instance of T, unless you used the GetMock&lt;T&gt; as described below first)</p>

<blockquote>
  <p>public Mock&lt;T&gt; GetMock&lt;T&gt;() where T : class</p>
</blockquote>

<p>When T is an interface GetMock&lt;T&gt; should return basically “(new Mock&lt;T&gt;())” </p>

<p>When T is a concrete Class, the container should return a new Mock&lt;T&gt;() and any of it’s dependencies will be satisfied by mocks.</p>

<h4>How do I use the UnityAutoMockContainer?</h4>

<p>It’s pretty basic, you first create an instance of the UnityAutoMockContainer, and from there you can ask it for mocks of an (Interface, Class, or Abstract Class).</p>

<p>If you request an instance of a concrete class, or abstract class, the UnityAutoMockContainer will stuff mocks in for any constructor dependencies of your concrete class (if it can). You can then request from the container those same dependencies one at a time and either apply mocking setups or verifications.</p>

<blockquote>
  <p><strong>NOTE:</strong> Anything the container creates will live as a singleton instance in the container. So any other requests from the container will always return the originally created instance. Therefore, each distinct scenario in a test suite should have their own instances of the container.</p>
</blockquote>

<p>Below his an example of how you can leverage the container in some tests. Given this base fixture class…</p>

<pre class="brush: csharp;">public class FixtureBase
{
    private readonly UnityAutoMockContainer _autoMockContainer = new UnityAutoMockContainer();

    protected UnityAutoMockContainer AutoMockContainer
    {
        get { return _autoMockContainer; }
    }

    [TestFixtureSetUp]
    public void SetupContext_ALL()
    {
        Before_all_tests();
        Because();
    }

    [TestFixtureTearDown]
    public void TearDownContext_ALL()
    {
        After_all_tests();
    }

    protected virtual void Before_all_tests()
    {
    }

    protected virtual void Because()
    {
    }

    protected virtual void After_all_tests()
    {
    }
}</pre>

<p>If I were given the following system to test.</p>

<pre class="brush: csharp;">public interface IServiceA { void RunA(); }
public interface IServiceB { void RunB(); }

public class TestComponent
{
    public TestComponent(IServiceA serviceA, IServiceB serviceB)
    {
        ServiceA = serviceA;
        ServiceB = serviceB;
    }

    public IServiceA ServiceA { get; private set; }
    public IServiceB ServiceB { get; private set; }

    public void RunAll()
    {
        if (!HowDidItGo())
            return;
        ServiceA.RunA();
        ServiceB.RunB();
    }

    public virtual bool HowDidItGo()
    {
        // some really nasty untestable code
        return true;
    }
}</pre>

<p>The below example demonstrates simply verifying some behavior on the mocked dependencies of the system under test.</p>

<pre class="brush: csharp;">[TestFixture]
public class Example__how_to_pull_items_from_the_UnityAutoMockContainer_when_verifying_behavior_after_an_action_was_taken 
    : FixtureBase
{
    private TestComponent _testComponent;

    protected override void Before_all_tests()
    {
        base.Before_all_tests();
        _testComponent = AutoMockContainer.Resolve&lt;TestComponent&gt;();
    }

    protected override void Because()
    {
        _testComponent.RunAll();
    }

    [Test]
    public void Should_run_ServiceA_RunA()
    {
        AutoMockContainer
            .GetMock&lt;IServiceA&gt;()
            .Verify(v =&gt; v.RunA(), Times.Once());
    }

    [Test]
    public void Should_run_ServiceB_RunB()
    {
        AutoMockContainer
            .GetMock&lt;IServiceB&gt;()
            .Verify(v =&gt; v.RunB(), Times.Once());
    }
}</pre>

<p>Next, you may have noticed that the system under test had a complicated internal method (that may not necessarily be testable). You can use the AutoMocker to create the system under test as a Mock itself, so we can override some of the behavior. Here’s how you could quickly do that. </p>

<blockquote>
  <p><strong>Aside</strong>: I’m not saying this is a good practice or aids in good component design, just saying it’s possible</p>
</blockquote>

<pre class="brush: csharp;">[TestFixture]
public class Example__how_to_use_the_UnityAutoMockContainer_to_override_a_method_on_the_SystemUnderTest_to_test_a_certain_behavior
    : FixtureBase
{

    private TestComponent _testComponent;

    protected override void Before_all_tests()
    {
        base.Before_all_tests();
        var mockTestComponent = AutoMockContainer.GetMock&lt;TestComponent&gt;();

        mockTestComponent
            .Setup(s =&gt; s.HowDidItGo())
            .Returns(false);

        _testComponent = mockTestComponent.Object;
    }

    protected override void Because()
    {
        _testComponent.RunAll();
    }

    [Test]
    public void Should_run_ServiceA_RunA()
    {
        AutoMockContainer
            .GetMock&lt;IServiceA&gt;()
            .Verify(v =&gt; v.RunA(), Times.Never());
    }

    [Test]
    public void Should_run_ServiceB_RunB()
    {
        AutoMockContainer
            .GetMock&lt;IServiceB&gt;()
            .Verify(v =&gt; v.RunB(), Times.Never());
    }
}</pre>

<p>&#160;</p>

<p>It’s amazing how much redundant test setup code this little helper has saved me in my tests. I hope others can find some use with this as well.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>StatLight &#8211; Goes Open Source</title>
		<link>http://elegantcode.com/2009/12/10/statlight-goes-open-source/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=statlight-goes-open-source</link>
		<comments>http://elegantcode.com/2009/12/10/statlight-goes-open-source/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 03:26:55 +0000</pubDate>
		<dc:creator>Jason Jarrett</dc:creator>
				<category><![CDATA[Esoterica]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/12/10/statlight-goes-open-source/</guid>
		<description><![CDATA[Although I made a very minor attempt at making StatLight a “for-sale” product, I knew when I started that open-source was most likely going to be my long term path for StatLight. What is it? (Silverlight Testing Automation Tool) StatLight is a tool developed for automating the setup, running, and gathering results of Silverlight unit [...]]]></description>
			<content:encoded><![CDATA[Although I made a very minor attempt at making <a href="http://statlight.net" target="_blank">StatLight</a> a “for-sale” product, I knew when I started that open-source was most likely going to be my long term path for <a href="http://statlight.net" target="_blank">StatLight</a>.
<h5>What is it? (Silverlight Testing Automation Tool)</h5>
StatLight is a tool developed for automating the setup, running, and gathering results of Silverlight unit tests. StatLight helps to speed up the feedback cycles while practicing<a href="http://en.wikipedia.org/wiki/Test-driven_development"> TDD</a>/<a href="http://en.wikipedia.org/wiki/Behavior_Driven_Development">BDD</a>/(insert your test style here) during Silverlight development.
<h5>Where can I get StatLight?</h5>
<a href="http://StatLight.CodePlex.com">http://StatLight.CodePlex.com</a>
<h4>Happy Coding !!!</h4>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/12/10/statlight-goes-open-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Removing U3 from Your Thumb Drives</title>
		<link>http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=removing-u3-from-your-thumb-drives</link>
		<comments>http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 18:31:17 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/</guid>
		<description><![CDATA[U3 is a technology used install boot software on thumb drives. Companies use this to ensure that some little application will get loaded or something when you plug their thumb drive into your Windows machine. This can be a favorite move of vendors who give away thumb drives at conferences as swag. They want to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/U3" target="_blank">U3</a> is a technology used install boot software on thumb drives. Companies use this to ensure that some little application will get loaded or something when you plug their thumb drive into your Windows machine.</p>  <p>This can be a favorite move of vendors who give away thumb drives at conferences as swag. They want to launch their little demo app or whatever when you plug in the drive.</p>  <p>It can be very annoying.</p>  <p>I am trying to create a Win7 install thumb drive for my wife’s netbook and I have a great 4G thumb drive to hold the media. Unfortunately, my thumb drive had this U3 stuff on it and won’t work as a boot disc as long as that pesky software is on it.</p>  <p>The simple answer is this little utility: <a href="http://u3uninstall.s3.amazonaws.com/U3Uninstall.exe">U3Uninstall.exe</a>. After running this utility on the thumb drive I have a plain ole storage drive I can use as a Win7 bootable install disc.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Team Build without Tests Lists</title>
		<link>http://elegantcode.com/2009/10/02/team-build-without-tests-lists/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=team-build-without-tests-lists</link>
		<comments>http://elegantcode.com/2009/10/02/team-build-without-tests-lists/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 19:40:04 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[MSDN]]></category>
		<category><![CDATA[Team System]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/10/02/team-build-without-tests-lists/</guid>
		<description><![CDATA[Test lists drive me nuts. I recently recorded a screen cast showing how to pull of CI without the test lists. Here ya go! Here’s a link to the screen cast.]]></description>
			<content:encoded><![CDATA[Test lists drive me nuts. I recently recorded a screen cast showing how to pull of CI without the test lists. Here ya go!

<a href="http://www.pluralsight.com/main/screencasts/screencast.aspx?id=vsts08-continuous-integration" target="_blank">Here’s a link to the screen cast</a>.]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/10/02/team-build-without-tests-lists/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Healthy Team Habits with Team System</title>
		<link>http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=healthy-team-habits-with-team-system</link>
		<comments>http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 19:36:21 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Team System]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/</guid>
		<description><![CDATA[I wrote an article recently for the Pluralsight newsletter discussing how to use a tool like Team System to drive positive organizational change. Here’s a pointer to the article.]]></description>
			<content:encoded><![CDATA[<p>I wrote an article recently for the Pluralsight newsletter discussing how to use a tool like Team System to drive positive organizational change. </p>  <p><a href="http://bit.ly/3CAC8Z" target="_blank">Here’s a pointer to the article</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code Cast 30 &#8211; Story Teller with Jeremy Miller</title>
		<link>http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=code-cast-30-story-teller-with-jeremy-miller</link>
		<comments>http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 17:38:16 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[ALT.NET]]></category>
		<category><![CDATA[CodeCast]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/</guid>
		<description><![CDATA[The venerable Jeremy Miller joined us to talk about YAIJMOSP (Yet Another Impressive Jeremy Miller Open Source Project). This week’s Jeremy project is Story Teller. Jeremy’s other contributions to the community include StructureMap and an obtuse fascination with separation patterns for user interfaces. Story Teller is an alternative for Fitnesse, implemented in .NET and chases [...]]]></description>
			<content:encoded><![CDATA[<p>The venerable Jeremy Miller joined us to talk about YAIJMOSP (Yet Another Impressive Jeremy Miller Open Source Project). This week’s Jeremy project is Story Teller.</p>  <p>Jeremy’s other contributions to the community include <a href="http://codebetter.com/blogs/products/pages/131734.aspx">StructureMap</a> and an <a href="http://www.virtualaltnet.com/Recordings">obtuse fascination with separation patterns</a> for user interfaces.</p>  <p>Story Teller is an alternative for Fitnesse, implemented in .NET and chases the holy grail of executable requirements. If you are interested in how to achieve the promise of shared and executable requirements, this just might be your tool.</p>  <ul>   <li><a href="http://storyteller.tigris.org/">Story Teller</a> </li>    <li><a href="http://codebetter.com/blogs/jeremy.miller/archive/2009/08/24/how-about-a-storyteller-preview-release.aspx">Jeremy’s StoryTeller post on a preview release</a> </li> </ul>  <p><a href="http://pluralsight-free.s3.amazonaws.com/david-starr/ecc/ECC_30_StoryTeller.mp3">Get the show here</a></p>  <p><a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=271207118"><img border="0" alt="View in iTunes" src="http://elegantcode.com/cast/files/images/itunes_button.gif" /></a> <a href="http://feeds2.feedburner.com/elegantcodecast"><img border="0" alt="Any Podcatcher" src="http://elegantcode.com/cast/files/images/rss_podcast.jpg" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
<enclosure url="http://pluralsight-free.s3.amazonaws.com/david-starr/ecc/ECC_30_StoryTeller.mp3" length="36208890" type="audio/mpeg" />
		</item>
		<item>
		<title>Visual Studio Team System for Small Teams</title>
		<link>http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=visual-studio-team-system-for-small-teams</link>
		<comments>http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 23:27:41 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[ALM]]></category>
		<category><![CDATA[Craftsmanship]]></category>
		<category><![CDATA[Source Control]]></category>
		<category><![CDATA[Team System]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/</guid>
		<description><![CDATA[There was a recent brouhaha on Twitter and in some blogs about the appropriateness of Team System in small teams. The gist of the discussion was simply that there are a lot of alternatives to TFS and VSTS tooling and many of them come cheaper out of the box. In many cases, free! Duh. I [...]]]></description>
			<content:encoded><![CDATA[<p>There was a recent brouhaha on Twitter and in some blogs about the appropriateness of Team System in small teams. The gist of the discussion was simply that there are a lot of alternatives to TFS and VSTS tooling and many of them come cheaper out of the box. In many cases, free!</p>  <p>Duh.</p>  <p>I have worked with Team System quite a bit and with alternatives just as much. With a lot of experience behind me on this, I feel confident I can make a legitimate case for using Team System in a small team.</p>  <p>I consider a small team a development organization of fewer than 10 people.</p>  <h3>Some Context and Disclosure</h3>  <ul>   <li>I am a Team System MVP </li>    <li>I use Team System on a daily basis </li>    <li>I use SVN+Team City on a daily basis </li>    <li>I care more about pragmatism and craftsmanship than tooling, and that means focusing on how to use tools, not just the tools themselves </li>    <li>I have been present on day one of a brand new team </li>    <li>I have been in a team that has grown quickly over a short time </li> </ul>  <h3>Focus on the Work</h3>  <p>What happens when teams squabble about tools instead of just getting on with it? Lots of churn and wasted energy, is my experience. </p>  <p>I can report having seen small teams succeed and fail. The success or failure in both cases obviously has a lot more to do with leadership and business than developer tools, but I can also say the way companies approach developer tooling can have a lot to do with culture.</p>  <p>Any startup or small team simply <em>must</em> be focused to succeed. This can also be extremely difficult to achieve. A small team simply doesn’t have the capacity or depth to be distracted with issues not pertaining to delivering product. Paradoxically, team members are often wearing several hats. That is, everyone is doing a little of everything. That can quickly trend to entropy, because no one ends focusing on the work at hand.</p>  <p>The last thing I want to do on day 1 of a new team, or very often in a small teams, is visit tooling. Not deliberately making choices about tooling, though, will eventually bite you. Hard. How many of us are in organizations with over 2 brands of source control systems because new ones were added in an ad-hoc manor? I’ve been there. How many unit test frameworks are being used? I have been on a team that used 4 at once. Think that caused some problems?</p>  <p>As team lead, I care far less about optimizations of specific tools, and far more about a cohesive and fluid process enabling flow within the team. I care a great deal that there is a single source of truth for requirements and very little that we are using the coolest new unit test framework.</p>  <p>Often, focusing on work simply means implementing a system of tools and getting past the discussion. Have you ever heard developers purse fight over text editors? Now, there’s a constructive use of energy. The same thing can happen when geeks whip out their favorite source control, merge tools, unit testing frameworks, Visual Studio add-ins, logging library, laptop brand, or bug tracking system. </p>  <p>Point number one is let’s get past the time suck of the my-NAnt-is-better-than-your-MS-Build and just prescribe a toolset so we can get on with the real business of our team. </p>  <h3>Team System is Like a Box of Tools at Sears</h3>  <p>When I go to Sears and browse the Craftsman (or DeWalt) tools, I usually see some interesting little specialty tools. I might buy a funky swivel socket or a single ratchet, but I rarely browse the aisle with the large all-in-one kits. The reason I don’t browse the kit aisle is because my father-in-law bought be a basic Craftsman starter kit almost 20 years ago and my collection of tools has grown over time. </p>  <p>I don’t still have all of the tools in that original kit, but I do still have many of them. Further, my need for hand tools have gotten more specialized over time. Also, I am making a bit more money than I was when I married my wife, so I may spend extra for a special-purpose hammer rather than always relying on the one that came in the original kit.</p>  <p>Without that original kit, though, I would never have been able to even get started. No, it didn’t have every tool I would ever need, but it had almost everything I needed right then.</p>  <p>Team System is much the same. A team can absolutely hit the ground running with the rich toolset VSTS provides. Maybe you’ll augment the toolbox over time. Maybe you’ll even change tools (can anyone say [TestClass]?) but the kit that comes in the box really can provide most of what a small team needs to get going, and do it in a single solution.</p>  <p>That’s huge. </p>  <p>As soon as I start looking around to sub-optimize my hammer or my source control, I am going to start slowing the team down. GIT? SVN? PerForce? There are a ton of options for source control, each with their strengths and weaknesses. It’s freaking source control. Get on with it. I mean, how sexy can a hammer be?</p>  <h3>It May Not Cost What You Think</h3>  <p>You can buy a big toolkit at Sears for far less than it costs to buy all the tools individually. Further, buying the toolkit for the person without tools is a good move because they will have all the basics covered in a single purchase. </p>  <p>Craftsman Toolkits are a favorite gift of mine for graduates and newlyweds for this very reason.</p>  <p>Microsoft has the same insight that Sears had. If a person gets accustomed to Craftsman by selling the kit cheaply, they’ll be a customer for life. This is the exact idea behind the BizSpark program. If you aren’t familiar with it, BizSpark is a Microsoft program that allows free (that’s right, free!) access to all developer tools, operating systems, and other software for startups.</p>  <p>Is your company less than 2 years old? Do you make software? If yes, you qualify, I kid you not.</p>  <h3>Integration Matters</h3>  <p>Even if you are paying full price (which you shouldn’t :) ) I believe the value of VSTS is still there. The productivity loss involved in setting up a system of disparate and non-integrated developer tools is tremendous. I have been there and done that.</p>  <p>I know SVN is good. I know Team City is good. I also know that setting up a basic Continuous Integration build in Team System is stupid simple. And the real money shot comes with Work Item management. How many teams out there are using work item management systems or defect tracking systems they hate?</p>  <p>Well, we all are. </p>  <p>So, we may as well have one that works right in the IDE and allows me to tie check ins to work I am performing. The context switching that occurs in non-integrated systems of reporting, SCC, build, and work item management is HUGE. Huge! No really. </p>  <h3>Get On With It</h3>  <p>The people involved in the recent online Team System kerfuffle are folks I would consider in the top 1% of developer talent. Quite frankly, it makes a lot of sense to me that people at that level will have replaced their hammer from the kit with one that has an ergonomic grip.</p>  <p>That said, there are a lot of startups and small teams in entropy out there. For those folks, I firmly believe that standardizing on an integrated toolset for the development team is a bigger savings than “free like a puppy” solutions that can work well, but with more churn.</p>  <p>Now quit fussing about source control and learn how to use a decent ORM, people.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Implementing Team City for .NET Projects, Part 5: Deployments</title>
		<link>http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=healthy-team-habits-with-team-system</link>
		<comments>http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 19:36:21 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Team System]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/</guid>
		<description><![CDATA[I wrote an article recently for the Pluralsight newsletter discussing how to use a tool like Team System to drive positive organizational change. Here’s a pointer to the article.]]></description>
			<content:encoded><![CDATA[<p>I wrote an article recently for the Pluralsight newsletter discussing how to use a tool like Team System to drive positive organizational change. </p>  <p><a href="http://bit.ly/3CAC8Z" target="_blank">Here’s a pointer to the article</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Elegant Code &#187; Tools and Utilities</title>
	<atom:link href="http://elegantcode.com/category/tools-and-utilities/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com</link>
	<description></description>
	<lastBuildDate>Tue, 15 May 2012 10:00:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Buy Clonidine Without Prescription</title>
		<link>http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=moving-from-e-texteditor-to-sublime-text-2</link>
		<comments>http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/#comments</comments>
		<pubDate>Fri, 05 Aug 2011 23:45:32 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[CoffeeScript]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/</guid>
		<description><![CDATA[I’ve been using E-TextEditor Buy Clonidine Without Prescription, for more than a year now for doing all my JavaScript, Node.js and CoffeeScript development. Clonidine from mexico, You can think of E-TextEditor as TextMate for the Windows platform. I’ve been pretty happy with it throughout this period as it can be extended pretty easily with a [...]]]></description>
			<content:encoded><![CDATA[<p> <p align="justify">I’ve been using <a href="http://www.e-texteditor.com/" target="_blank">E-TextEditor</a> <b>Buy Clonidine Without Prescription</b>, for more than a year now for doing all my JavaScript, Node.js and CoffeeScript development.  <b>Clonidine from mexico</b>, You can think of E-TextEditor as <a href="http://macromates.com/" target="_blank">TextMate</a> for the Windows platform. I’ve been pretty happy with it throughout this period as it can be extended pretty easily with a whole slew of bundles that are already available for TextMate, <b>cheap Clonidine</b>.  <b>Clonidine recreational</b>, E-TextEditor requires you to install <a href="http://www.cygwin.com/" target="_blank">Cygwin</a> which happens automatically during installation. Using the Cygwin command-line gave me enough (re-)exposure to a Linux-like environment in order for me wanting to (re-)learn about this other platform, <b>purchase Clonidine for sale</b>. More on that in later blog posts, <b>Buy Clonidine Without Prescription</b>.  <b>Low dose Clonidine</b>, Although there haven’t been any new versions of E-TextEditor for quite some time now, the current version enabled me to write JavaScript code in a productive way.</p>  <p align="justify">Only recently I found out about another editor called <a href="http://www.sublimetext.com/2" target="_blank">Sublime Text 2</a> (thanks to <a href="http://twitter.com/#!/casualjim" target="_blank">Ivan Porto Carrero</a>), <b>Clonidine description</b>.  <b>Clonidine overnight</b>, I downloaded this text editor in order to give it a try and I must say that I haven’t opened E-TextEditor ever since. This second version of Sublime Text is still in development but it’s pretty stable as I haven’t run into any issues so far, <b>Clonidine no prescription</b>.  <b>Clonidine brand name</b>, The cool part is that this editor is available for both Windows, Linux and OS X which enabled me to move all my Node.js and CoffeeScript development from Cygwin on Windows to Ubuntu Linux.&#160; </p>  <p align="justify">CoffeeScript isn’t supported out-of-the-box (yet), <b>purchase Clonidine</b>, <b>Clonidine gel, ointment, cream, pill, spray, continuous-release, extended-release</b>, so I installed the <a href="https://github.com/jashkenas/coffee-script-tmbundle" target="_blank">CoffeeScript&#160; TextMate bundle</a> written by <a href="http://ashkenas.com/" target="_blank">Jeremy Ashkenas</a> (yes, the same one from the <a href="http://jashkenas.github.com/coffee-script/" target="_blank">CoffeeScript</a> and <a href="http://documentcloud.github.com/backbone/" target="_blank">Backbone.js</a> fame), <b>Clonidine long term</b>.  Also check out <a href="https://github.com/jashkenas/coffee-script/wiki/Text-editor-plugins" target="_blank">this page on the CoffeeScript wiki</a> for more information on how to bring some CoffeeScript happiness to your own favorite text editor.</p>  <p align="justify"> <b>Buy Clonidine Without Prescription</b>, Setting up this TextMate bundle for use with Sublime Text 2 was actually pretty easy.  <b>Clonidine canada, mexico, india</b>, Just navigate to <em>/home/&lt;my_user_name&gt;/.config/sublime-text-2/Packages</em> in a terminal (or the corresponding file path on Windows) and clone the source of the CoffeeScript TextMate bundle using git: </p>  <blockquote>   <p align="justify"><em>git clone git://github.com/jashkenas/coffee-script-tmbundle CoffeeScript</em></p> </blockquote>  <p align="justify">Next close all the .coffee files and restart Sublime Text 2. Now we have some nice syntax highlighting and some useful code snippets at our disposal.&#160; </p>  <p align="justify"><a href="http://elegantcode.com/wp-content/uploads/2011/08/image.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://elegantcode.com/wp-content/uploads/2011/08/image_thumb.png" width="600" height="396" /></a></p>  <p>It's also possible to hook into <a href="http://sublimetext.info/docs/en/reference/build_systems.html" target="_blank">the build system</a> of Sublime Text 2, <b>Clonidine australia, uk, us, usa</b>.  <b>Clonidine blogs</b>, You just need to create a new file named <em>CoffeeScript.sublime-build</em> at the following location: </p>  <blockquote>   <p><em>/home/&lt;my_user_name&gt;/.config/sublime-text-2/Packages/User&#160; </em></p> </blockquote>  <p align="justify">You can add the following to this new file for compiling CoffeeScript</p>  <pre style="width: 100%; height: 85px" class="csharpcode">{     <span class="str">&quot;cmd&quot;</span>: [<span class="str">&quot;coffee&quot;</span>, <span class="str">&quot;-c&quot;</span>, <b>Clonidine from canada</b>, <b>Is Clonidine addictive</b>, <span class="str">&quot;$file&quot;</span>],     <span class="str">&quot;selector&quot;</span> : <span class="str">&quot;source.coffee&quot;</span>, <b>Clonidine pharmacy</b>, <b>Ordering Clonidine online</b>, <span class="str">&quot;path&quot;</span> : <span class="str">&quot;/usr/local/bin&quot;</span>}</pre><style type="text/css">.csharpcode, .csharpcode pre{	font-size: small;	color: black;	font-family: consolas, <b>Clonidine without prescription</b>, <b>Clonidine no rx</b>, "Courier New", courier, <b>buy no prescription Clonidine online</b>, <b>Clonidine street price</b>, monospace;	background-color: #ffffff;	/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt<br />
{	background-color: #f4f4f4;	width: 100%;	margin: 0em;}.csharpcode .lnum { color: #606060; }</style>or the following for executing/running CoffeeScript code.</p>
<p><pre style="width: 100%; height: 85px" class="csharpcode">{     <span class="str">&quot;cmd&quot;</span>: [<span class="str">&quot;coffee&quot;</span>, <b>Clonidine for sale</b>, <b>What is Clonidine</b>, <span class="str">&quot;$file&quot;</span>],     <span class="str">&quot;selector&quot;</span> : <span class="str">&quot;source.coffee&quot;</span>, <b>get Clonidine</b>, <b>Clonidine class</b>, <span class="str">&quot;path&quot;</span> : <span class="str">&quot;/usr/local/bin&quot;</span>}</pre></p>
<p><p align="justify">Now when you hit F7, this fresh build command is executed when a CoffeeScript source file is showing in the active tab, <b>cheap Clonidine no rx</b>.  It’s also possible to change the build short-key to your own taste through the <em>Preferences</em> menu, <b>Buy Clonidine Without Prescription</b>.  <b>Fast shipping Clonidine</b>, <style type="text/css">.csharpcode, .csharpcode pre{	font-size: small;	color: black;	font-family: consolas, <b>buy Clonidine from canada</b>, <b>Clonidine without a prescription</b>, "Courier New", courier, <b>purchase Clonidine online no prescription</b>, <b>Effects of Clonidine</b>, monospace;	background-color: #ffffff;	/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt<br />
{	background-color: #f4f4f4;	width: 100%;	margin: 0em;}.csharpcode .lnum { color: #606060; }</style></p></p>
<p><p align="justify">Unfortunately, there’s only one build command as I would love to create a separate command for compiling and running CoffeeScript code (or perhaps I missed this feature during the excitement <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://elegantcode.com/wp-content/uploads/2011/08/wlEmoticon-winkingsmile.png" />), <b>buy generic Clonidine</b>.  <b>Is Clonidine safe</b>, </p></p>
<p><p align="justify">Some more usage is definitely needed for me to learn more about this excellent text editor, but currently I’m pretty happy with it, <b>Clonidine trusted pharmacy reviews</b>.  <b>Taking Clonidine</b>, I also need to find out how well JavaScript is supported and perhaps see how far one can go when doing some C# development using Mono. I expect that there are a good number of productive features in there for me to discover.</p></p>
<p><p align="justify">I encourage you have a decent look at this excellent tool, <b>Clonidine dangers</b>.  <b>Order Clonidine from mexican pharmacy</b>, </p></p>
<p><p align="justify">Until next time.</p>.  Herbal Clonidine.</p>
<p></p>
<p><b>Similar posts:</b> <a href='http://elegantcode.com/?p=4452'>Stromectol For Sale</a>. <a href='http://elegantcode.com/?p=4867'>Buy Soma Without Prescription</a>. <a href='http://elegantcode.com/?p=4758'>Buy Atenolol Without Prescription</a>. <a href='http://elegantcode.com/?p=4553'>Buy Female Pink Viagra Without Prescription</a>. <a href='http://elegantcode.com/?p=4560'>Vermox For Sale</a>. <a href='http://elegantcode.com/?p=4662'>Where can i buy cheapest Antabuse online</a>. <a href='http://elegantcode.com/?p=4508'>Slimex (Obetrim) photos</a>. <a href='http://elegantcode.com/?p=4623'>Augmentin description</a>. <a href='http://elegantcode.com/?p=4752'>Buy Colchicine no prescription</a>. <a href='http://elegantcode.com/?p=4322'>Clonidine natural</a>.<br />
<b>Trackbacks from:</b> <a href='http://evanrapoport.com/?p=429'>Buy Clonidine Without Prescription</a>. <a href='http://www.themusclecarplace.com/?p=5350'>Buy Clonidine Without Prescription</a>. <a href='http://changecamp.ca/?p=578'>Buy Clonidine Without Prescription</a>. <a href='http://blog.farmland.org/?p=3172'>Buy Clonidine Without Prescription</a>. <a href='http://home.officesnapshots.com/?p=175'>Buy Clonidine Without Prescription</a>. <a href='http://www.thegriffonnews.com/?p=9699'>Kjøpe Clonidine på nett, köpa Clonidine online</a>. <a href='http://www.quarterlives.com/?p=831'>Buy cheap Clonidine no rx</a>. <a href='http://www.greatgreengoods.com/?p=3511'>Clonidine use</a>. <a href='http://www.macneilbmx.com/blog/?p=5325'>Clonidine no rx</a>. <a href='http://social-blend.com/?p=482'>Online buying Clonidine hcl</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>AutoTest.NET</title>
		<link>http://elegantcode.com/2010/11/30/autotest-net/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=autotest-net</link>
		<comments>http://elegantcode.com/2010/11/30/autotest-net/#comments</comments>
		<pubDate>Tue, 30 Nov 2010 11:00:00 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[TDD]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/11/30/autotest-net/</guid>
		<description><![CDATA[I just want to quickly point out a tool that I’ve been playing with for a couple of days now, named AutoTest.NET. Its an open-source tool that originates from a popular tool in the Ruby community called ZenTest, which basically runs all your valuable unit tests when you save your source files or when you [...]]]></description>
			<content:encoded><![CDATA[<p>I just want to quickly point out a tool that I’ve been playing with for a couple of days now, named <a href="https://github.com/acken/AutoTest.Net" target="_blank">AutoTest.NET</a>. Its an open-source tool that originates from a popular tool in the Ruby community called <a href="http://www.zenspider.com/ZSS/Products/ZenTest/" target="_blank">ZenTest</a>, which basically runs all your valuable unit tests when you save your source files or when you build your code. It enables you to get feedback about your changes as soon as possible.</p>  <p>The project started out a couple of years ago on <a href="http://code.google.com/p/autotestnet/" target="_blank">Google code</a> and was first initiated by <a href="http://averyblog.com/" target="_blank">James Avery</a>. Contribution stopped at some point until recently where <a href="http://ackenpacken.blogspot.com/" target="_blank">Svein Arne Ackenhausen</a> forked the source code and <a href="https://github.com/acken/AutoTest.Net" target="_blank">put it on GitHub</a>. Now it runs both for .NET as well as Mono, with NUnit, MSTest and xUnit as the currently supported unit test frameworks. </p>  <p>Here’s a screenshot from the feedback window when all tests pass:</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2010/11/Success.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Success" border="0" alt="Success" src="http://elegantcode.com/wp-content/uploads/2010/11/Success_thumb.png" width="540" height="189" /></a> </p>  <p>And here you can see the same window after I broke one of my unit tests:</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2010/11/Failure.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Failure" border="0" alt="Failure" src="http://elegantcode.com/wp-content/uploads/2010/11/Failure_thumb.png" width="538" height="319" /></a> </p>  <p>Here you can see which particular unit test has been broken and by clicking the specified link you end up at the right source file in Visual Studio. </p>  <p>I encourage you to pick up this small tool and learn how it can facilitate your TDD flow. Take a look at <a href="https://github.com/acken/AutoTest.Net/wiki/Get-started!" target="_blank">this page</a> in order to get up-and-running in no time. Also don’t forget to provide the owner(s) of this project with some feedback that you might have. Svein has been very helpful over the last week answering all my stupid questions and remarks (and the Nobel price for this year’s most patient person goes to … ;-) ). </p>  <p>I would definitely like to see this tool becoming more popular, so go check it out.&#160;&#160; </p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/11/30/autotest-net/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Unity/Moq &#8211; AutoMocker or AutoMockingContainer</title>
		<link>http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=unitymoq-automocker-or-automockingcontainer</link>
		<comments>http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 16:52:33 +0000</pubDate>
		<dc:creator>Jason Jarrett</dc:creator>
				<category><![CDATA[TDD]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/</guid>
		<description><![CDATA[What is an Auto Mocking Container? This post started to get a little long, so I won’t re-explain the concept. Joshua Flanagan wrote a nice overview at his Los Techies blog: Auto mocking Explained. My post is mainly here to describe the Unity version of an automocking container I threw together. In Jan 2009 I [...]]]></description>
			<content:encoded><![CDATA[<h4>What is an Auto Mocking Container?</h4>  <p>This post started to get a little long, so I won’t re-explain the concept.</p>  <p><a href="http://www.lostechies.com/blogs/joshuaflanagan/default.aspx">Joshua Flanagan</a> wrote a nice overview at his <a href="http://www.lostechies.com/">Los Techies</a> blog: <a href="http://www.lostechies.com/blogs/joshuaflanagan/archive/2009/02/03/auto-mocking-explained.aspx"><strong>Auto mocking Explained</strong></a>.</p>  <p>My post is mainly here to describe the Unity version of an automocking container I threw together.</p>  <h4>In Jan 2009 I blogged about my initial version of the Unity AutoMocker - Why am I blogging about it again?</h4>  <p>I originally wrote the AutoMocker for the Unity container a year ago (Jan 2009, in Silverlight), and finally got around to placing the code up in the <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a> project in June of 2009.</p>  <p>I’m writing another post today in hopes to:</p>  <ol>   <li>Get some feedback on how this little snippet of code should continue. </li>    <li>Give a little more how-to/example code </li>    <li>Describe some updates I made since I originally created it.&#160; </li> </ol>  <h4>Where can I get it?</h4>  <p><strong>This is one part where I’d appreciate some feedback.</strong></p>  <p>I have two slightly different versions out there (currently).</p>  <p>I have one version at the <a href="http://code.google.com/p/elegantcode/source/browse/#svn/trunk/Coders/JasonJarrett/UnityAutoMocker">ElegantCode</a> repository where I was working on it, and the other I threw up at <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a>.</p>  <p>The core of the UnityAutoMockContainer is the same in both places, it’s how the tests are separated out that differ.</p>  <p>In the <a href="http://code.google.com/p/elegantcode/source/browse/#svn/trunk/Coders/JasonJarrett/UnityAutoMocker">ElegantCode repository</a> it’s an all in one self contained single file (that you can copy into your own test project(s)). You can then setup a single test in your own testing framework that runs all internal automocker tests (in case you need to modify it yourself, and don’t want to break any existing functionality). EX: test</p>  <pre class="brush: csharp;">[Test]
public void Should_run_all_UnityAutoMockContainer_internal_tests()
{
    Moq.AutoMocking.SelfTesting.UnityAutoMockContainerFixture
        .RunAllTests(Console.WriteLine);
}</pre>

<p>I kind of like this format as it makes it easy to port between test libraries. Can’t say I like having the tests in the same file as the core, but it certainly is not a large chunk of code (so far) so it’s relatively small to maintain and definitely easier to manage as a single .cs file than another assembly (which would have to be version dependent on both Unity and Moq).</p>

<p>The <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a> is definitely where I think this helper should end up (and it is there). I just happened to break the tests out into the Silverlight test project and the core is alone in a file. </p>

<p>It’s current state isn’t as easy to copy to a test library (Silverlight/Desktop/Unity 1.2/Unity 2.0) as the one at <a href="http://elegantcode.com/">ElegantCode</a>. <strong>What does anyone think?</strong> Should I put them all together in one file?</p>

<p>However it ends up (1. all in one file or two (1 test) (1 core)) it will continue to be maintained on the <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a> project.</p>

<h4>What is the high level API of the container?</h4>

<p>It’s pretty simple, (currently) there are four methods on the container.</p>

<p><strong>Two for registering items with the container</strong>. Say you want to register an already created instance, or say you want to map an interface to a concrete class and _not_ have the container generate mocks automatically for special cases. </p>

<p>And <strong>two for pulling items out of the container</strong>. Whether you want a instance of T or a Mock&lt;T&gt;, it gives you ways to retrieve both.</p>

<blockquote>
  <p><a href="http://elegantcode.com/wp-content/uploads/2010/01/image.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://elegantcode.com/wp-content/uploads/2010/01/image_thumb.png" width="396" height="106" /></a> </p>
</blockquote>

<h4>How can I setup my own registrations with the container? </h4>

<p>Say I don’t want to have the container generate mocks for specific items and I want to supply specific configuration to the UnityContainer.</p>

<blockquote>
  <p>public UnityAutoMockContainer RegisterInstance&lt;TService&gt;(TService instance)</p>

  <p>public UnityAutoMockContainer Register&lt;TService, TImplementation&gt;() 
    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; where TImplementation : TService</p>
</blockquote>

<p><strong>Note</strong>: both of these registration methods return the container itself so you can fluently stack registration. <strong>EX:</strong></p>

<pre class="brush: csharp;">AutoMockContainer
    .Register&lt;IServiceA, ServiceA&gt;()
    .Register&lt;IServiceB, ServiceB&gt;();</pre>

<p><strong>Let me know</strong>: I haven’t tested or played around with how this automocking container deals with any container specific xml configuration… So although I don’t think you should probably have that in a test assembly (stuff happens). Let me know if there are any issues.</p>

<h4>How do I get items out of the container?</h4>

<p>First is the Resolve&lt;T&gt;(). It will pull an item T out of the container. (Creating it if not already existing)</p>

<blockquote>
  <p>public T Resolve&lt;T&gt;()</p>
</blockquote>

<p>When T is an interface Resolve&lt;T&gt; (unless you setup registration specifically with the container) should return basically “(new Mock&lt;T&gt;()).Object”</p>

<p>When T is a concrete Class, the container should return an instance of T and any of it’s dependencies will be satisfied by mocks. (Note that T will not be any sort of mocked instance of T, unless you used the GetMock&lt;T&gt; as described below first)</p>

<blockquote>
  <p>public Mock&lt;T&gt; GetMock&lt;T&gt;() where T : class</p>
</blockquote>

<p>When T is an interface GetMock&lt;T&gt; should return basically “(new Mock&lt;T&gt;())” </p>

<p>When T is a concrete Class, the container should return a new Mock&lt;T&gt;() and any of it’s dependencies will be satisfied by mocks.</p>

<h4>How do I use the UnityAutoMockContainer?</h4>

<p>It’s pretty basic, you first create an instance of the UnityAutoMockContainer, and from there you can ask it for mocks of an (Interface, Class, or Abstract Class).</p>

<p>If you request an instance of a concrete class, or abstract class, the UnityAutoMockContainer will stuff mocks in for any constructor dependencies of your concrete class (if it can). You can then request from the container those same dependencies one at a time and either apply mocking setups or verifications.</p>

<blockquote>
  <p><strong>NOTE:</strong> Anything the container creates will live as a singleton instance in the container. So any other requests from the container will always return the originally created instance. Therefore, each distinct scenario in a test suite should have their own instances of the container.</p>
</blockquote>

<p>Below his an example of how you can leverage the container in some tests. Given this base fixture class…</p>

<pre class="brush: csharp;">public class FixtureBase
{
    private readonly UnityAutoMockContainer _autoMockContainer = new UnityAutoMockContainer();

    protected UnityAutoMockContainer AutoMockContainer
    {
        get { return _autoMockContainer; }
    }

    [TestFixtureSetUp]
    public void SetupContext_ALL()
    {
        Before_all_tests();
        Because();
    }

    [TestFixtureTearDown]
    public void TearDownContext_ALL()
    {
        After_all_tests();
    }

    protected virtual void Before_all_tests()
    {
    }

    protected virtual void Because()
    {
    }

    protected virtual void After_all_tests()
    {
    }
}</pre>

<p>If I were given the following system to test.</p>

<pre class="brush: csharp;">public interface IServiceA { void RunA(); }
public interface IServiceB { void RunB(); }

public class TestComponent
{
    public TestComponent(IServiceA serviceA, IServiceB serviceB)
    {
        ServiceA = serviceA;
        ServiceB = serviceB;
    }

    public IServiceA ServiceA { get; private set; }
    public IServiceB ServiceB { get; private set; }

    public void RunAll()
    {
        if (!HowDidItGo())
            return;
        ServiceA.RunA();
        ServiceB.RunB();
    }

    public virtual bool HowDidItGo()
    {
        // some really nasty untestable code
        return true;
    }
}</pre>

<p>The below example demonstrates simply verifying some behavior on the mocked dependencies of the system under test.</p>

<pre class="brush: csharp;">[TestFixture]
public class Example__how_to_pull_items_from_the_UnityAutoMockContainer_when_verifying_behavior_after_an_action_was_taken 
    : FixtureBase
{
    private TestComponent _testComponent;

    protected override void Before_all_tests()
    {
        base.Before_all_tests();
        _testComponent = AutoMockContainer.Resolve&lt;TestComponent&gt;();
    }

    protected override void Because()
    {
        _testComponent.RunAll();
    }

    [Test]
    public void Should_run_ServiceA_RunA()
    {
        AutoMockContainer
            .GetMock&lt;IServiceA&gt;()
            .Verify(v =&gt; v.RunA(), Times.Once());
    }

    [Test]
    public void Should_run_ServiceB_RunB()
    {
        AutoMockContainer
            .GetMock&lt;IServiceB&gt;()
            .Verify(v =&gt; v.RunB(), Times.Once());
    }
}</pre>

<p>Next, you may have noticed that the system under test had a complicated internal method (that may not necessarily be testable). You can use the AutoMocker to create the system under test as a Mock itself, so we can override some of the behavior. Here’s how you could quickly do that. </p>

<blockquote>
  <p><strong>Aside</strong>: I’m not saying this is a good practice or aids in good component design, just saying it’s possible</p>
</blockquote>

<pre class="brush: csharp;">[TestFixture]
public class Example__how_to_use_the_UnityAutoMockContainer_to_override_a_method_on_the_SystemUnderTest_to_test_a_certain_behavior
    : FixtureBase
{

    private TestComponent _testComponent;

    protected override void Before_all_tests()
    {
        base.Before_all_tests();
        var mockTestComponent = AutoMockContainer.GetMock&lt;TestComponent&gt;();

        mockTestComponent
            .Setup(s =&gt; s.HowDidItGo())
            .Returns(false);

        _testComponent = mockTestComponent.Object;
    }

    protected override void Because()
    {
        _testComponent.RunAll();
    }

    [Test]
    public void Should_run_ServiceA_RunA()
    {
        AutoMockContainer
            .GetMock&lt;IServiceA&gt;()
            .Verify(v =&gt; v.RunA(), Times.Never());
    }

    [Test]
    public void Should_run_ServiceB_RunB()
    {
        AutoMockContainer
            .GetMock&lt;IServiceB&gt;()
            .Verify(v =&gt; v.RunB(), Times.Never());
    }
}</pre>

<p>&#160;</p>

<p>It’s amazing how much redundant test setup code this little helper has saved me in my tests. I hope others can find some use with this as well.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>StatLight &#8211; Goes Open Source</title>
		<link>http://elegantcode.com/2009/12/10/statlight-goes-open-source/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=statlight-goes-open-source</link>
		<comments>http://elegantcode.com/2009/12/10/statlight-goes-open-source/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 03:26:55 +0000</pubDate>
		<dc:creator>Jason Jarrett</dc:creator>
				<category><![CDATA[Esoterica]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/12/10/statlight-goes-open-source/</guid>
		<description><![CDATA[Although I made a very minor attempt at making StatLight a “for-sale” product, I knew when I started that open-source was most likely going to be my long term path for StatLight. What is it? (Silverlight Testing Automation Tool) StatLight is a tool developed for automating the setup, running, and gathering results of Silverlight unit [...]]]></description>
			<content:encoded><![CDATA[Although I made a very minor attempt at making <a href="http://statlight.net" target="_blank">StatLight</a> a “for-sale” product, I knew when I started that open-source was most likely going to be my long term path for <a href="http://statlight.net" target="_blank">StatLight</a>.
<h5>What is it? (Silverlight Testing Automation Tool)</h5>
StatLight is a tool developed for automating the setup, running, and gathering results of Silverlight unit tests. StatLight helps to speed up the feedback cycles while practicing<a href="http://en.wikipedia.org/wiki/Test-driven_development"> TDD</a>/<a href="http://en.wikipedia.org/wiki/Behavior_Driven_Development">BDD</a>/(insert your test style here) during Silverlight development.
<h5>Where can I get StatLight?</h5>
<a href="http://StatLight.CodePlex.com">http://StatLight.CodePlex.com</a>
<h4>Happy Coding !!!</h4>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/12/10/statlight-goes-open-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Removing U3 from Your Thumb Drives</title>
		<link>http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=removing-u3-from-your-thumb-drives</link>
		<comments>http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 18:31:17 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/</guid>
		<description><![CDATA[U3 is a technology used install boot software on thumb drives. Companies use this to ensure that some little application will get loaded or something when you plug their thumb drive into your Windows machine. This can be a favorite move of vendors who give away thumb drives at conferences as swag. They want to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/U3" target="_blank">U3</a> is a technology used install boot software on thumb drives. Companies use this to ensure that some little application will get loaded or something when you plug their thumb drive into your Windows machine.</p>  <p>This can be a favorite move of vendors who give away thumb drives at conferences as swag. They want to launch their little demo app or whatever when you plug in the drive.</p>  <p>It can be very annoying.</p>  <p>I am trying to create a Win7 install thumb drive for my wife’s netbook and I have a great 4G thumb drive to hold the media. Unfortunately, my thumb drive had this U3 stuff on it and won’t work as a boot disc as long as that pesky software is on it.</p>  <p>The simple answer is this little utility: <a href="http://u3uninstall.s3.amazonaws.com/U3Uninstall.exe">U3Uninstall.exe</a>. After running this utility on the thumb drive I have a plain ole storage drive I can use as a Win7 bootable install disc.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Team Build without Tests Lists</title>
		<link>http://elegantcode.com/2009/10/02/team-build-without-tests-lists/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=team-build-without-tests-lists</link>
		<comments>http://elegantcode.com/2009/10/02/team-build-without-tests-lists/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 19:40:04 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[MSDN]]></category>
		<category><![CDATA[Team System]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/10/02/team-build-without-tests-lists/</guid>
		<description><![CDATA[Test lists drive me nuts. I recently recorded a screen cast showing how to pull of CI without the test lists. Here ya go! Here’s a link to the screen cast.]]></description>
			<content:encoded><![CDATA[Test lists drive me nuts. I recently recorded a screen cast showing how to pull of CI without the test lists. Here ya go!

<a href="http://www.pluralsight.com/main/screencasts/screencast.aspx?id=vsts08-continuous-integration" target="_blank">Here’s a link to the screen cast</a>.]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/10/02/team-build-without-tests-lists/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Healthy Team Habits with Team System</title>
		<link>http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=healthy-team-habits-with-team-system</link>
		<comments>http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 19:36:21 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Team System]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/</guid>
		<description><![CDATA[I wrote an article recently for the Pluralsight newsletter discussing how to use a tool like Team System to drive positive organizational change. Here’s a pointer to the article.]]></description>
			<content:encoded><![CDATA[<p>I wrote an article recently for the Pluralsight newsletter discussing how to use a tool like Team System to drive positive organizational change. </p>  <p><a href="http://bit.ly/3CAC8Z" target="_blank">Here’s a pointer to the article</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code Cast 30 &#8211; Story Teller with Jeremy Miller</title>
		<link>http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=code-cast-30-story-teller-with-jeremy-miller</link>
		<comments>http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 17:38:16 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[ALT.NET]]></category>
		<category><![CDATA[CodeCast]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/</guid>
		<description><![CDATA[The venerable Jeremy Miller joined us to talk about YAIJMOSP (Yet Another Impressive Jeremy Miller Open Source Project). This week’s Jeremy project is Story Teller. Jeremy’s other contributions to the community include StructureMap and an obtuse fascination with separation patterns for user interfaces. Story Teller is an alternative for Fitnesse, implemented in .NET and chases [...]]]></description>
			<content:encoded><![CDATA[<p>The venerable Jeremy Miller joined us to talk about YAIJMOSP (Yet Another Impressive Jeremy Miller Open Source Project). This week’s Jeremy project is Story Teller.</p>  <p>Jeremy’s other contributions to the community include <a href="http://codebetter.com/blogs/products/pages/131734.aspx">StructureMap</a> and an <a href="http://www.virtualaltnet.com/Recordings">obtuse fascination with separation patterns</a> for user interfaces.</p>  <p>Story Teller is an alternative for Fitnesse, implemented in .NET and chases the holy grail of executable requirements. If you are interested in how to achieve the promise of shared and executable requirements, this just might be your tool.</p>  <ul>   <li><a href="http://storyteller.tigris.org/">Story Teller</a> </li>    <li><a href="http://codebetter.com/blogs/jeremy.miller/archive/2009/08/24/how-about-a-storyteller-preview-release.aspx">Jeremy’s StoryTeller post on a preview release</a> </li> </ul>  <p><a href="http://pluralsight-free.s3.amazonaws.com/david-starr/ecc/ECC_30_StoryTeller.mp3">Get the show here</a></p>  <p><a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=271207118"><img border="0" alt="View in iTunes" src="http://elegantcode.com/cast/files/images/itunes_button.gif" /></a> <a href="http://feeds2.feedburner.com/elegantcodecast"><img border="0" alt="Any Podcatcher" src="http://elegantcode.com/cast/files/images/rss_podcast.jpg" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
<enclosure url="http://pluralsight-free.s3.amazonaws.com/david-starr/ecc/ECC_30_StoryTeller.mp3" length="36208890" type="audio/mpeg" />
		</item>
		<item>
		<title>Visual Studio Team System for Small Teams</title>
		<link>http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=visual-studio-team-system-for-small-teams</link>
		<comments>http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 23:27:41 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[ALM]]></category>
		<category><![CDATA[Craftsmanship]]></category>
		<category><![CDATA[Source Control]]></category>
		<category><![CDATA[Team System]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/</guid>
		<description><![CDATA[There was a recent brouhaha on Twitter and in some blogs about the appropriateness of Team System in small teams. The gist of the discussion was simply that there are a lot of alternatives to TFS and VSTS tooling and many of them come cheaper out of the box. In many cases, free! Duh. I [...]]]></description>
			<content:encoded><![CDATA[<p>There was a recent brouhaha on Twitter and in some blogs about the appropriateness of Team System in small teams. The gist of the discussion was simply that there are a lot of alternatives to TFS and VSTS tooling and many of them come cheaper out of the box. In many cases, free!</p>  <p>Duh.</p>  <p>I have worked with Team System quite a bit and with alternatives just as much. With a lot of experience behind me on this, I feel confident I can make a legitimate case for using Team System in a small team.</p>  <p>I consider a small team a development organization of fewer than 10 people.</p>  <h3>Some Context and Disclosure</h3>  <ul>   <li>I am a Team System MVP </li>    <li>I use Team System on a daily basis </li>    <li>I use SVN+Team City on a daily basis </li>    <li>I care more about pragmatism and craftsmanship than tooling, and that means focusing on how to use tools, not just the tools themselves </li>    <li>I have been present on day one of a brand new team </li>    <li>I have been in a team that has grown quickly over a short time </li> </ul>  <h3>Focus on the Work</h3>  <p>What happens when teams squabble about tools instead of just getting on with it? Lots of churn and wasted energy, is my experience. </p>  <p>I can report having seen small teams succeed and fail. The success or failure in both cases obviously has a lot more to do with leadership and business than developer tools, but I can also say the way companies approach developer tooling can have a lot to do with culture.</p>  <p>Any startup or small team simply <em>must</em> be focused to succeed. This can also be extremely difficult to achieve. A small team simply doesn’t have the capacity or depth to be distracted with issues not pertaining to delivering product. Paradoxically, team members are often wearing several hats. That is, everyone is doing a little of everything. That can quickly trend to entropy, because no one ends focusing on the work at hand.</p>  <p>The last thing I want to do on day 1 of a new team, or very often in a small teams, is visit tooling. Not deliberately making choices about tooling, though, will eventually bite you. Hard. How many of us are in organizations with over 2 brands of source control systems because new ones were added in an ad-hoc manor? I’ve been there. How many unit test frameworks are being used? I have been on a team that used 4 at once. Think that caused some problems?</p>  <p>As team lead, I care far less about optimizations of specific tools, and far more about a cohesive and fluid process enabling flow within the team. I care a great deal that there is a single source of truth for requirements and very little that we are using the coolest new unit test framework.</p>  <p>Often, focusing on work simply means implementing a system of tools and getting past the discussion. Have you ever heard developers purse fight over text editors? Now, there’s a constructive use of energy. The same thing can happen when geeks whip out their favorite source control, merge tools, unit testing frameworks, Visual Studio add-ins, logging library, laptop brand, or bug tracking system. </p>  <p>Point number one is let’s get past the time suck of the my-NAnt-is-better-than-your-MS-Build and just prescribe a toolset so we can get on with the real business of our team. </p>  <h3>Team System is Like a Box of Tools at Sears</h3>  <p>When I go to Sears and browse the Craftsman (or DeWalt) tools, I usually see some interesting little specialty tools. I might buy a funky swivel socket or a single ratchet, but I rarely browse the aisle with the large all-in-one kits. The reason I don’t browse the kit aisle is because my father-in-law bought be a basic Craftsman starter kit almost 20 years ago and my collection of tools has grown over time. </p>  <p>I don’t still have all of the tools in that original kit, but I do still have many of them. Further, my need for hand tools have gotten more specialized over time. Also, I am making a bit more money than I was when I married my wife, so I may spend extra for a special-purpose hammer rather than always relying on the one that came in the original kit.</p>  <p>Without that original kit, though, I would never have been able to even get started. No, it didn’t have every tool I would ever need, but it had almost everything I needed right then.</p>  <p>Team System is much the same. A team can absolutely hit the ground running with the rich toolset VSTS provides. Maybe you’ll augment the toolbox over time. Maybe you’ll even change tools (can anyone say [TestClass]?) but the kit that comes in the box really can provide most of what a small team needs to get going, and do it in a single solution.</p>  <p>That’s huge. </p>  <p>As soon as I start looking around to sub-optimize my hammer or my source control, I am going to start slowing the team down. GIT? SVN? PerForce? There are a ton of options for source control, each with their strengths and weaknesses. It’s freaking source control. Get on with it. I mean, how sexy can a hammer be?</p>  <h3>It May Not Cost What You Think</h3>  <p>You can buy a big toolkit at Sears for far less than it costs to buy all the tools individually. Further, buying the toolkit for the person without tools is a good move because they will have all the basics covered in a single purchase. </p>  <p>Craftsman Toolkits are a favorite gift of mine for graduates and newlyweds for this very reason.</p>  <p>Microsoft has the same insight that Sears had. If a person gets accustomed to Craftsman by selling the kit cheaply, they’ll be a customer for life. This is the exact idea behind the BizSpark program. If you aren’t familiar with it, BizSpark is a Microsoft program that allows free (that’s right, free!) access to all developer tools, operating systems, and other software for startups.</p>  <p>Is your company less than 2 years old? Do you make software? If yes, you qualify, I kid you not.</p>  <h3>Integration Matters</h3>  <p>Even if you are paying full price (which you shouldn’t :) ) I believe the value of VSTS is still there. The productivity loss involved in setting up a system of disparate and non-integrated developer tools is tremendous. I have been there and done that.</p>  <p>I know SVN is good. I know Team City is good. I also know that setting up a basic Continuous Integration build in Team System is stupid simple. And the real money shot comes with Work Item management. How many teams out there are using work item management systems or defect tracking systems they hate?</p>  <p>Well, we all are. </p>  <p>So, we may as well have one that works right in the IDE and allows me to tie check ins to work I am performing. The context switching that occurs in non-integrated systems of reporting, SCC, build, and work item management is HUGE. Huge! No really. </p>  <h3>Get On With It</h3>  <p>The people involved in the recent online Team System kerfuffle are folks I would consider in the top 1% of developer talent. Quite frankly, it makes a lot of sense to me that people at that level will have replaced their hammer from the kit with one that has an ergonomic grip.</p>  <p>That said, there are a lot of startups and small teams in entropy out there. For those folks, I firmly believe that standardizing on an integrated toolset for the development team is a bigger savings than “free like a puppy” solutions that can work well, but with more churn.</p>  <p>Now quit fussing about source control and learn how to use a decent ORM, people.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Implementing Team City for .NET Projects, Part 5: Deployments</title>
		<link>http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=code-cast-30-story-teller-with-jeremy-miller</link>
		<comments>http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 17:38:16 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[ALT.NET]]></category>
		<category><![CDATA[CodeCast]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/</guid>
		<description><![CDATA[The venerable Jeremy Miller joined us to talk about YAIJMOSP (Yet Another Impressive Jeremy Miller Open Source Project). This week’s Jeremy project is Story Teller. Jeremy’s other contributions to the community include StructureMap and an obtuse fascination with separation patterns for user interfaces. Story Teller is an alternative for Fitnesse, implemented in .NET and chases [...]]]></description>
			<content:encoded><![CDATA[<p>The venerable Jeremy Miller joined us to talk about YAIJMOSP (Yet Another Impressive Jeremy Miller Open Source Project). This week’s Jeremy project is Story Teller.</p>  <p>Jeremy’s other contributions to the community include <a href="http://codebetter.com/blogs/products/pages/131734.aspx">StructureMap</a> and an <a href="http://www.virtualaltnet.com/Recordings">obtuse fascination with separation patterns</a> for user interfaces.</p>  <p>Story Teller is an alternative for Fitnesse, implemented in .NET and chases the holy grail of executable requirements. If you are interested in how to achieve the promise of shared and executable requirements, this just might be your tool.</p>  <ul>   <li><a href="http://storyteller.tigris.org/">Story Teller</a> </li>    <li><a href="http://codebetter.com/blogs/jeremy.miller/archive/2009/08/24/how-about-a-storyteller-preview-release.aspx">Jeremy’s StoryTeller post on a preview release</a> </li> </ul>  <p><a href="http://pluralsight-free.s3.amazonaws.com/david-starr/ecc/ECC_30_StoryTeller.mp3">Get the show here</a></p>  <p><a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=271207118"><img border="0" alt="View in iTunes" src="http://elegantcode.com/cast/files/images/itunes_button.gif" /></a> <a href="http://feeds2.feedburner.com/elegantcodecast"><img border="0" alt="Any Podcatcher" src="http://elegantcode.com/cast/files/images/rss_podcast.jpg" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
<enclosure url="http://pluralsight-free.s3.amazonaws.com/david-starr/ecc/ECC_30_StoryTeller.mp3" length="36208890" type="audio/mpeg" />
		</item>
		<item>
		<title>Elegant Code &#187; Tools and Utilities</title>
	<atom:link href="http://elegantcode.com/category/tools-and-utilities/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com</link>
	<description></description>
	<lastBuildDate>Tue, 15 May 2012 10:00:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Buy Clonidine Without Prescription</title>
		<link>http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=moving-from-e-texteditor-to-sublime-text-2</link>
		<comments>http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/#comments</comments>
		<pubDate>Fri, 05 Aug 2011 23:45:32 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[CoffeeScript]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/</guid>
		<description><![CDATA[I’ve been using E-TextEditor Buy Clonidine Without Prescription, for more than a year now for doing all my JavaScript, Node.js and CoffeeScript development. Clonidine from mexico, You can think of E-TextEditor as TextMate for the Windows platform. I’ve been pretty happy with it throughout this period as it can be extended pretty easily with a [...]]]></description>
			<content:encoded><![CDATA[<p> <p align="justify">I’ve been using <a href="http://www.e-texteditor.com/" target="_blank">E-TextEditor</a> <b>Buy Clonidine Without Prescription</b>, for more than a year now for doing all my JavaScript, Node.js and CoffeeScript development.  <b>Clonidine from mexico</b>, You can think of E-TextEditor as <a href="http://macromates.com/" target="_blank">TextMate</a> for the Windows platform. I’ve been pretty happy with it throughout this period as it can be extended pretty easily with a whole slew of bundles that are already available for TextMate, <b>cheap Clonidine</b>.  <b>Clonidine recreational</b>, E-TextEditor requires you to install <a href="http://www.cygwin.com/" target="_blank">Cygwin</a> which happens automatically during installation. Using the Cygwin command-line gave me enough (re-)exposure to a Linux-like environment in order for me wanting to (re-)learn about this other platform, <b>purchase Clonidine for sale</b>. More on that in later blog posts, <b>Buy Clonidine Without Prescription</b>.  <b>Low dose Clonidine</b>, Although there haven’t been any new versions of E-TextEditor for quite some time now, the current version enabled me to write JavaScript code in a productive way.</p>  <p align="justify">Only recently I found out about another editor called <a href="http://www.sublimetext.com/2" target="_blank">Sublime Text 2</a> (thanks to <a href="http://twitter.com/#!/casualjim" target="_blank">Ivan Porto Carrero</a>), <b>Clonidine description</b>.  <b>Clonidine overnight</b>, I downloaded this text editor in order to give it a try and I must say that I haven’t opened E-TextEditor ever since. This second version of Sublime Text is still in development but it’s pretty stable as I haven’t run into any issues so far, <b>Clonidine no prescription</b>.  <b>Clonidine brand name</b>, The cool part is that this editor is available for both Windows, Linux and OS X which enabled me to move all my Node.js and CoffeeScript development from Cygwin on Windows to Ubuntu Linux.&#160; </p>  <p align="justify">CoffeeScript isn’t supported out-of-the-box (yet), <b>purchase Clonidine</b>, <b>Clonidine gel, ointment, cream, pill, spray, continuous-release, extended-release</b>, so I installed the <a href="https://github.com/jashkenas/coffee-script-tmbundle" target="_blank">CoffeeScript&#160; TextMate bundle</a> written by <a href="http://ashkenas.com/" target="_blank">Jeremy Ashkenas</a> (yes, the same one from the <a href="http://jashkenas.github.com/coffee-script/" target="_blank">CoffeeScript</a> and <a href="http://documentcloud.github.com/backbone/" target="_blank">Backbone.js</a> fame), <b>Clonidine long term</b>.  Also check out <a href="https://github.com/jashkenas/coffee-script/wiki/Text-editor-plugins" target="_blank">this page on the CoffeeScript wiki</a> for more information on how to bring some CoffeeScript happiness to your own favorite text editor.</p>  <p align="justify"> <b>Buy Clonidine Without Prescription</b>, Setting up this TextMate bundle for use with Sublime Text 2 was actually pretty easy.  <b>Clonidine canada, mexico, india</b>, Just navigate to <em>/home/&lt;my_user_name&gt;/.config/sublime-text-2/Packages</em> in a terminal (or the corresponding file path on Windows) and clone the source of the CoffeeScript TextMate bundle using git: </p>  <blockquote>   <p align="justify"><em>git clone git://github.com/jashkenas/coffee-script-tmbundle CoffeeScript</em></p> </blockquote>  <p align="justify">Next close all the .coffee files and restart Sublime Text 2. Now we have some nice syntax highlighting and some useful code snippets at our disposal.&#160; </p>  <p align="justify"><a href="http://elegantcode.com/wp-content/uploads/2011/08/image.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://elegantcode.com/wp-content/uploads/2011/08/image_thumb.png" width="600" height="396" /></a></p>  <p>It's also possible to hook into <a href="http://sublimetext.info/docs/en/reference/build_systems.html" target="_blank">the build system</a> of Sublime Text 2, <b>Clonidine australia, uk, us, usa</b>.  <b>Clonidine blogs</b>, You just need to create a new file named <em>CoffeeScript.sublime-build</em> at the following location: </p>  <blockquote>   <p><em>/home/&lt;my_user_name&gt;/.config/sublime-text-2/Packages/User&#160; </em></p> </blockquote>  <p align="justify">You can add the following to this new file for compiling CoffeeScript</p>  <pre style="width: 100%; height: 85px" class="csharpcode">{     <span class="str">&quot;cmd&quot;</span>: [<span class="str">&quot;coffee&quot;</span>, <span class="str">&quot;-c&quot;</span>, <b>Clonidine from canada</b>, <b>Is Clonidine addictive</b>, <span class="str">&quot;$file&quot;</span>],     <span class="str">&quot;selector&quot;</span> : <span class="str">&quot;source.coffee&quot;</span>, <b>Clonidine pharmacy</b>, <b>Ordering Clonidine online</b>, <span class="str">&quot;path&quot;</span> : <span class="str">&quot;/usr/local/bin&quot;</span>}</pre><style type="text/css">.csharpcode, .csharpcode pre{	font-size: small;	color: black;	font-family: consolas, <b>Clonidine without prescription</b>, <b>Clonidine no rx</b>, "Courier New", courier, <b>buy no prescription Clonidine online</b>, <b>Clonidine street price</b>, monospace;	background-color: #ffffff;	/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt<br />
{	background-color: #f4f4f4;	width: 100%;	margin: 0em;}.csharpcode .lnum { color: #606060; }</style>or the following for executing/running CoffeeScript code.</p>
<p><pre style="width: 100%; height: 85px" class="csharpcode">{     <span class="str">&quot;cmd&quot;</span>: [<span class="str">&quot;coffee&quot;</span>, <b>Clonidine for sale</b>, <b>What is Clonidine</b>, <span class="str">&quot;$file&quot;</span>],     <span class="str">&quot;selector&quot;</span> : <span class="str">&quot;source.coffee&quot;</span>, <b>get Clonidine</b>, <b>Clonidine class</b>, <span class="str">&quot;path&quot;</span> : <span class="str">&quot;/usr/local/bin&quot;</span>}</pre></p>
<p><p align="justify">Now when you hit F7, this fresh build command is executed when a CoffeeScript source file is showing in the active tab, <b>cheap Clonidine no rx</b>.  It’s also possible to change the build short-key to your own taste through the <em>Preferences</em> menu, <b>Buy Clonidine Without Prescription</b>.  <b>Fast shipping Clonidine</b>, <style type="text/css">.csharpcode, .csharpcode pre{	font-size: small;	color: black;	font-family: consolas, <b>buy Clonidine from canada</b>, <b>Clonidine without a prescription</b>, "Courier New", courier, <b>purchase Clonidine online no prescription</b>, <b>Effects of Clonidine</b>, monospace;	background-color: #ffffff;	/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt<br />
{	background-color: #f4f4f4;	width: 100%;	margin: 0em;}.csharpcode .lnum { color: #606060; }</style></p></p>
<p><p align="justify">Unfortunately, there’s only one build command as I would love to create a separate command for compiling and running CoffeeScript code (or perhaps I missed this feature during the excitement <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://elegantcode.com/wp-content/uploads/2011/08/wlEmoticon-winkingsmile.png" />), <b>buy generic Clonidine</b>.  <b>Is Clonidine safe</b>, </p></p>
<p><p align="justify">Some more usage is definitely needed for me to learn more about this excellent text editor, but currently I’m pretty happy with it, <b>Clonidine trusted pharmacy reviews</b>.  <b>Taking Clonidine</b>, I also need to find out how well JavaScript is supported and perhaps see how far one can go when doing some C# development using Mono. I expect that there are a good number of productive features in there for me to discover.</p></p>
<p><p align="justify">I encourage you have a decent look at this excellent tool, <b>Clonidine dangers</b>.  <b>Order Clonidine from mexican pharmacy</b>, </p></p>
<p><p align="justify">Until next time.</p>.  Herbal Clonidine.</p>
<p></p>
<p><b>Similar posts:</b> <a href='http://elegantcode.com/?p=4452'>Stromectol For Sale</a>. <a href='http://elegantcode.com/?p=4867'>Buy Soma Without Prescription</a>. <a href='http://elegantcode.com/?p=4758'>Buy Atenolol Without Prescription</a>. <a href='http://elegantcode.com/?p=4553'>Buy Female Pink Viagra Without Prescription</a>. <a href='http://elegantcode.com/?p=4560'>Vermox For Sale</a>. <a href='http://elegantcode.com/?p=4662'>Where can i buy cheapest Antabuse online</a>. <a href='http://elegantcode.com/?p=4508'>Slimex (Obetrim) photos</a>. <a href='http://elegantcode.com/?p=4623'>Augmentin description</a>. <a href='http://elegantcode.com/?p=4752'>Buy Colchicine no prescription</a>. <a href='http://elegantcode.com/?p=4322'>Clonidine natural</a>.<br />
<b>Trackbacks from:</b> <a href='http://evanrapoport.com/?p=429'>Buy Clonidine Without Prescription</a>. <a href='http://www.themusclecarplace.com/?p=5350'>Buy Clonidine Without Prescription</a>. <a href='http://changecamp.ca/?p=578'>Buy Clonidine Without Prescription</a>. <a href='http://blog.farmland.org/?p=3172'>Buy Clonidine Without Prescription</a>. <a href='http://home.officesnapshots.com/?p=175'>Buy Clonidine Without Prescription</a>. <a href='http://www.thegriffonnews.com/?p=9699'>Kjøpe Clonidine på nett, köpa Clonidine online</a>. <a href='http://www.quarterlives.com/?p=831'>Buy cheap Clonidine no rx</a>. <a href='http://www.greatgreengoods.com/?p=3511'>Clonidine use</a>. <a href='http://www.macneilbmx.com/blog/?p=5325'>Clonidine no rx</a>. <a href='http://social-blend.com/?p=482'>Online buying Clonidine hcl</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>AutoTest.NET</title>
		<link>http://elegantcode.com/2010/11/30/autotest-net/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=autotest-net</link>
		<comments>http://elegantcode.com/2010/11/30/autotest-net/#comments</comments>
		<pubDate>Tue, 30 Nov 2010 11:00:00 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[TDD]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/11/30/autotest-net/</guid>
		<description><![CDATA[I just want to quickly point out a tool that I’ve been playing with for a couple of days now, named AutoTest.NET. Its an open-source tool that originates from a popular tool in the Ruby community called ZenTest, which basically runs all your valuable unit tests when you save your source files or when you [...]]]></description>
			<content:encoded><![CDATA[<p>I just want to quickly point out a tool that I’ve been playing with for a couple of days now, named <a href="https://github.com/acken/AutoTest.Net" target="_blank">AutoTest.NET</a>. Its an open-source tool that originates from a popular tool in the Ruby community called <a href="http://www.zenspider.com/ZSS/Products/ZenTest/" target="_blank">ZenTest</a>, which basically runs all your valuable unit tests when you save your source files or when you build your code. It enables you to get feedback about your changes as soon as possible.</p>  <p>The project started out a couple of years ago on <a href="http://code.google.com/p/autotestnet/" target="_blank">Google code</a> and was first initiated by <a href="http://averyblog.com/" target="_blank">James Avery</a>. Contribution stopped at some point until recently where <a href="http://ackenpacken.blogspot.com/" target="_blank">Svein Arne Ackenhausen</a> forked the source code and <a href="https://github.com/acken/AutoTest.Net" target="_blank">put it on GitHub</a>. Now it runs both for .NET as well as Mono, with NUnit, MSTest and xUnit as the currently supported unit test frameworks. </p>  <p>Here’s a screenshot from the feedback window when all tests pass:</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2010/11/Success.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Success" border="0" alt="Success" src="http://elegantcode.com/wp-content/uploads/2010/11/Success_thumb.png" width="540" height="189" /></a> </p>  <p>And here you can see the same window after I broke one of my unit tests:</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2010/11/Failure.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Failure" border="0" alt="Failure" src="http://elegantcode.com/wp-content/uploads/2010/11/Failure_thumb.png" width="538" height="319" /></a> </p>  <p>Here you can see which particular unit test has been broken and by clicking the specified link you end up at the right source file in Visual Studio. </p>  <p>I encourage you to pick up this small tool and learn how it can facilitate your TDD flow. Take a look at <a href="https://github.com/acken/AutoTest.Net/wiki/Get-started!" target="_blank">this page</a> in order to get up-and-running in no time. Also don’t forget to provide the owner(s) of this project with some feedback that you might have. Svein has been very helpful over the last week answering all my stupid questions and remarks (and the Nobel price for this year’s most patient person goes to … ;-) ). </p>  <p>I would definitely like to see this tool becoming more popular, so go check it out.&#160;&#160; </p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/11/30/autotest-net/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Unity/Moq &#8211; AutoMocker or AutoMockingContainer</title>
		<link>http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=unitymoq-automocker-or-automockingcontainer</link>
		<comments>http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 16:52:33 +0000</pubDate>
		<dc:creator>Jason Jarrett</dc:creator>
				<category><![CDATA[TDD]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/</guid>
		<description><![CDATA[What is an Auto Mocking Container? This post started to get a little long, so I won’t re-explain the concept. Joshua Flanagan wrote a nice overview at his Los Techies blog: Auto mocking Explained. My post is mainly here to describe the Unity version of an automocking container I threw together. In Jan 2009 I [...]]]></description>
			<content:encoded><![CDATA[<h4>What is an Auto Mocking Container?</h4>  <p>This post started to get a little long, so I won’t re-explain the concept.</p>  <p><a href="http://www.lostechies.com/blogs/joshuaflanagan/default.aspx">Joshua Flanagan</a> wrote a nice overview at his <a href="http://www.lostechies.com/">Los Techies</a> blog: <a href="http://www.lostechies.com/blogs/joshuaflanagan/archive/2009/02/03/auto-mocking-explained.aspx"><strong>Auto mocking Explained</strong></a>.</p>  <p>My post is mainly here to describe the Unity version of an automocking container I threw together.</p>  <h4>In Jan 2009 I blogged about my initial version of the Unity AutoMocker - Why am I blogging about it again?</h4>  <p>I originally wrote the AutoMocker for the Unity container a year ago (Jan 2009, in Silverlight), and finally got around to placing the code up in the <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a> project in June of 2009.</p>  <p>I’m writing another post today in hopes to:</p>  <ol>   <li>Get some feedback on how this little snippet of code should continue. </li>    <li>Give a little more how-to/example code </li>    <li>Describe some updates I made since I originally created it.&#160; </li> </ol>  <h4>Where can I get it?</h4>  <p><strong>This is one part where I’d appreciate some feedback.</strong></p>  <p>I have two slightly different versions out there (currently).</p>  <p>I have one version at the <a href="http://code.google.com/p/elegantcode/source/browse/#svn/trunk/Coders/JasonJarrett/UnityAutoMocker">ElegantCode</a> repository where I was working on it, and the other I threw up at <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a>.</p>  <p>The core of the UnityAutoMockContainer is the same in both places, it’s how the tests are separated out that differ.</p>  <p>In the <a href="http://code.google.com/p/elegantcode/source/browse/#svn/trunk/Coders/JasonJarrett/UnityAutoMocker">ElegantCode repository</a> it’s an all in one self contained single file (that you can copy into your own test project(s)). You can then setup a single test in your own testing framework that runs all internal automocker tests (in case you need to modify it yourself, and don’t want to break any existing functionality). EX: test</p>  <pre class="brush: csharp;">[Test]
public void Should_run_all_UnityAutoMockContainer_internal_tests()
{
    Moq.AutoMocking.SelfTesting.UnityAutoMockContainerFixture
        .RunAllTests(Console.WriteLine);
}</pre>

<p>I kind of like this format as it makes it easy to port between test libraries. Can’t say I like having the tests in the same file as the core, but it certainly is not a large chunk of code (so far) so it’s relatively small to maintain and definitely easier to manage as a single .cs file than another assembly (which would have to be version dependent on both Unity and Moq).</p>

<p>The <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a> is definitely where I think this helper should end up (and it is there). I just happened to break the tests out into the Silverlight test project and the core is alone in a file. </p>

<p>It’s current state isn’t as easy to copy to a test library (Silverlight/Desktop/Unity 1.2/Unity 2.0) as the one at <a href="http://elegantcode.com/">ElegantCode</a>. <strong>What does anyone think?</strong> Should I put them all together in one file?</p>

<p>However it ends up (1. all in one file or two (1 test) (1 core)) it will continue to be maintained on the <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a> project.</p>

<h4>What is the high level API of the container?</h4>

<p>It’s pretty simple, (currently) there are four methods on the container.</p>

<p><strong>Two for registering items with the container</strong>. Say you want to register an already created instance, or say you want to map an interface to a concrete class and _not_ have the container generate mocks automatically for special cases. </p>

<p>And <strong>two for pulling items out of the container</strong>. Whether you want a instance of T or a Mock&lt;T&gt;, it gives you ways to retrieve both.</p>

<blockquote>
  <p><a href="http://elegantcode.com/wp-content/uploads/2010/01/image.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://elegantcode.com/wp-content/uploads/2010/01/image_thumb.png" width="396" height="106" /></a> </p>
</blockquote>

<h4>How can I setup my own registrations with the container? </h4>

<p>Say I don’t want to have the container generate mocks for specific items and I want to supply specific configuration to the UnityContainer.</p>

<blockquote>
  <p>public UnityAutoMockContainer RegisterInstance&lt;TService&gt;(TService instance)</p>

  <p>public UnityAutoMockContainer Register&lt;TService, TImplementation&gt;() 
    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; where TImplementation : TService</p>
</blockquote>

<p><strong>Note</strong>: both of these registration methods return the container itself so you can fluently stack registration. <strong>EX:</strong></p>

<pre class="brush: csharp;">AutoMockContainer
    .Register&lt;IServiceA, ServiceA&gt;()
    .Register&lt;IServiceB, ServiceB&gt;();</pre>

<p><strong>Let me know</strong>: I haven’t tested or played around with how this automocking container deals with any container specific xml configuration… So although I don’t think you should probably have that in a test assembly (stuff happens). Let me know if there are any issues.</p>

<h4>How do I get items out of the container?</h4>

<p>First is the Resolve&lt;T&gt;(). It will pull an item T out of the container. (Creating it if not already existing)</p>

<blockquote>
  <p>public T Resolve&lt;T&gt;()</p>
</blockquote>

<p>When T is an interface Resolve&lt;T&gt; (unless you setup registration specifically with the container) should return basically “(new Mock&lt;T&gt;()).Object”</p>

<p>When T is a concrete Class, the container should return an instance of T and any of it’s dependencies will be satisfied by mocks. (Note that T will not be any sort of mocked instance of T, unless you used the GetMock&lt;T&gt; as described below first)</p>

<blockquote>
  <p>public Mock&lt;T&gt; GetMock&lt;T&gt;() where T : class</p>
</blockquote>

<p>When T is an interface GetMock&lt;T&gt; should return basically “(new Mock&lt;T&gt;())” </p>

<p>When T is a concrete Class, the container should return a new Mock&lt;T&gt;() and any of it’s dependencies will be satisfied by mocks.</p>

<h4>How do I use the UnityAutoMockContainer?</h4>

<p>It’s pretty basic, you first create an instance of the UnityAutoMockContainer, and from there you can ask it for mocks of an (Interface, Class, or Abstract Class).</p>

<p>If you request an instance of a concrete class, or abstract class, the UnityAutoMockContainer will stuff mocks in for any constructor dependencies of your concrete class (if it can). You can then request from the container those same dependencies one at a time and either apply mocking setups or verifications.</p>

<blockquote>
  <p><strong>NOTE:</strong> Anything the container creates will live as a singleton instance in the container. So any other requests from the container will always return the originally created instance. Therefore, each distinct scenario in a test suite should have their own instances of the container.</p>
</blockquote>

<p>Below his an example of how you can leverage the container in some tests. Given this base fixture class…</p>

<pre class="brush: csharp;">public class FixtureBase
{
    private readonly UnityAutoMockContainer _autoMockContainer = new UnityAutoMockContainer();

    protected UnityAutoMockContainer AutoMockContainer
    {
        get { return _autoMockContainer; }
    }

    [TestFixtureSetUp]
    public void SetupContext_ALL()
    {
        Before_all_tests();
        Because();
    }

    [TestFixtureTearDown]
    public void TearDownContext_ALL()
    {
        After_all_tests();
    }

    protected virtual void Before_all_tests()
    {
    }

    protected virtual void Because()
    {
    }

    protected virtual void After_all_tests()
    {
    }
}</pre>

<p>If I were given the following system to test.</p>

<pre class="brush: csharp;">public interface IServiceA { void RunA(); }
public interface IServiceB { void RunB(); }

public class TestComponent
{
    public TestComponent(IServiceA serviceA, IServiceB serviceB)
    {
        ServiceA = serviceA;
        ServiceB = serviceB;
    }

    public IServiceA ServiceA { get; private set; }
    public IServiceB ServiceB { get; private set; }

    public void RunAll()
    {
        if (!HowDidItGo())
            return;
        ServiceA.RunA();
        ServiceB.RunB();
    }

    public virtual bool HowDidItGo()
    {
        // some really nasty untestable code
        return true;
    }
}</pre>

<p>The below example demonstrates simply verifying some behavior on the mocked dependencies of the system under test.</p>

<pre class="brush: csharp;">[TestFixture]
public class Example__how_to_pull_items_from_the_UnityAutoMockContainer_when_verifying_behavior_after_an_action_was_taken 
    : FixtureBase
{
    private TestComponent _testComponent;

    protected override void Before_all_tests()
    {
        base.Before_all_tests();
        _testComponent = AutoMockContainer.Resolve&lt;TestComponent&gt;();
    }

    protected override void Because()
    {
        _testComponent.RunAll();
    }

    [Test]
    public void Should_run_ServiceA_RunA()
    {
        AutoMockContainer
            .GetMock&lt;IServiceA&gt;()
            .Verify(v =&gt; v.RunA(), Times.Once());
    }

    [Test]
    public void Should_run_ServiceB_RunB()
    {
        AutoMockContainer
            .GetMock&lt;IServiceB&gt;()
            .Verify(v =&gt; v.RunB(), Times.Once());
    }
}</pre>

<p>Next, you may have noticed that the system under test had a complicated internal method (that may not necessarily be testable). You can use the AutoMocker to create the system under test as a Mock itself, so we can override some of the behavior. Here’s how you could quickly do that. </p>

<blockquote>
  <p><strong>Aside</strong>: I’m not saying this is a good practice or aids in good component design, just saying it’s possible</p>
</blockquote>

<pre class="brush: csharp;">[TestFixture]
public class Example__how_to_use_the_UnityAutoMockContainer_to_override_a_method_on_the_SystemUnderTest_to_test_a_certain_behavior
    : FixtureBase
{

    private TestComponent _testComponent;

    protected override void Before_all_tests()
    {
        base.Before_all_tests();
        var mockTestComponent = AutoMockContainer.GetMock&lt;TestComponent&gt;();

        mockTestComponent
            .Setup(s =&gt; s.HowDidItGo())
            .Returns(false);

        _testComponent = mockTestComponent.Object;
    }

    protected override void Because()
    {
        _testComponent.RunAll();
    }

    [Test]
    public void Should_run_ServiceA_RunA()
    {
        AutoMockContainer
            .GetMock&lt;IServiceA&gt;()
            .Verify(v =&gt; v.RunA(), Times.Never());
    }

    [Test]
    public void Should_run_ServiceB_RunB()
    {
        AutoMockContainer
            .GetMock&lt;IServiceB&gt;()
            .Verify(v =&gt; v.RunB(), Times.Never());
    }
}</pre>

<p>&#160;</p>

<p>It’s amazing how much redundant test setup code this little helper has saved me in my tests. I hope others can find some use with this as well.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>StatLight &#8211; Goes Open Source</title>
		<link>http://elegantcode.com/2009/12/10/statlight-goes-open-source/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=statlight-goes-open-source</link>
		<comments>http://elegantcode.com/2009/12/10/statlight-goes-open-source/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 03:26:55 +0000</pubDate>
		<dc:creator>Jason Jarrett</dc:creator>
				<category><![CDATA[Esoterica]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/12/10/statlight-goes-open-source/</guid>
		<description><![CDATA[Although I made a very minor attempt at making StatLight a “for-sale” product, I knew when I started that open-source was most likely going to be my long term path for StatLight. What is it? (Silverlight Testing Automation Tool) StatLight is a tool developed for automating the setup, running, and gathering results of Silverlight unit [...]]]></description>
			<content:encoded><![CDATA[Although I made a very minor attempt at making <a href="http://statlight.net" target="_blank">StatLight</a> a “for-sale” product, I knew when I started that open-source was most likely going to be my long term path for <a href="http://statlight.net" target="_blank">StatLight</a>.
<h5>What is it? (Silverlight Testing Automation Tool)</h5>
StatLight is a tool developed for automating the setup, running, and gathering results of Silverlight unit tests. StatLight helps to speed up the feedback cycles while practicing<a href="http://en.wikipedia.org/wiki/Test-driven_development"> TDD</a>/<a href="http://en.wikipedia.org/wiki/Behavior_Driven_Development">BDD</a>/(insert your test style here) during Silverlight development.
<h5>Where can I get StatLight?</h5>
<a href="http://StatLight.CodePlex.com">http://StatLight.CodePlex.com</a>
<h4>Happy Coding !!!</h4>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/12/10/statlight-goes-open-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Removing U3 from Your Thumb Drives</title>
		<link>http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=removing-u3-from-your-thumb-drives</link>
		<comments>http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 18:31:17 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/</guid>
		<description><![CDATA[U3 is a technology used install boot software on thumb drives. Companies use this to ensure that some little application will get loaded or something when you plug their thumb drive into your Windows machine. This can be a favorite move of vendors who give away thumb drives at conferences as swag. They want to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/U3" target="_blank">U3</a> is a technology used install boot software on thumb drives. Companies use this to ensure that some little application will get loaded or something when you plug their thumb drive into your Windows machine.</p>  <p>This can be a favorite move of vendors who give away thumb drives at conferences as swag. They want to launch their little demo app or whatever when you plug in the drive.</p>  <p>It can be very annoying.</p>  <p>I am trying to create a Win7 install thumb drive for my wife’s netbook and I have a great 4G thumb drive to hold the media. Unfortunately, my thumb drive had this U3 stuff on it and won’t work as a boot disc as long as that pesky software is on it.</p>  <p>The simple answer is this little utility: <a href="http://u3uninstall.s3.amazonaws.com/U3Uninstall.exe">U3Uninstall.exe</a>. After running this utility on the thumb drive I have a plain ole storage drive I can use as a Win7 bootable install disc.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Team Build without Tests Lists</title>
		<link>http://elegantcode.com/2009/10/02/team-build-without-tests-lists/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=team-build-without-tests-lists</link>
		<comments>http://elegantcode.com/2009/10/02/team-build-without-tests-lists/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 19:40:04 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[MSDN]]></category>
		<category><![CDATA[Team System]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/10/02/team-build-without-tests-lists/</guid>
		<description><![CDATA[Test lists drive me nuts. I recently recorded a screen cast showing how to pull of CI without the test lists. Here ya go! Here’s a link to the screen cast.]]></description>
			<content:encoded><![CDATA[Test lists drive me nuts. I recently recorded a screen cast showing how to pull of CI without the test lists. Here ya go!

<a href="http://www.pluralsight.com/main/screencasts/screencast.aspx?id=vsts08-continuous-integration" target="_blank">Here’s a link to the screen cast</a>.]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/10/02/team-build-without-tests-lists/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Healthy Team Habits with Team System</title>
		<link>http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=healthy-team-habits-with-team-system</link>
		<comments>http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 19:36:21 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Team System]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/</guid>
		<description><![CDATA[I wrote an article recently for the Pluralsight newsletter discussing how to use a tool like Team System to drive positive organizational change. Here’s a pointer to the article.]]></description>
			<content:encoded><![CDATA[<p>I wrote an article recently for the Pluralsight newsletter discussing how to use a tool like Team System to drive positive organizational change. </p>  <p><a href="http://bit.ly/3CAC8Z" target="_blank">Here’s a pointer to the article</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code Cast 30 &#8211; Story Teller with Jeremy Miller</title>
		<link>http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=code-cast-30-story-teller-with-jeremy-miller</link>
		<comments>http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 17:38:16 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[ALT.NET]]></category>
		<category><![CDATA[CodeCast]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/</guid>
		<description><![CDATA[The venerable Jeremy Miller joined us to talk about YAIJMOSP (Yet Another Impressive Jeremy Miller Open Source Project). This week’s Jeremy project is Story Teller. Jeremy’s other contributions to the community include StructureMap and an obtuse fascination with separation patterns for user interfaces. Story Teller is an alternative for Fitnesse, implemented in .NET and chases [...]]]></description>
			<content:encoded><![CDATA[<p>The venerable Jeremy Miller joined us to talk about YAIJMOSP (Yet Another Impressive Jeremy Miller Open Source Project). This week’s Jeremy project is Story Teller.</p>  <p>Jeremy’s other contributions to the community include <a href="http://codebetter.com/blogs/products/pages/131734.aspx">StructureMap</a> and an <a href="http://www.virtualaltnet.com/Recordings">obtuse fascination with separation patterns</a> for user interfaces.</p>  <p>Story Teller is an alternative for Fitnesse, implemented in .NET and chases the holy grail of executable requirements. If you are interested in how to achieve the promise of shared and executable requirements, this just might be your tool.</p>  <ul>   <li><a href="http://storyteller.tigris.org/">Story Teller</a> </li>    <li><a href="http://codebetter.com/blogs/jeremy.miller/archive/2009/08/24/how-about-a-storyteller-preview-release.aspx">Jeremy’s StoryTeller post on a preview release</a> </li> </ul>  <p><a href="http://pluralsight-free.s3.amazonaws.com/david-starr/ecc/ECC_30_StoryTeller.mp3">Get the show here</a></p>  <p><a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=271207118"><img border="0" alt="View in iTunes" src="http://elegantcode.com/cast/files/images/itunes_button.gif" /></a> <a href="http://feeds2.feedburner.com/elegantcodecast"><img border="0" alt="Any Podcatcher" src="http://elegantcode.com/cast/files/images/rss_podcast.jpg" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
<enclosure url="http://pluralsight-free.s3.amazonaws.com/david-starr/ecc/ECC_30_StoryTeller.mp3" length="36208890" type="audio/mpeg" />
		</item>
		<item>
		<title>Visual Studio Team System for Small Teams</title>
		<link>http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=visual-studio-team-system-for-small-teams</link>
		<comments>http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 23:27:41 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[ALM]]></category>
		<category><![CDATA[Craftsmanship]]></category>
		<category><![CDATA[Source Control]]></category>
		<category><![CDATA[Team System]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/</guid>
		<description><![CDATA[There was a recent brouhaha on Twitter and in some blogs about the appropriateness of Team System in small teams. The gist of the discussion was simply that there are a lot of alternatives to TFS and VSTS tooling and many of them come cheaper out of the box. In many cases, free! Duh. I [...]]]></description>
			<content:encoded><![CDATA[<p>There was a recent brouhaha on Twitter and in some blogs about the appropriateness of Team System in small teams. The gist of the discussion was simply that there are a lot of alternatives to TFS and VSTS tooling and many of them come cheaper out of the box. In many cases, free!</p>  <p>Duh.</p>  <p>I have worked with Team System quite a bit and with alternatives just as much. With a lot of experience behind me on this, I feel confident I can make a legitimate case for using Team System in a small team.</p>  <p>I consider a small team a development organization of fewer than 10 people.</p>  <h3>Some Context and Disclosure</h3>  <ul>   <li>I am a Team System MVP </li>    <li>I use Team System on a daily basis </li>    <li>I use SVN+Team City on a daily basis </li>    <li>I care more about pragmatism and craftsmanship than tooling, and that means focusing on how to use tools, not just the tools themselves </li>    <li>I have been present on day one of a brand new team </li>    <li>I have been in a team that has grown quickly over a short time </li> </ul>  <h3>Focus on the Work</h3>  <p>What happens when teams squabble about tools instead of just getting on with it? Lots of churn and wasted energy, is my experience. </p>  <p>I can report having seen small teams succeed and fail. The success or failure in both cases obviously has a lot more to do with leadership and business than developer tools, but I can also say the way companies approach developer tooling can have a lot to do with culture.</p>  <p>Any startup or small team simply <em>must</em> be focused to succeed. This can also be extremely difficult to achieve. A small team simply doesn’t have the capacity or depth to be distracted with issues not pertaining to delivering product. Paradoxically, team members are often wearing several hats. That is, everyone is doing a little of everything. That can quickly trend to entropy, because no one ends focusing on the work at hand.</p>  <p>The last thing I want to do on day 1 of a new team, or very often in a small teams, is visit tooling. Not deliberately making choices about tooling, though, will eventually bite you. Hard. How many of us are in organizations with over 2 brands of source control systems because new ones were added in an ad-hoc manor? I’ve been there. How many unit test frameworks are being used? I have been on a team that used 4 at once. Think that caused some problems?</p>  <p>As team lead, I care far less about optimizations of specific tools, and far more about a cohesive and fluid process enabling flow within the team. I care a great deal that there is a single source of truth for requirements and very little that we are using the coolest new unit test framework.</p>  <p>Often, focusing on work simply means implementing a system of tools and getting past the discussion. Have you ever heard developers purse fight over text editors? Now, there’s a constructive use of energy. The same thing can happen when geeks whip out their favorite source control, merge tools, unit testing frameworks, Visual Studio add-ins, logging library, laptop brand, or bug tracking system. </p>  <p>Point number one is let’s get past the time suck of the my-NAnt-is-better-than-your-MS-Build and just prescribe a toolset so we can get on with the real business of our team. </p>  <h3>Team System is Like a Box of Tools at Sears</h3>  <p>When I go to Sears and browse the Craftsman (or DeWalt) tools, I usually see some interesting little specialty tools. I might buy a funky swivel socket or a single ratchet, but I rarely browse the aisle with the large all-in-one kits. The reason I don’t browse the kit aisle is because my father-in-law bought be a basic Craftsman starter kit almost 20 years ago and my collection of tools has grown over time. </p>  <p>I don’t still have all of the tools in that original kit, but I do still have many of them. Further, my need for hand tools have gotten more specialized over time. Also, I am making a bit more money than I was when I married my wife, so I may spend extra for a special-purpose hammer rather than always relying on the one that came in the original kit.</p>  <p>Without that original kit, though, I would never have been able to even get started. No, it didn’t have every tool I would ever need, but it had almost everything I needed right then.</p>  <p>Team System is much the same. A team can absolutely hit the ground running with the rich toolset VSTS provides. Maybe you’ll augment the toolbox over time. Maybe you’ll even change tools (can anyone say [TestClass]?) but the kit that comes in the box really can provide most of what a small team needs to get going, and do it in a single solution.</p>  <p>That’s huge. </p>  <p>As soon as I start looking around to sub-optimize my hammer or my source control, I am going to start slowing the team down. GIT? SVN? PerForce? There are a ton of options for source control, each with their strengths and weaknesses. It’s freaking source control. Get on with it. I mean, how sexy can a hammer be?</p>  <h3>It May Not Cost What You Think</h3>  <p>You can buy a big toolkit at Sears for far less than it costs to buy all the tools individually. Further, buying the toolkit for the person without tools is a good move because they will have all the basics covered in a single purchase. </p>  <p>Craftsman Toolkits are a favorite gift of mine for graduates and newlyweds for this very reason.</p>  <p>Microsoft has the same insight that Sears had. If a person gets accustomed to Craftsman by selling the kit cheaply, they’ll be a customer for life. This is the exact idea behind the BizSpark program. If you aren’t familiar with it, BizSpark is a Microsoft program that allows free (that’s right, free!) access to all developer tools, operating systems, and other software for startups.</p>  <p>Is your company less than 2 years old? Do you make software? If yes, you qualify, I kid you not.</p>  <h3>Integration Matters</h3>  <p>Even if you are paying full price (which you shouldn’t :) ) I believe the value of VSTS is still there. The productivity loss involved in setting up a system of disparate and non-integrated developer tools is tremendous. I have been there and done that.</p>  <p>I know SVN is good. I know Team City is good. I also know that setting up a basic Continuous Integration build in Team System is stupid simple. And the real money shot comes with Work Item management. How many teams out there are using work item management systems or defect tracking systems they hate?</p>  <p>Well, we all are. </p>  <p>So, we may as well have one that works right in the IDE and allows me to tie check ins to work I am performing. The context switching that occurs in non-integrated systems of reporting, SCC, build, and work item management is HUGE. Huge! No really. </p>  <h3>Get On With It</h3>  <p>The people involved in the recent online Team System kerfuffle are folks I would consider in the top 1% of developer talent. Quite frankly, it makes a lot of sense to me that people at that level will have replaced their hammer from the kit with one that has an ergonomic grip.</p>  <p>That said, there are a lot of startups and small teams in entropy out there. For those folks, I firmly believe that standardizing on an integrated toolset for the development team is a bigger savings than “free like a puppy” solutions that can work well, but with more churn.</p>  <p>Now quit fussing about source control and learn how to use a decent ORM, people.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Implementing Team City for .NET Projects, Part 5: Deployments</title>
		<link>http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=visual-studio-team-system-for-small-teams</link>
		<comments>http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 23:27:41 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[ALM]]></category>
		<category><![CDATA[Craftsmanship]]></category>
		<category><![CDATA[Source Control]]></category>
		<category><![CDATA[Team System]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/</guid>
		<description><![CDATA[There was a recent brouhaha on Twitter and in some blogs about the appropriateness of Team System in small teams. The gist of the discussion was simply that there are a lot of alternatives to TFS and VSTS tooling and many of them come cheaper out of the box. In many cases, free! Duh. I [...]]]></description>
			<content:encoded><![CDATA[<p>There was a recent brouhaha on Twitter and in some blogs about the appropriateness of Team System in small teams. The gist of the discussion was simply that there are a lot of alternatives to TFS and VSTS tooling and many of them come cheaper out of the box. In many cases, free!</p>  <p>Duh.</p>  <p>I have worked with Team System quite a bit and with alternatives just as much. With a lot of experience behind me on this, I feel confident I can make a legitimate case for using Team System in a small team.</p>  <p>I consider a small team a development organization of fewer than 10 people.</p>  <h3>Some Context and Disclosure</h3>  <ul>   <li>I am a Team System MVP </li>    <li>I use Team System on a daily basis </li>    <li>I use SVN+Team City on a daily basis </li>    <li>I care more about pragmatism and craftsmanship than tooling, and that means focusing on how to use tools, not just the tools themselves </li>    <li>I have been present on day one of a brand new team </li>    <li>I have been in a team that has grown quickly over a short time </li> </ul>  <h3>Focus on the Work</h3>  <p>What happens when teams squabble about tools instead of just getting on with it? Lots of churn and wasted energy, is my experience. </p>  <p>I can report having seen small teams succeed and fail. The success or failure in both cases obviously has a lot more to do with leadership and business than developer tools, but I can also say the way companies approach developer tooling can have a lot to do with culture.</p>  <p>Any startup or small team simply <em>must</em> be focused to succeed. This can also be extremely difficult to achieve. A small team simply doesn’t have the capacity or depth to be distracted with issues not pertaining to delivering product. Paradoxically, team members are often wearing several hats. That is, everyone is doing a little of everything. That can quickly trend to entropy, because no one ends focusing on the work at hand.</p>  <p>The last thing I want to do on day 1 of a new team, or very often in a small teams, is visit tooling. Not deliberately making choices about tooling, though, will eventually bite you. Hard. How many of us are in organizations with over 2 brands of source control systems because new ones were added in an ad-hoc manor? I’ve been there. How many unit test frameworks are being used? I have been on a team that used 4 at once. Think that caused some problems?</p>  <p>As team lead, I care far less about optimizations of specific tools, and far more about a cohesive and fluid process enabling flow within the team. I care a great deal that there is a single source of truth for requirements and very little that we are using the coolest new unit test framework.</p>  <p>Often, focusing on work simply means implementing a system of tools and getting past the discussion. Have you ever heard developers purse fight over text editors? Now, there’s a constructive use of energy. The same thing can happen when geeks whip out their favorite source control, merge tools, unit testing frameworks, Visual Studio add-ins, logging library, laptop brand, or bug tracking system. </p>  <p>Point number one is let’s get past the time suck of the my-NAnt-is-better-than-your-MS-Build and just prescribe a toolset so we can get on with the real business of our team. </p>  <h3>Team System is Like a Box of Tools at Sears</h3>  <p>When I go to Sears and browse the Craftsman (or DeWalt) tools, I usually see some interesting little specialty tools. I might buy a funky swivel socket or a single ratchet, but I rarely browse the aisle with the large all-in-one kits. The reason I don’t browse the kit aisle is because my father-in-law bought be a basic Craftsman starter kit almost 20 years ago and my collection of tools has grown over time. </p>  <p>I don’t still have all of the tools in that original kit, but I do still have many of them. Further, my need for hand tools have gotten more specialized over time. Also, I am making a bit more money than I was when I married my wife, so I may spend extra for a special-purpose hammer rather than always relying on the one that came in the original kit.</p>  <p>Without that original kit, though, I would never have been able to even get started. No, it didn’t have every tool I would ever need, but it had almost everything I needed right then.</p>  <p>Team System is much the same. A team can absolutely hit the ground running with the rich toolset VSTS provides. Maybe you’ll augment the toolbox over time. Maybe you’ll even change tools (can anyone say [TestClass]?) but the kit that comes in the box really can provide most of what a small team needs to get going, and do it in a single solution.</p>  <p>That’s huge. </p>  <p>As soon as I start looking around to sub-optimize my hammer or my source control, I am going to start slowing the team down. GIT? SVN? PerForce? There are a ton of options for source control, each with their strengths and weaknesses. It’s freaking source control. Get on with it. I mean, how sexy can a hammer be?</p>  <h3>It May Not Cost What You Think</h3>  <p>You can buy a big toolkit at Sears for far less than it costs to buy all the tools individually. Further, buying the toolkit for the person without tools is a good move because they will have all the basics covered in a single purchase. </p>  <p>Craftsman Toolkits are a favorite gift of mine for graduates and newlyweds for this very reason.</p>  <p>Microsoft has the same insight that Sears had. If a person gets accustomed to Craftsman by selling the kit cheaply, they’ll be a customer for life. This is the exact idea behind the BizSpark program. If you aren’t familiar with it, BizSpark is a Microsoft program that allows free (that’s right, free!) access to all developer tools, operating systems, and other software for startups.</p>  <p>Is your company less than 2 years old? Do you make software? If yes, you qualify, I kid you not.</p>  <h3>Integration Matters</h3>  <p>Even if you are paying full price (which you shouldn’t :) ) I believe the value of VSTS is still there. The productivity loss involved in setting up a system of disparate and non-integrated developer tools is tremendous. I have been there and done that.</p>  <p>I know SVN is good. I know Team City is good. I also know that setting up a basic Continuous Integration build in Team System is stupid simple. And the real money shot comes with Work Item management. How many teams out there are using work item management systems or defect tracking systems they hate?</p>  <p>Well, we all are. </p>  <p>So, we may as well have one that works right in the IDE and allows me to tie check ins to work I am performing. The context switching that occurs in non-integrated systems of reporting, SCC, build, and work item management is HUGE. Huge! No really. </p>  <h3>Get On With It</h3>  <p>The people involved in the recent online Team System kerfuffle are folks I would consider in the top 1% of developer talent. Quite frankly, it makes a lot of sense to me that people at that level will have replaced their hammer from the kit with one that has an ergonomic grip.</p>  <p>That said, there are a lot of startups and small teams in entropy out there. For those folks, I firmly believe that standardizing on an integrated toolset for the development team is a bigger savings than “free like a puppy” solutions that can work well, but with more churn.</p>  <p>Now quit fussing about source control and learn how to use a decent ORM, people.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Elegant Code &#187; Tools and Utilities</title>
	<atom:link href="http://elegantcode.com/category/tools-and-utilities/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com</link>
	<description></description>
	<lastBuildDate>Tue, 15 May 2012 10:00:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Buy Clonidine Without Prescription</title>
		<link>http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=moving-from-e-texteditor-to-sublime-text-2</link>
		<comments>http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/#comments</comments>
		<pubDate>Fri, 05 Aug 2011 23:45:32 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[CoffeeScript]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/</guid>
		<description><![CDATA[I’ve been using E-TextEditor Buy Clonidine Without Prescription, for more than a year now for doing all my JavaScript, Node.js and CoffeeScript development. Clonidine from mexico, You can think of E-TextEditor as TextMate for the Windows platform. I’ve been pretty happy with it throughout this period as it can be extended pretty easily with a [...]]]></description>
			<content:encoded><![CDATA[<p> <p align="justify">I’ve been using <a href="http://www.e-texteditor.com/" target="_blank">E-TextEditor</a> <b>Buy Clonidine Without Prescription</b>, for more than a year now for doing all my JavaScript, Node.js and CoffeeScript development.  <b>Clonidine from mexico</b>, You can think of E-TextEditor as <a href="http://macromates.com/" target="_blank">TextMate</a> for the Windows platform. I’ve been pretty happy with it throughout this period as it can be extended pretty easily with a whole slew of bundles that are already available for TextMate, <b>cheap Clonidine</b>.  <b>Clonidine recreational</b>, E-TextEditor requires you to install <a href="http://www.cygwin.com/" target="_blank">Cygwin</a> which happens automatically during installation. Using the Cygwin command-line gave me enough (re-)exposure to a Linux-like environment in order for me wanting to (re-)learn about this other platform, <b>purchase Clonidine for sale</b>. More on that in later blog posts, <b>Buy Clonidine Without Prescription</b>.  <b>Low dose Clonidine</b>, Although there haven’t been any new versions of E-TextEditor for quite some time now, the current version enabled me to write JavaScript code in a productive way.</p>  <p align="justify">Only recently I found out about another editor called <a href="http://www.sublimetext.com/2" target="_blank">Sublime Text 2</a> (thanks to <a href="http://twitter.com/#!/casualjim" target="_blank">Ivan Porto Carrero</a>), <b>Clonidine description</b>.  <b>Clonidine overnight</b>, I downloaded this text editor in order to give it a try and I must say that I haven’t opened E-TextEditor ever since. This second version of Sublime Text is still in development but it’s pretty stable as I haven’t run into any issues so far, <b>Clonidine no prescription</b>.  <b>Clonidine brand name</b>, The cool part is that this editor is available for both Windows, Linux and OS X which enabled me to move all my Node.js and CoffeeScript development from Cygwin on Windows to Ubuntu Linux.&#160; </p>  <p align="justify">CoffeeScript isn’t supported out-of-the-box (yet), <b>purchase Clonidine</b>, <b>Clonidine gel, ointment, cream, pill, spray, continuous-release, extended-release</b>, so I installed the <a href="https://github.com/jashkenas/coffee-script-tmbundle" target="_blank">CoffeeScript&#160; TextMate bundle</a> written by <a href="http://ashkenas.com/" target="_blank">Jeremy Ashkenas</a> (yes, the same one from the <a href="http://jashkenas.github.com/coffee-script/" target="_blank">CoffeeScript</a> and <a href="http://documentcloud.github.com/backbone/" target="_blank">Backbone.js</a> fame), <b>Clonidine long term</b>.  Also check out <a href="https://github.com/jashkenas/coffee-script/wiki/Text-editor-plugins" target="_blank">this page on the CoffeeScript wiki</a> for more information on how to bring some CoffeeScript happiness to your own favorite text editor.</p>  <p align="justify"> <b>Buy Clonidine Without Prescription</b>, Setting up this TextMate bundle for use with Sublime Text 2 was actually pretty easy.  <b>Clonidine canada, mexico, india</b>, Just navigate to <em>/home/&lt;my_user_name&gt;/.config/sublime-text-2/Packages</em> in a terminal (or the corresponding file path on Windows) and clone the source of the CoffeeScript TextMate bundle using git: </p>  <blockquote>   <p align="justify"><em>git clone git://github.com/jashkenas/coffee-script-tmbundle CoffeeScript</em></p> </blockquote>  <p align="justify">Next close all the .coffee files and restart Sublime Text 2. Now we have some nice syntax highlighting and some useful code snippets at our disposal.&#160; </p>  <p align="justify"><a href="http://elegantcode.com/wp-content/uploads/2011/08/image.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://elegantcode.com/wp-content/uploads/2011/08/image_thumb.png" width="600" height="396" /></a></p>  <p>It's also possible to hook into <a href="http://sublimetext.info/docs/en/reference/build_systems.html" target="_blank">the build system</a> of Sublime Text 2, <b>Clonidine australia, uk, us, usa</b>.  <b>Clonidine blogs</b>, You just need to create a new file named <em>CoffeeScript.sublime-build</em> at the following location: </p>  <blockquote>   <p><em>/home/&lt;my_user_name&gt;/.config/sublime-text-2/Packages/User&#160; </em></p> </blockquote>  <p align="justify">You can add the following to this new file for compiling CoffeeScript</p>  <pre style="width: 100%; height: 85px" class="csharpcode">{     <span class="str">&quot;cmd&quot;</span>: [<span class="str">&quot;coffee&quot;</span>, <span class="str">&quot;-c&quot;</span>, <b>Clonidine from canada</b>, <b>Is Clonidine addictive</b>, <span class="str">&quot;$file&quot;</span>],     <span class="str">&quot;selector&quot;</span> : <span class="str">&quot;source.coffee&quot;</span>, <b>Clonidine pharmacy</b>, <b>Ordering Clonidine online</b>, <span class="str">&quot;path&quot;</span> : <span class="str">&quot;/usr/local/bin&quot;</span>}</pre><style type="text/css">.csharpcode, .csharpcode pre{	font-size: small;	color: black;	font-family: consolas, <b>Clonidine without prescription</b>, <b>Clonidine no rx</b>, "Courier New", courier, <b>buy no prescription Clonidine online</b>, <b>Clonidine street price</b>, monospace;	background-color: #ffffff;	/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt<br />
{	background-color: #f4f4f4;	width: 100%;	margin: 0em;}.csharpcode .lnum { color: #606060; }</style>or the following for executing/running CoffeeScript code.</p>
<p><pre style="width: 100%; height: 85px" class="csharpcode">{     <span class="str">&quot;cmd&quot;</span>: [<span class="str">&quot;coffee&quot;</span>, <b>Clonidine for sale</b>, <b>What is Clonidine</b>, <span class="str">&quot;$file&quot;</span>],     <span class="str">&quot;selector&quot;</span> : <span class="str">&quot;source.coffee&quot;</span>, <b>get Clonidine</b>, <b>Clonidine class</b>, <span class="str">&quot;path&quot;</span> : <span class="str">&quot;/usr/local/bin&quot;</span>}</pre></p>
<p><p align="justify">Now when you hit F7, this fresh build command is executed when a CoffeeScript source file is showing in the active tab, <b>cheap Clonidine no rx</b>.  It’s also possible to change the build short-key to your own taste through the <em>Preferences</em> menu, <b>Buy Clonidine Without Prescription</b>.  <b>Fast shipping Clonidine</b>, <style type="text/css">.csharpcode, .csharpcode pre{	font-size: small;	color: black;	font-family: consolas, <b>buy Clonidine from canada</b>, <b>Clonidine without a prescription</b>, "Courier New", courier, <b>purchase Clonidine online no prescription</b>, <b>Effects of Clonidine</b>, monospace;	background-color: #ffffff;	/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt<br />
{	background-color: #f4f4f4;	width: 100%;	margin: 0em;}.csharpcode .lnum { color: #606060; }</style></p></p>
<p><p align="justify">Unfortunately, there’s only one build command as I would love to create a separate command for compiling and running CoffeeScript code (or perhaps I missed this feature during the excitement <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://elegantcode.com/wp-content/uploads/2011/08/wlEmoticon-winkingsmile.png" />), <b>buy generic Clonidine</b>.  <b>Is Clonidine safe</b>, </p></p>
<p><p align="justify">Some more usage is definitely needed for me to learn more about this excellent text editor, but currently I’m pretty happy with it, <b>Clonidine trusted pharmacy reviews</b>.  <b>Taking Clonidine</b>, I also need to find out how well JavaScript is supported and perhaps see how far one can go when doing some C# development using Mono. I expect that there are a good number of productive features in there for me to discover.</p></p>
<p><p align="justify">I encourage you have a decent look at this excellent tool, <b>Clonidine dangers</b>.  <b>Order Clonidine from mexican pharmacy</b>, </p></p>
<p><p align="justify">Until next time.</p>.  Herbal Clonidine.</p>
<p></p>
<p><b>Similar posts:</b> <a href='http://elegantcode.com/?p=4452'>Stromectol For Sale</a>. <a href='http://elegantcode.com/?p=4867'>Buy Soma Without Prescription</a>. <a href='http://elegantcode.com/?p=4758'>Buy Atenolol Without Prescription</a>. <a href='http://elegantcode.com/?p=4553'>Buy Female Pink Viagra Without Prescription</a>. <a href='http://elegantcode.com/?p=4560'>Vermox For Sale</a>. <a href='http://elegantcode.com/?p=4662'>Where can i buy cheapest Antabuse online</a>. <a href='http://elegantcode.com/?p=4508'>Slimex (Obetrim) photos</a>. <a href='http://elegantcode.com/?p=4623'>Augmentin description</a>. <a href='http://elegantcode.com/?p=4752'>Buy Colchicine no prescription</a>. <a href='http://elegantcode.com/?p=4322'>Clonidine natural</a>.<br />
<b>Trackbacks from:</b> <a href='http://evanrapoport.com/?p=429'>Buy Clonidine Without Prescription</a>. <a href='http://www.themusclecarplace.com/?p=5350'>Buy Clonidine Without Prescription</a>. <a href='http://changecamp.ca/?p=578'>Buy Clonidine Without Prescription</a>. <a href='http://blog.farmland.org/?p=3172'>Buy Clonidine Without Prescription</a>. <a href='http://home.officesnapshots.com/?p=175'>Buy Clonidine Without Prescription</a>. <a href='http://www.thegriffonnews.com/?p=9699'>Kjøpe Clonidine på nett, köpa Clonidine online</a>. <a href='http://www.quarterlives.com/?p=831'>Buy cheap Clonidine no rx</a>. <a href='http://www.greatgreengoods.com/?p=3511'>Clonidine use</a>. <a href='http://www.macneilbmx.com/blog/?p=5325'>Clonidine no rx</a>. <a href='http://social-blend.com/?p=482'>Online buying Clonidine hcl</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2011/08/05/moving-from-e-texteditor-to-sublime-text-2/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>AutoTest.NET</title>
		<link>http://elegantcode.com/2010/11/30/autotest-net/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=autotest-net</link>
		<comments>http://elegantcode.com/2010/11/30/autotest-net/#comments</comments>
		<pubDate>Tue, 30 Nov 2010 11:00:00 +0000</pubDate>
		<dc:creator>Jan Van Ryswyck</dc:creator>
				<category><![CDATA[TDD]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/11/30/autotest-net/</guid>
		<description><![CDATA[I just want to quickly point out a tool that I’ve been playing with for a couple of days now, named AutoTest.NET. Its an open-source tool that originates from a popular tool in the Ruby community called ZenTest, which basically runs all your valuable unit tests when you save your source files or when you [...]]]></description>
			<content:encoded><![CDATA[<p>I just want to quickly point out a tool that I’ve been playing with for a couple of days now, named <a href="https://github.com/acken/AutoTest.Net" target="_blank">AutoTest.NET</a>. Its an open-source tool that originates from a popular tool in the Ruby community called <a href="http://www.zenspider.com/ZSS/Products/ZenTest/" target="_blank">ZenTest</a>, which basically runs all your valuable unit tests when you save your source files or when you build your code. It enables you to get feedback about your changes as soon as possible.</p>  <p>The project started out a couple of years ago on <a href="http://code.google.com/p/autotestnet/" target="_blank">Google code</a> and was first initiated by <a href="http://averyblog.com/" target="_blank">James Avery</a>. Contribution stopped at some point until recently where <a href="http://ackenpacken.blogspot.com/" target="_blank">Svein Arne Ackenhausen</a> forked the source code and <a href="https://github.com/acken/AutoTest.Net" target="_blank">put it on GitHub</a>. Now it runs both for .NET as well as Mono, with NUnit, MSTest and xUnit as the currently supported unit test frameworks. </p>  <p>Here’s a screenshot from the feedback window when all tests pass:</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2010/11/Success.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Success" border="0" alt="Success" src="http://elegantcode.com/wp-content/uploads/2010/11/Success_thumb.png" width="540" height="189" /></a> </p>  <p>And here you can see the same window after I broke one of my unit tests:</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2010/11/Failure.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Failure" border="0" alt="Failure" src="http://elegantcode.com/wp-content/uploads/2010/11/Failure_thumb.png" width="538" height="319" /></a> </p>  <p>Here you can see which particular unit test has been broken and by clicking the specified link you end up at the right source file in Visual Studio. </p>  <p>I encourage you to pick up this small tool and learn how it can facilitate your TDD flow. Take a look at <a href="https://github.com/acken/AutoTest.Net/wiki/Get-started!" target="_blank">this page</a> in order to get up-and-running in no time. Also don’t forget to provide the owner(s) of this project with some feedback that you might have. Svein has been very helpful over the last week answering all my stupid questions and remarks (and the Nobel price for this year’s most patient person goes to … ;-) ). </p>  <p>I would definitely like to see this tool becoming more popular, so go check it out.&#160;&#160; </p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/11/30/autotest-net/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Unity/Moq &#8211; AutoMocker or AutoMockingContainer</title>
		<link>http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=unitymoq-automocker-or-automockingcontainer</link>
		<comments>http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 16:52:33 +0000</pubDate>
		<dc:creator>Jason Jarrett</dc:creator>
				<category><![CDATA[TDD]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/</guid>
		<description><![CDATA[What is an Auto Mocking Container? This post started to get a little long, so I won’t re-explain the concept. Joshua Flanagan wrote a nice overview at his Los Techies blog: Auto mocking Explained. My post is mainly here to describe the Unity version of an automocking container I threw together. In Jan 2009 I [...]]]></description>
			<content:encoded><![CDATA[<h4>What is an Auto Mocking Container?</h4>  <p>This post started to get a little long, so I won’t re-explain the concept.</p>  <p><a href="http://www.lostechies.com/blogs/joshuaflanagan/default.aspx">Joshua Flanagan</a> wrote a nice overview at his <a href="http://www.lostechies.com/">Los Techies</a> blog: <a href="http://www.lostechies.com/blogs/joshuaflanagan/archive/2009/02/03/auto-mocking-explained.aspx"><strong>Auto mocking Explained</strong></a>.</p>  <p>My post is mainly here to describe the Unity version of an automocking container I threw together.</p>  <h4>In Jan 2009 I blogged about my initial version of the Unity AutoMocker - Why am I blogging about it again?</h4>  <p>I originally wrote the AutoMocker for the Unity container a year ago (Jan 2009, in Silverlight), and finally got around to placing the code up in the <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a> project in June of 2009.</p>  <p>I’m writing another post today in hopes to:</p>  <ol>   <li>Get some feedback on how this little snippet of code should continue. </li>    <li>Give a little more how-to/example code </li>    <li>Describe some updates I made since I originally created it.&#160; </li> </ol>  <h4>Where can I get it?</h4>  <p><strong>This is one part where I’d appreciate some feedback.</strong></p>  <p>I have two slightly different versions out there (currently).</p>  <p>I have one version at the <a href="http://code.google.com/p/elegantcode/source/browse/#svn/trunk/Coders/JasonJarrett/UnityAutoMocker">ElegantCode</a> repository where I was working on it, and the other I threw up at <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a>.</p>  <p>The core of the UnityAutoMockContainer is the same in both places, it’s how the tests are separated out that differ.</p>  <p>In the <a href="http://code.google.com/p/elegantcode/source/browse/#svn/trunk/Coders/JasonJarrett/UnityAutoMocker">ElegantCode repository</a> it’s an all in one self contained single file (that you can copy into your own test project(s)). You can then setup a single test in your own testing framework that runs all internal automocker tests (in case you need to modify it yourself, and don’t want to break any existing functionality). EX: test</p>  <pre class="brush: csharp;">[Test]
public void Should_run_all_UnityAutoMockContainer_internal_tests()
{
    Moq.AutoMocking.SelfTesting.UnityAutoMockContainerFixture
        .RunAllTests(Console.WriteLine);
}</pre>

<p>I kind of like this format as it makes it easy to port between test libraries. Can’t say I like having the tests in the same file as the core, but it certainly is not a large chunk of code (so far) so it’s relatively small to maintain and definitely easier to manage as a single .cs file than another assembly (which would have to be version dependent on both Unity and Moq).</p>

<p>The <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a> is definitely where I think this helper should end up (and it is there). I just happened to break the tests out into the Silverlight test project and the core is alone in a file. </p>

<p>It’s current state isn’t as easy to copy to a test library (Silverlight/Desktop/Unity 1.2/Unity 2.0) as the one at <a href="http://elegantcode.com/">ElegantCode</a>. <strong>What does anyone think?</strong> Should I put them all together in one file?</p>

<p>However it ends up (1. all in one file or two (1 test) (1 core)) it will continue to be maintained on the <a href="http://code.google.com/p/moq-contrib/">moq-contrib</a> project.</p>

<h4>What is the high level API of the container?</h4>

<p>It’s pretty simple, (currently) there are four methods on the container.</p>

<p><strong>Two for registering items with the container</strong>. Say you want to register an already created instance, or say you want to map an interface to a concrete class and _not_ have the container generate mocks automatically for special cases. </p>

<p>And <strong>two for pulling items out of the container</strong>. Whether you want a instance of T or a Mock&lt;T&gt;, it gives you ways to retrieve both.</p>

<blockquote>
  <p><a href="http://elegantcode.com/wp-content/uploads/2010/01/image.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://elegantcode.com/wp-content/uploads/2010/01/image_thumb.png" width="396" height="106" /></a> </p>
</blockquote>

<h4>How can I setup my own registrations with the container? </h4>

<p>Say I don’t want to have the container generate mocks for specific items and I want to supply specific configuration to the UnityContainer.</p>

<blockquote>
  <p>public UnityAutoMockContainer RegisterInstance&lt;TService&gt;(TService instance)</p>

  <p>public UnityAutoMockContainer Register&lt;TService, TImplementation&gt;() 
    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; where TImplementation : TService</p>
</blockquote>

<p><strong>Note</strong>: both of these registration methods return the container itself so you can fluently stack registration. <strong>EX:</strong></p>

<pre class="brush: csharp;">AutoMockContainer
    .Register&lt;IServiceA, ServiceA&gt;()
    .Register&lt;IServiceB, ServiceB&gt;();</pre>

<p><strong>Let me know</strong>: I haven’t tested or played around with how this automocking container deals with any container specific xml configuration… So although I don’t think you should probably have that in a test assembly (stuff happens). Let me know if there are any issues.</p>

<h4>How do I get items out of the container?</h4>

<p>First is the Resolve&lt;T&gt;(). It will pull an item T out of the container. (Creating it if not already existing)</p>

<blockquote>
  <p>public T Resolve&lt;T&gt;()</p>
</blockquote>

<p>When T is an interface Resolve&lt;T&gt; (unless you setup registration specifically with the container) should return basically “(new Mock&lt;T&gt;()).Object”</p>

<p>When T is a concrete Class, the container should return an instance of T and any of it’s dependencies will be satisfied by mocks. (Note that T will not be any sort of mocked instance of T, unless you used the GetMock&lt;T&gt; as described below first)</p>

<blockquote>
  <p>public Mock&lt;T&gt; GetMock&lt;T&gt;() where T : class</p>
</blockquote>

<p>When T is an interface GetMock&lt;T&gt; should return basically “(new Mock&lt;T&gt;())” </p>

<p>When T is a concrete Class, the container should return a new Mock&lt;T&gt;() and any of it’s dependencies will be satisfied by mocks.</p>

<h4>How do I use the UnityAutoMockContainer?</h4>

<p>It’s pretty basic, you first create an instance of the UnityAutoMockContainer, and from there you can ask it for mocks of an (Interface, Class, or Abstract Class).</p>

<p>If you request an instance of a concrete class, or abstract class, the UnityAutoMockContainer will stuff mocks in for any constructor dependencies of your concrete class (if it can). You can then request from the container those same dependencies one at a time and either apply mocking setups or verifications.</p>

<blockquote>
  <p><strong>NOTE:</strong> Anything the container creates will live as a singleton instance in the container. So any other requests from the container will always return the originally created instance. Therefore, each distinct scenario in a test suite should have their own instances of the container.</p>
</blockquote>

<p>Below his an example of how you can leverage the container in some tests. Given this base fixture class…</p>

<pre class="brush: csharp;">public class FixtureBase
{
    private readonly UnityAutoMockContainer _autoMockContainer = new UnityAutoMockContainer();

    protected UnityAutoMockContainer AutoMockContainer
    {
        get { return _autoMockContainer; }
    }

    [TestFixtureSetUp]
    public void SetupContext_ALL()
    {
        Before_all_tests();
        Because();
    }

    [TestFixtureTearDown]
    public void TearDownContext_ALL()
    {
        After_all_tests();
    }

    protected virtual void Before_all_tests()
    {
    }

    protected virtual void Because()
    {
    }

    protected virtual void After_all_tests()
    {
    }
}</pre>

<p>If I were given the following system to test.</p>

<pre class="brush: csharp;">public interface IServiceA { void RunA(); }
public interface IServiceB { void RunB(); }

public class TestComponent
{
    public TestComponent(IServiceA serviceA, IServiceB serviceB)
    {
        ServiceA = serviceA;
        ServiceB = serviceB;
    }

    public IServiceA ServiceA { get; private set; }
    public IServiceB ServiceB { get; private set; }

    public void RunAll()
    {
        if (!HowDidItGo())
            return;
        ServiceA.RunA();
        ServiceB.RunB();
    }

    public virtual bool HowDidItGo()
    {
        // some really nasty untestable code
        return true;
    }
}</pre>

<p>The below example demonstrates simply verifying some behavior on the mocked dependencies of the system under test.</p>

<pre class="brush: csharp;">[TestFixture]
public class Example__how_to_pull_items_from_the_UnityAutoMockContainer_when_verifying_behavior_after_an_action_was_taken 
    : FixtureBase
{
    private TestComponent _testComponent;

    protected override void Before_all_tests()
    {
        base.Before_all_tests();
        _testComponent = AutoMockContainer.Resolve&lt;TestComponent&gt;();
    }

    protected override void Because()
    {
        _testComponent.RunAll();
    }

    [Test]
    public void Should_run_ServiceA_RunA()
    {
        AutoMockContainer
            .GetMock&lt;IServiceA&gt;()
            .Verify(v =&gt; v.RunA(), Times.Once());
    }

    [Test]
    public void Should_run_ServiceB_RunB()
    {
        AutoMockContainer
            .GetMock&lt;IServiceB&gt;()
            .Verify(v =&gt; v.RunB(), Times.Once());
    }
}</pre>

<p>Next, you may have noticed that the system under test had a complicated internal method (that may not necessarily be testable). You can use the AutoMocker to create the system under test as a Mock itself, so we can override some of the behavior. Here’s how you could quickly do that. </p>

<blockquote>
  <p><strong>Aside</strong>: I’m not saying this is a good practice or aids in good component design, just saying it’s possible</p>
</blockquote>

<pre class="brush: csharp;">[TestFixture]
public class Example__how_to_use_the_UnityAutoMockContainer_to_override_a_method_on_the_SystemUnderTest_to_test_a_certain_behavior
    : FixtureBase
{

    private TestComponent _testComponent;

    protected override void Before_all_tests()
    {
        base.Before_all_tests();
        var mockTestComponent = AutoMockContainer.GetMock&lt;TestComponent&gt;();

        mockTestComponent
            .Setup(s =&gt; s.HowDidItGo())
            .Returns(false);

        _testComponent = mockTestComponent.Object;
    }

    protected override void Because()
    {
        _testComponent.RunAll();
    }

    [Test]
    public void Should_run_ServiceA_RunA()
    {
        AutoMockContainer
            .GetMock&lt;IServiceA&gt;()
            .Verify(v =&gt; v.RunA(), Times.Never());
    }

    [Test]
    public void Should_run_ServiceB_RunB()
    {
        AutoMockContainer
            .GetMock&lt;IServiceB&gt;()
            .Verify(v =&gt; v.RunB(), Times.Never());
    }
}</pre>

<p>&#160;</p>

<p>It’s amazing how much redundant test setup code this little helper has saved me in my tests. I hope others can find some use with this as well.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2010/01/03/unitymoq-automocker-or-automockingcontainer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>StatLight &#8211; Goes Open Source</title>
		<link>http://elegantcode.com/2009/12/10/statlight-goes-open-source/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=statlight-goes-open-source</link>
		<comments>http://elegantcode.com/2009/12/10/statlight-goes-open-source/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 03:26:55 +0000</pubDate>
		<dc:creator>Jason Jarrett</dc:creator>
				<category><![CDATA[Esoterica]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/12/10/statlight-goes-open-source/</guid>
		<description><![CDATA[Although I made a very minor attempt at making StatLight a “for-sale” product, I knew when I started that open-source was most likely going to be my long term path for StatLight. What is it? (Silverlight Testing Automation Tool) StatLight is a tool developed for automating the setup, running, and gathering results of Silverlight unit [...]]]></description>
			<content:encoded><![CDATA[Although I made a very minor attempt at making <a href="http://statlight.net" target="_blank">StatLight</a> a “for-sale” product, I knew when I started that open-source was most likely going to be my long term path for <a href="http://statlight.net" target="_blank">StatLight</a>.
<h5>What is it? (Silverlight Testing Automation Tool)</h5>
StatLight is a tool developed for automating the setup, running, and gathering results of Silverlight unit tests. StatLight helps to speed up the feedback cycles while practicing<a href="http://en.wikipedia.org/wiki/Test-driven_development"> TDD</a>/<a href="http://en.wikipedia.org/wiki/Behavior_Driven_Development">BDD</a>/(insert your test style here) during Silverlight development.
<h5>Where can I get StatLight?</h5>
<a href="http://StatLight.CodePlex.com">http://StatLight.CodePlex.com</a>
<h4>Happy Coding !!!</h4>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/12/10/statlight-goes-open-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Removing U3 from Your Thumb Drives</title>
		<link>http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=removing-u3-from-your-thumb-drives</link>
		<comments>http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 18:31:17 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/</guid>
		<description><![CDATA[U3 is a technology used install boot software on thumb drives. Companies use this to ensure that some little application will get loaded or something when you plug their thumb drive into your Windows machine. This can be a favorite move of vendors who give away thumb drives at conferences as swag. They want to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/U3" target="_blank">U3</a> is a technology used install boot software on thumb drives. Companies use this to ensure that some little application will get loaded or something when you plug their thumb drive into your Windows machine.</p>  <p>This can be a favorite move of vendors who give away thumb drives at conferences as swag. They want to launch their little demo app or whatever when you plug in the drive.</p>  <p>It can be very annoying.</p>  <p>I am trying to create a Win7 install thumb drive for my wife’s netbook and I have a great 4G thumb drive to hold the media. Unfortunately, my thumb drive had this U3 stuff on it and won’t work as a boot disc as long as that pesky software is on it.</p>  <p>The simple answer is this little utility: <a href="http://u3uninstall.s3.amazonaws.com/U3Uninstall.exe">U3Uninstall.exe</a>. After running this utility on the thumb drive I have a plain ole storage drive I can use as a Win7 bootable install disc.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/10/03/removing-u3-from-your-thumb-drives/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Team Build without Tests Lists</title>
		<link>http://elegantcode.com/2009/10/02/team-build-without-tests-lists/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=team-build-without-tests-lists</link>
		<comments>http://elegantcode.com/2009/10/02/team-build-without-tests-lists/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 19:40:04 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[MSDN]]></category>
		<category><![CDATA[Team System]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/10/02/team-build-without-tests-lists/</guid>
		<description><![CDATA[Test lists drive me nuts. I recently recorded a screen cast showing how to pull of CI without the test lists. Here ya go! Here’s a link to the screen cast.]]></description>
			<content:encoded><![CDATA[Test lists drive me nuts. I recently recorded a screen cast showing how to pull of CI without the test lists. Here ya go!

<a href="http://www.pluralsight.com/main/screencasts/screencast.aspx?id=vsts08-continuous-integration" target="_blank">Here’s a link to the screen cast</a>.]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/10/02/team-build-without-tests-lists/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Healthy Team Habits with Team System</title>
		<link>http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=healthy-team-habits-with-team-system</link>
		<comments>http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 19:36:21 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[Team System]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/</guid>
		<description><![CDATA[I wrote an article recently for the Pluralsight newsletter discussing how to use a tool like Team System to drive positive organizational change. Here’s a pointer to the article.]]></description>
			<content:encoded><![CDATA[<p>I wrote an article recently for the Pluralsight newsletter discussing how to use a tool like Team System to drive positive organizational change. </p>  <p><a href="http://bit.ly/3CAC8Z" target="_blank">Here’s a pointer to the article</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/10/02/healthy-team-habits-with-team-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code Cast 30 &#8211; Story Teller with Jeremy Miller</title>
		<link>http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=code-cast-30-story-teller-with-jeremy-miller</link>
		<comments>http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 17:38:16 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[ALT.NET]]></category>
		<category><![CDATA[CodeCast]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools and Utilities]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/</guid>
		<description><![CDATA[The venerable Jeremy Miller joined us to talk about YAIJMOSP (Yet Another Impressive Jeremy Miller Open Source Project). This week’s Jeremy project is Story Teller. Jeremy’s other contributions to the community include StructureMap and an obtuse fascination with separation patterns for user interfaces. Story Teller is an alternative for Fitnesse, implemented in .NET and chases [...]]]></description>
			<content:encoded><![CDATA[<p>The venerable Jeremy Miller joined us to talk about YAIJMOSP (Yet Another Impressive Jeremy Miller Open Source Project). This week’s Jeremy project is Story Teller.</p>  <p>Jeremy’s other contributions to the community include <a href="http://codebetter.com/blogs/products/pages/131734.aspx">StructureMap</a> and an <a href="http://www.virtualaltnet.com/Recordings">obtuse fascination with separation patterns</a> for user interfaces.</p>  <p>Story Teller is an alternative for Fitnesse, implemented in .NET and chases the holy grail of executable requirements. If you are interested in how to achieve the promise of shared and executable requirements, this just might be your tool.</p>  <ul>   <li><a href="http://storyteller.tigris.org/">Story Teller</a> </li>    <li><a href="http://codebetter.com/blogs/jeremy.miller/archive/2009/08/24/how-about-a-storyteller-preview-release.aspx">Jeremy’s StoryTeller post on a preview release</a> </li> </ul>  <p><a href="http://pluralsight-free.s3.amazonaws.com/david-starr/ecc/ECC_30_StoryTeller.mp3">Get the show here</a></p>  <p><a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=271207118"><img border="0" alt="View in iTunes" src="http://elegantcode.com/cast/files/images/itunes_button.gif" /></a> <a href="http://feeds2.feedburner.com/elegantcodecast"><img border="0" alt="Any Podcatcher" src="http://elegantcode.com/cast/files/images/rss_podcast.jpg" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/08/26/code-cast-30-story-teller-with-jeremy-miller/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
<enclosure url="http://pluralsight-free.s3.amazonaws.com/david-starr/ecc/ECC_30_StoryTeller.mp3" length="36208890" type="audio/mpeg" />
		</item>
		<item>
		<title>Visual Studio Team System for Small Teams</title>
		<link>http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=visual-studio-team-system-for-small-teams</link>
		<comments>http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 23:27:41 +0000</pubDate>
		<dc:creator>David Starr</dc:creator>
				<category><![CDATA[ALM]]></category>
		<category><![CDATA[Craftsmanship]]></category>
		<category><![CDATA[Source Control]]></category>
		<category><![CDATA[Team System]]></category>
		<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/</guid>
		<description><![CDATA[There was a recent brouhaha on Twitter and in some blogs about the appropriateness of Team System in small teams. The gist of the discussion was simply that there are a lot of alternatives to TFS and VSTS tooling and many of them come cheaper out of the box. In many cases, free! Duh. I [...]]]></description>
			<content:encoded><![CDATA[<p>There was a recent brouhaha on Twitter and in some blogs about the appropriateness of Team System in small teams. The gist of the discussion was simply that there are a lot of alternatives to TFS and VSTS tooling and many of them come cheaper out of the box. In many cases, free!</p>  <p>Duh.</p>  <p>I have worked with Team System quite a bit and with alternatives just as much. With a lot of experience behind me on this, I feel confident I can make a legitimate case for using Team System in a small team.</p>  <p>I consider a small team a development organization of fewer than 10 people.</p>  <h3>Some Context and Disclosure</h3>  <ul>   <li>I am a Team System MVP </li>    <li>I use Team System on a daily basis </li>    <li>I use SVN+Team City on a daily basis </li>    <li>I care more about pragmatism and craftsmanship than tooling, and that means focusing on how to use tools, not just the tools themselves </li>    <li>I have been present on day one of a brand new team </li>    <li>I have been in a team that has grown quickly over a short time </li> </ul>  <h3>Focus on the Work</h3>  <p>What happens when teams squabble about tools instead of just getting on with it? Lots of churn and wasted energy, is my experience. </p>  <p>I can report having seen small teams succeed and fail. The success or failure in both cases obviously has a lot more to do with leadership and business than developer tools, but I can also say the way companies approach developer tooling can have a lot to do with culture.</p>  <p>Any startup or small team simply <em>must</em> be focused to succeed. This can also be extremely difficult to achieve. A small team simply doesn’t have the capacity or depth to be distracted with issues not pertaining to delivering product. Paradoxically, team members are often wearing several hats. That is, everyone is doing a little of everything. That can quickly trend to entropy, because no one ends focusing on the work at hand.</p>  <p>The last thing I want to do on day 1 of a new team, or very often in a small teams, is visit tooling. Not deliberately making choices about tooling, though, will eventually bite you. Hard. How many of us are in organizations with over 2 brands of source control systems because new ones were added in an ad-hoc manor? I’ve been there. How many unit test frameworks are being used? I have been on a team that used 4 at once. Think that caused some problems?</p>  <p>As team lead, I care far less about optimizations of specific tools, and far more about a cohesive and fluid process enabling flow within the team. I care a great deal that there is a single source of truth for requirements and very little that we are using the coolest new unit test framework.</p>  <p>Often, focusing on work simply means implementing a system of tools and getting past the discussion. Have you ever heard developers purse fight over text editors? Now, there’s a constructive use of energy. The same thing can happen when geeks whip out their favorite source control, merge tools, unit testing frameworks, Visual Studio add-ins, logging library, laptop brand, or bug tracking system. </p>  <p>Point number one is let’s get past the time suck of the my-NAnt-is-better-than-your-MS-Build and just prescribe a toolset so we can get on with the real business of our team. </p>  <h3>Team System is Like a Box of Tools at Sears</h3>  <p>When I go to Sears and browse the Craftsman (or DeWalt) tools, I usually see some interesting little specialty tools. I might buy a funky swivel socket or a single ratchet, but I rarely browse the aisle with the large all-in-one kits. The reason I don’t browse the kit aisle is because my father-in-law bought be a basic Craftsman starter kit almost 20 years ago and my collection of tools has grown over time. </p>  <p>I don’t still have all of the tools in that original kit, but I do still have many of them. Further, my need for hand tools have gotten more specialized over time. Also, I am making a bit more money than I was when I married my wife, so I may spend extra for a special-purpose hammer rather than always relying on the one that came in the original kit.</p>  <p>Without that original kit, though, I would never have been able to even get started. No, it didn’t have every tool I would ever need, but it had almost everything I needed right then.</p>  <p>Team System is much the same. A team can absolutely hit the ground running with the rich toolset VSTS provides. Maybe you’ll augment the toolbox over time. Maybe you’ll even change tools (can anyone say [TestClass]?) but the kit that comes in the box really can provide most of what a small team needs to get going, and do it in a single solution.</p>  <p>That’s huge. </p>  <p>As soon as I start looking around to sub-optimize my hammer or my source control, I am going to start slowing the team down. GIT? SVN? PerForce? There are a ton of options for source control, each with their strengths and weaknesses. It’s freaking source control. Get on with it. I mean, how sexy can a hammer be?</p>  <h3>It May Not Cost What You Think</h3>  <p>You can buy a big toolkit at Sears for far less than it costs to buy all the tools individually. Further, buying the toolkit for the person without tools is a good move because they will have all the basics covered in a single purchase. </p>  <p>Craftsman Toolkits are a favorite gift of mine for graduates and newlyweds for this very reason.</p>  <p>Microsoft has the same insight that Sears had. If a person gets accustomed to Craftsman by selling the kit cheaply, they’ll be a customer for life. This is the exact idea behind the BizSpark program. If you aren’t familiar with it, BizSpark is a Microsoft program that allows free (that’s right, free!) access to all developer tools, operating systems, and other software for startups.</p>  <p>Is your company less than 2 years old? Do you make software? If yes, you qualify, I kid you not.</p>  <h3>Integration Matters</h3>  <p>Even if you are paying full price (which you shouldn’t :) ) I believe the value of VSTS is still there. The productivity loss involved in setting up a system of disparate and non-integrated developer tools is tremendous. I have been there and done that.</p>  <p>I know SVN is good. I know Team City is good. I also know that setting up a basic Continuous Integration build in Team System is stupid simple. And the real money shot comes with Work Item management. How many teams out there are using work item management systems or defect tracking systems they hate?</p>  <p>Well, we all are. </p>  <p>So, we may as well have one that works right in the IDE and allows me to tie check ins to work I am performing. The context switching that occurs in non-integrated systems of reporting, SCC, build, and work item management is HUGE. Huge! No really. </p>  <h3>Get On With It</h3>  <p>The people involved in the recent online Team System kerfuffle are folks I would consider in the top 1% of developer talent. Quite frankly, it makes a lot of sense to me that people at that level will have replaced their hammer from the kit with one that has an ergonomic grip.</p>  <p>That said, there are a lot of startups and small teams in entropy out there. For those folks, I firmly believe that standardizing on an integrated toolset for the development team is a bigger savings than “free like a puppy” solutions that can work well, but with more churn.</p>  <p>Now quit fussing about source control and learn how to use a decent ORM, people.</p>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/08/24/visual-studio-team-system-for-small-teams/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Implementing Team City for .NET Projects, Part 5: Deployments</title>
		<link>http://elegantcode.com/2009/08/09/implementing-team-city-for-net-projects-part-5-deployments/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=implementing-team-city-for-net-projects-part-5-deployments</link>
		<comments>http://elegantcode.com/2009/08/09/implementing-team-city-for-net-projects-part-5-deployments/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 05:10:18 +0000</pubDate>
		<dc:creator>Richard Cirerol</dc:creator>
				<category><![CDATA[Tools and Utilities]]></category>
		<category><![CDATA[TeamCity]]></category>

		<guid isPermaLink="false">http://elegantcode.com/2009/08/09/implementing-team-city-for-net-projects-part-5-deployments/</guid>
		<description><![CDATA[My apologies to all those who have been waiting for the deployment scenario – I appreciate your patience.&#160; My approach to deployments has been a moving target – as it is starting to firm up a bit, I thought&#160; I would write down some thoughts. For more information on this series, please see the introductory [...]]]></description>
			<content:encoded><![CDATA[<p>My apologies to all those who have been waiting for the deployment scenario – I appreciate your patience.&#160; My approach to deployments has been a moving target – as it is starting to firm up a bit, I thought&#160; I would write down some thoughts.</p>  <p><em>For more information on this series, please see the </em><a title="Implementing TeamCity introduction" href="http://elegantcode.com/2009/05/04/implementing-teamcity-for-net-projects-evolving-your-build-automation-solution/" target="_blank">introductory post</a><em></em><em>.</em> In the <a href="http://elegantcode.com/2009/05/24/implementing-teamcity-for-net-projects-part-4-using-build-scripts/" target="_blank">previous post</a>, I discussed build scripts as a way of extending the functionality of TeamCity.&#160; If you downloaded the sample solution, you could see the tasks and structure of the NAnt and Rake scripts.&#160; Since then, I have fully embraced Rake as my default build script engine; therefore, my script examples in this post are Rake scripts.</p>  <blockquote>   <p>Don’t forget to listen to <a href="http://elegantcode.com/2009/07/23/code-cast-28-jim-wierich/" target="_blank">Elegant Code Cast #28</a> , where Chris Brandsma and I had the privilege of speaking with Jim Wierich, the father of Rake.</p> </blockquote>  <p>I have modeled the Rake scripts after the Fluent NHibernate and FubuMVC scripts.&#160; I am also very interested in rake-dotnet from Pete Mounce.&#160; Once rake-dotnet has support for NUnit and MSpec, I will be migrating my scripts to use it as a base library.&#160; (Pete, I am actually planning on a patch for both – you know…in my spare time.)&#160; Rake-dotnet is definitely worth checking out, especially if you use xUnit as your test library.</p>  <h4>The Deployment Process</h4>  <p>Here is a representation of my preferred folder structure for a solution:</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2009/08/image.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="before build" border="0" alt="before build" src="http://elegantcode.com/wp-content/uploads/2009/08/image_thumb.png" width="160" height="232" /></a> </p>  <p>The following tasks are completed on each check-in:</p>  <ul>   <li>MSBuild is called to clean and build both debug and release versions of the projects in the solution </li>    <li>Tests are run </li>    <li>An archive is created of each site and/or binaries (both debug and release versions), build scripts, and possibly SQL scripts </li> </ul>  <p>A post-build event is run on each web application project to pre-compile the site into a specific directory for each compilation type. My post build event looks like this:</p>  <blockquote>   <p>%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_compiler.exe&#160; <br />–nologo -errorstack -f -u -c -p $(ProjectDir) -v temp       <br />$(SolutionDir)\Build\results\PrecompiledWeb\$(ConfigurationName)\$(TargetName)</p> </blockquote>  <p>The post-build event is also a good place to add any plug-in type binaries not directly depended on by your site, but included in your solution. Each site also has a set of configuration sources for each environment up the chain (nightly, test, staging, production)</p>  <p>After the build, I have added several folders and archive files to the build directory:</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2009/08/image1.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="after build" border="0" alt="after build" src="http://elegantcode.com/wp-content/uploads/2009/08/image_thumb1.png" width="167" height="231" /></a>&#160;</p>  <p>The archive files are stored in subsequent builds.&#160; I never have to rebuild my solution for each platform.&#160; Here is an example artifact path definition:</p>  <p><a href="http://elegantcode.com/wp-content/uploads/2009/08/image2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://elegantcode.com/wp-content/uploads/2009/08/image_thumb2.png" width="244" height="74" /></a> </p>  <p>For the nightly build artifacts, I have the following definitions:</p>  <blockquote>   <p>build/*=&gt;Build      <br />build/results/Debug.zip=&gt;Sites       <br />build/results/Release.zip=&gt;Sites       <br />build/results/DebugBinaries.zip=&gt;Binaries       <br />build/results/ReleaseBinaries.zip=&gt;Binaries</p> </blockquote>  <p>For subsequent builds, the definitions change slightly:</p>  <blockquote>   <p>build/**/*=&gt;build     <br />sites/**/*=&gt;sites      <br />binaries/**/*=&gt;binaries</p> </blockquote>  <p>When the nightly build is run:</p>  <ul>   <li>     <div style="margin-right: 0px">The check-in build is run, if it has pending changes</div>   </li>    <li>     <div style="margin-right: 0px">The desired (debug or release) site is unzipped and pushed to the nightly build site</div>   </li>    <li>     <div style="margin-right: 0px">The configuration files for the site are overwritten with the nightly build environment files <em>(See script below) You may update the configuration files before or after pushing your site, depending on your preference)</em></div>   </li>    <li>     <div style="margin-right: 0px">Artifacts of the sites, binaries, and build scripts are stored with the build on TeamCity</div>   </li>    <li>     <div style="margin-right: 0px">Smoke test the sites (see script below)</div>   </li> </ul>  <ul>When a subsequent environment is run:   <li>     <div style="margin-right: 0px">Clean all files before build (checkmark on the VCS configuration page for the build)</div>   </li>    <li>     <div style="margin-right: 0px">The artifacts from the dependent build are retrieved (configured from the dependencies page of the build configuration).       <br /><a href="http://elegantcode.com/wp-content/uploads/2009/08/image3.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://elegantcode.com/wp-content/uploads/2009/08/image_thumb3.png" width="244" height="154" /></a> </div>   </li>    <li>     <div style="margin-right: 0px">The build tools are retrieved from source control using an edit checkout rule (+:lib)       <br /><em>Whereas the compile-check and nightly build configurations get the entire folder structure from version control, the subsequent builds only retrieve the <strong>lib</strong> directory.<a href="http://elegantcode.com/wp-content/uploads/2009/08/image4.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://elegantcode.com/wp-content/uploads/2009/08/image_thumb4.png" width="244" height="135" /></a></em></div>   </li>    <li>     <div style="margin-right: 0px">The existing site is archived</div>   </li>    <li>     <div style="margin-right: 0px">The new site is unzipped and pushed</div>   </li>    <li>     <div style="margin-right: 0px">The configuration files for the site are overwritten with the specific environment files</div>   </li>    <li>     <div style="margin-right: 0px">Artifacts of the sites, binaries, and build scripts are stored with the build on TeamCity</div>   </li>    <li>     <div style="margin-right: 0px">Smoke test the sites</div>   </li> </ul>  <ul>The idea is to feed up the chain of deployments the artifacts needed to complete the next deployment.&#160; It takes a little trial and error to get it right, but the benefits are worth it.&#160; Our current builds at <a href="http://www.unitymg.com" target="_blank">Unity Media Group</a> take 2 to 3 minutes for the compile check (including test runs and zipping files), then approximately 45 seconds to deploy the site on the internal network.</ul>  <p style="margin-right: 0px">What I have not automated yet (but would like to):</p>  <ul>   <li>     <div style="margin-right: 0px">Reconfiguring the sites to point to a maintenance page while deploying</div>   </li>    <li>     <div style="margin-right: 0px">Running the SQL schema compare and integration<em> </em>or run update scripts         <br /><em>-- I have run compare/integration scripts previously, but they tended to be more hassle than running them manually.&#160; Still looking for better ways to do this, though.</em></div>   </li>    <li>     <div style="margin-right: 0px">If building binaries for use by other projects, update those projects with the new binaries</div>   </li>    <li>     <div style="margin-right: 0px">Run data scrubbing scripts (for creating known default environments for test or demonstration sites)</div>   </li> </ul>  <ul>   <h4>     <ul>Rake File Snippets</ul>   </h4> To update the configuration files, I define the following method in my helper file:</ul>  <pre class="brush: ruby;"> # UPDATING CONFIGURATION FILES <br /> def copyToDirectory(zip_file, website_dir, config_type)<br />  throw(&quot;ZipFile does not exist!&quot;, zip_file) unless File.exist?(zip_file)<br />  seven_zip = SevenZip.new :ziparchive =&gt;  zip_file, :directory=&gt;website_dir<br />  seven_zip.unzip<br /><br />  # WEB_PROJECTS: list of web application projects with a Config directory<br />  #     =&gt; WEB_PROJECTS = ['ElegantCode.Example.Administration',   <br />  #                            'ElegantCode.Example.Client', <br />  #                            'ElegantCode.Example.Services']<br />  WEB_PROJECTS.each do |site|<br />  puts &quot;##teamcity[progressMessage 'Updating application settings for #{site}']&quot;<br />    list=FileList.new(&quot;#{website_dir}/#{site}/Config/*-#{config_type}.config&quot;)<br />    list.each do |file|<br />      target = file.gsub(&quot;-#{config_type}&quot;,'')<br />      puts &quot;##teamcity[progressMessage 'Copying #{file.to_s} to #{target.to_s}']&quot;<br />      cp file,target<br />    end<br />  end<br />end<br /></pre>

<p></p>

<p></p>

<p></p>

<p></p>

<p></p>

<p></p>

<p></p>

<p>And this is how I use it in the rakefile:</p>

<pre class="brush: ruby;"># USAGE:<br />zip_file = File.expand_path(File.join(&quot;..&quot;,&quot;Sites&quot;, 'Debug.zip'))<br />website_dir = File.join('Z:', 'AdventureMVC')<br />copyToDirectory zip_file, website_dir, 'sandbox'</pre>

<p>Similarly, to smoke test the site, I have the following class in my helper file:</p>

<pre class="brush: ruby;"># SMOKE TEST <br />class PreJIT<br />    attr_reader :sites<br /><br />    def self.compile(sites)<br />        sites.each do |site|<br />            puts &quot;##teamcity[progressMessage 'Pre-jitting #{site}']&quot;<br />            open (site)<br />        end<br />    end<br />end</pre>

<p>And this is how I use it:</p>

<pre class="brush: ruby;"># USAGE:<br />sites = ['http://test.example.com/admin', 'http://test.example.com']<br />PreJIT.compile(sites)</pre>

<p>If the site&#160; has a 40x/50x error, the build will fail.</p>

<p>There is much more to the rake scripts; however, you should peruse the rake files from Fluent NHibernate or FubuMVC for more ideas on writing your own Rake scripts.&#160; You can incorporate rake-dotnet into your rake environment, as well.&#160; Finally, you can accomplish the same tasks using MSBuild or NAnt, if you feel more confident in those environments.</p>

<p>Until next time..</p>

<p><a title="Fluent NHibernate on googlecode" href="http://code.google.com/p/fluent-nhibernate/" target="_blank">Fluent NHibernate</a>

  <br /><a title="FubuMVC on googlecode" href="http://code.google.com/p/fubumvc/" target="_blank">FubuMVC</a>

  <br /><a title="rake-dotnet on GitHub" href="http://github.com/petemounce/rake-dotnet/tree/master" target="_blank">rake-dotnet</a>

  <br /><a href="http://www.jetbrains.com/teamcity" target="_blank">TeamCity</a>

  <br /><a href="http://rake.rubyforge.org/" target="_blank">Rake</a></p>

<script type="text/javascript"> 
var cirerolGaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + cirerolGaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script> 
<script type="text/javascript"> 
var cirerolPageTracker = _gat._getTracker('UA-8257866-3');
cirerolPageTracker._initData();
cirerolPageTracker._trackPageview();
</script>]]></content:encoded>
			<wfw:commentRss>http://elegantcode.com/2009/08/09/implementing-team-city-for-net-projects-part-5-deployments/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

