### Question:
InstanceCheck implements StackManipulation { protected InstanceCheck(TypeDescription typeDescription) { this.typeDescription = typeDescription; } protected  InstanceCheck(TypeDescription typeDescription); static StackManipulation of(TypeDescription typeDescription); boolean isValid(); Size apply(MethodVisitor methodVisitor, Implementation.Context implementationContext);  }### Answer:
@Test public void testInstanceCheck() { when(typeDescription.getInternalName()).thenReturn(FOO); StackManipulation stackManipulation = InstanceCheck.of(typeDescription); assertThat(stackManipulation.isValid(), is(true)); StackManipulation.Size size = stackManipulation.apply(methodVisitor, implementationContext); assertThat(size.getSizeImpact(), is(0)); assertThat(size.getMaximalSize(), is(0)); verify(typeDescription).isPrimitive(); verify(typeDescription).getInternalName(); verifyNoMoreInteractions(typeDescription); verify(methodVisitor).visitTypeInsn(Opcodes.INSTANCEOF, FOO); verifyNoMoreInteractions(methodVisitor); verifyZeroInteractions(implementationContext); }