private <T> T captureExpectedObject(T mockObject) {
if (!(mockObject instanceof CaptureControl)) {
throw new IllegalArgumentException("can only set expectations on mock objects");
}
expectation.setObjectMatcher(new MockObjectMatcher(mockObject));
isFullySpecified = true;
Object capturingImposter = ((CaptureControl)mockObject).captureExpectationTo(this);
return asMockedType(mockObject, capturingImposter);