public void testWithNoPackage() throws Exception { RecorderLocator.clearRecorders(); final URLClassLoader ourClassLoader = (URLClassLoader) BlockingClassLoader.class.getClassLoader(); final BlockingClassLoader blockingClassLoader = new BlockingClassLoader( ourClassLoader, Arrays.<String>asList(AnotherClass.class.getName())); final NoPackageURLClassLoader cl = new NoPackageURLClassLoader(ourClassLoader.getURLs(), blockingClassLoader); final Class<?> noPackageClass = cl.loadClass(AnotherClass.class.getName()); final Method noPackageMethod = noPackageClass.getMethod("getOne"); assertEquals(1, noPackageMethod.invoke(null)); m_recorderStubFactory.assertNoMoreCalls(); final Object result = m_instrumenter.createInstrumentedProxy(null, m_recorder, noPackageClass); assertSame(noPackageClass, result); m_recorderStubFactory.assertNoMoreCalls(); assertEquals(1, noPackageMethod.invoke(null)); m_recorderStubFactory.assertSuccess("start"); m_recorderStubFactory.assertSuccess("end", true); m_recorderStubFactory.assertNoMoreCalls(); }
public void testInstrumentInstance() throws Exception { RecorderLocator.clearRecorders(); final MyClass c1 = new MyExtendedClass(); assertEquals(0, c1.getA()); m_recorderStubFactory.assertNoMoreCalls(); final Object result = m_instrumenter.createInstrumentedProxy(null, m_recorder, c1); assertSame(c1, result); m_recorderStubFactory.assertNoMoreCalls(); MyClass.staticSix(); m_recorderStubFactory.assertNoMoreCalls(); assertEquals(0, c1.getA()); m_recorderStubFactory.assertSuccess("start"); m_recorderStubFactory.assertSuccess("end", true); m_recorderStubFactory.assertNoMoreCalls(); final MyClass c2 = new MyClass(); assertEquals(0, c2.getA()); m_recorderStubFactory.assertNoMoreCalls(); }
public void testArrays() throws Exception { RecorderLocator.clearRecorders(); try { m_instrumenter.createInstrumentedProxy(null, m_recorder, new MyClass[0]); fail("Expected NotWrappableTypeException"); } catch (NotWrappableTypeException e) { } try { m_instrumenter.createInstrumentedProxy(null, m_recorder, MyClass[].class); fail("Expected NotWrappableTypeException"); } catch (NotWrappableTypeException e) { } m_recorderStubFactory.assertNoMoreCalls(); }
@Override protected void tearDown() throws Exception { super.tearDown(); ExposeInstrumentation.premain("", m_originalInstrumentation); RecorderLocator.clearRecorders(); }