TestObjectBuilder now throws exception if you try to use With() with an unknown property of the concrete builder class.
Moved Build() method test into Build TestFixture.
Change test name, Raised->Thrown.
Add test to make sure exception is thrown when an instance of an incorrect type is passed to the with method.
Refactor unit tests to remove duplication.
Add tests for when class under test has two dependencies.
Change existing test so that chaining of with() calls is tested.
Refactor into two tests because test was testing two things: 1) with() was setting the value on the builder property 2) The dependency from the builders property was being used to create the product.
Added test for but.
Enhanced But() test.
Add method to builder to get property values.  Added so that you don't have to write a long chain of type/property gets or cast to an instance of the concrete class.