@Test public void testCreateInstrumentedProxy() throws Exception { final GrinderProperties properties = new GrinderProperties(); final DCRContext context = DCRContextImplementation.create(null); final List<Instrumenter> instrumenters = new JythonScriptEngineService(properties, context, m_pyScript).createInstrumenters(); assertEquals(1, instrumenters.size()); final Instrumenter instrumenter = instrumenters.get(0); assertEquals("traditional Jython instrumenter", instrumenter.getDescription()); final Object foo = new Object(); PySystemState.initialize(); final PyObject proxy = (PyObject) instrumenter.createInstrumentedProxy(m_test, m_recorder, foo); assertSame(proxy.__getattr__("__target__").__tojava__(Object.class), foo); try { instrumenter.createInstrumentedProxy(m_test, m_recorder, new PyObject()); fail("Expected NotWrappableTypeException"); } catch (NotWrappableTypeException e) { } }
@Test public void testWithForcedDCRInsstrumentation() throws Exception { final GrinderProperties properties = new GrinderProperties(); properties.setBoolean("grinder.dcrinstrumentation", true); final DCRContextImplementation context = DCRContextImplementation.create(null); final List<Instrumenter> instrumenters = new JythonScriptEngineService(properties, context, m_pyScript).createInstrumenters(); assertEquals(1, instrumenters.size()); final Instrumenter instrumenter = instrumenters.get(0); assertEquals( "byte code transforming instrumenter for Jython 2.1/2.2", instrumenter.getDescription()); }