1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package net.grinder.scriptengine.jython;
23
24 import static net.grinder.scriptengine.jython.instrumentation.AbstractJythonInstrumenterTestCase.assertVersion;
25 import static org.junit.Assert.assertEquals;
26 import static org.junit.Assert.assertSame;
27
28 import java.util.List;
29
30 import net.grinder.common.GrinderProperties;
31 import net.grinder.engine.process.dcr.DCRContextImplementation;
32 import net.grinder.scriptengine.DCRContext;
33 import net.grinder.scriptengine.Instrumenter;
34 import net.grinder.testutility.Jython25Runner;
35
36 import org.junit.Test;
37 import org.junit.runner.RunWith;
38 import org.python.core.PyInstance;
39
40
41
42
43
44
45
46 @RunWith(Jython25Runner.class)
47 public class TestJythonScriptEngineServiceWithJython25
48 extends AbstractJythonScriptEngineServiceTests {
49
50 @Test public void testVersion() throws Exception {
51 assertVersion("2.5");
52 }
53
54 @Test public void testCreateInstrumentedProxy() throws Exception {
55 final GrinderProperties properties = new GrinderProperties();
56 final DCRContext context = DCRContextImplementation.create(null);
57
58 final List<Instrumenter> instrumenters =
59 new JythonScriptEngineService(properties, context, m_pyScript)
60 .createInstrumenters();
61
62 assertEquals(1, instrumenters.size());
63
64 final Instrumenter instrumenter = instrumenters.get(0);
65
66 assertEquals("byte code transforming instrumenter for Jython 2.5",
67 instrumenter.getDescription());
68
69 final Object original = new PyInstance();
70
71 final Object proxy =
72 instrumenter.createInstrumentedProxy(m_test, m_recorder, original);
73
74 assertSame(original, proxy);
75 }
76
77 @Test public void testInstrument() throws Exception {
78 final GrinderProperties properties = new GrinderProperties();
79 final DCRContextImplementation context = DCRContextImplementation.create(null);
80
81 final List<Instrumenter> instrumenters =
82 new JythonScriptEngineService(properties, context, m_pyScript)
83 .createInstrumenters();
84
85 instrumenters.get(0).instrument(m_test, m_recorder, new PyInstance());
86 }
87 }