@Test
 public void shouldBeAbleToAlterPrimitiveTypeDefaultValueClass() {
   TestInterface testObject = TestObject.createTestObject(TestClass.class);
   assertCanModifyReturnValueForPrimitiveType(testObject);
 }
 @Test(expected = RuntimeException.class)
 public void shouldNotAllowToThrowACheckedExceptionOfWrongTypeInterface() throws Exception {
   TestInterface testObject = TestObject.createTestObject(TestInterface.class);
   assertDoesNotAllowWrongTypeException(testObject);
 }
 @Test(expected = RuntimeException.class)
 public void shouldThrowExceptionIfSettingAReturnValueOfWrongTypeClass() {
   TestInterface testObject = TestObject.createTestObject(TestClass.class);
   assertExceptionThrownIfReturnValueHasWrongType(testObject);
 }
 @Test(expected = RuntimeException.class)
 public void shouldBeAbleToSetExceptionOnVoidMethodClass() {
   TestInterface testObject = TestObject.createTestObject(TestClass.class);
   assertThrowOnVoidMethod(testObject);
 }
 @Test
 public void shouldReturnTheRecorderReturnValueClass() {
   TestInterface testObject = TestObject.createTestObject(TestClass.class);
   assertReturnRecordedValue(testObject);
 }
 @Test(expected = IllegalArgumentException.class)
 public void recordThrowExceptionShouldThrowExceptionClass() {
   TestInterface testObject = TestObject.createTestObject(TestClass.class);
   assertRecodedExceptionThrown(testObject);
 }
 @Test
 public void shouldReturnDefaultPrimitiveValueIfNoRecordingForClass() {
   TestInterface testObject = TestObject.createTestObject(TestClass.class);
   assertDefaultPrimitiveTypeReturnValues(testObject);
 }
 @Test
 public void shouldReturnNullIfNoRecordingForClass() {
   TestInterface testObject = TestObject.createTestObject(TestClass.class);
   assertDefaultObjectReturnValue(testObject);
 }
 @Test
 public void nullShouldBeMatchedClass() throws Exception {
   TestInterface testObject = TestObject.createTestObject(TestClass.class);
   assertNullParametersMatched(testObject);
 }
 @Test(expected = RuntimeException.class)
 public void voidMethodWithParamMatchingClass() throws Exception {
   TestInterface testObject = TestObject.createTestObject(TestClass.class);
   assertVoidMethodWithParamMatching(testObject);
 }
 @Test
 public void useCustomMatcherClass() throws Exception {
   TestInterface testObject = TestObject.createTestObject(TestClass.class);
   assertUseCustomMatcher(testObject);
 }
 @Test(expected = RuntimeException.class)
 public void reportInvalidNumberOfMatchersClass() throws Exception {
   TestInterface testObject = TestObject.createTestObject(TestClass.class);
   assertReportWrongNumberOfMatchers(testObject);
 }
 @Test
 public void useLooseArgumentMatchingWithEqMatcherClass() throws Exception {
   TestInterface testObject = TestObject.createTestObject(TestClass.class);
   assertEqMatcher(testObject);
 }
 @Test
 public void useLooseArgumentMatchingInterface() throws Exception {
   TestInterface testObject = TestObject.createTestObject(TestInterface.class);
   assertUseLooseArgumentMatching(testObject);
 }
 @Test
 public void useArgumentMatchingForRecordingBehaviorClass() throws Exception {
   TestInterface testObject = TestObject.createTestObject(TestClass.class);
   assertRecordingUseArgumentMatching(testObject);
 }