[picocontainer-scm] [5586] java/2.x/trunk/pico/jsr330-tck/src/test/StoneageSimulationJsr330Tests.java: extracted injector helper methods
paul-yCVjj/[email protected]
| Newsgroups | gmane.comp.java.picocontainer.cvs |
|---|---|
| Message-ID | <[email protected]> |
Revision 5586
Author paul
Date 2010-02-07 10:43:54 -0600 (Sun, 07 Feb 2010)
Log Message
extracted injector helper methods
Modified Paths
- java/2.x/trunk/pico/jsr330-tck/src/test/StoneageSimulationJsr330Tests.java
Diff
Modified: java/2.x/trunk/pico/jsr330-tck/src/test/StoneageSimulationJsr330Tests.java (5585 => 5586)
--- java/2.x/trunk/pico/jsr330-tck/src/test/StoneageSimulationJsr330Tests.java 2010-02-07 16:30:24 UTC (rev 5585)
+++ java/2.x/trunk/pico/jsr330-tck/src/test/StoneageSimulationJsr330Tests.java 2010-02-07 16:43:54 UTC (rev 5586)
@@ -39,26 +39,18 @@
final FuelTank fuelTank = new FuelTank();
final Tire plainTire = new Tire(fuelTank);
- Field fieldInjection = Tire.class.getDeclaredField("fieldInjection");
- fieldInjection.setAccessible(true);
- fieldInjection.set(plainTire, new FuelTank());
+ injectField(plainTire,Tire.class,"fieldInjection", new FuelTank());
final SpareTire spareTire = new SpareTire(fuelTank, new FuelTank());
spareTire.injectPublicMethod();
- methodInjection(spareTire, SpareTire.class, "subtypeMethodInjection", FuelTank.class, new FuelTank());
- methodInjection(spareTire, SpareTire.class, "injectPrivateMethod");
- methodInjection(spareTire, SpareTire.class, "injectPackagePrivateMethod");
- methodInjection(spareTire, Tire.class, "supertypeMethodInjection", FuelTank.class, new FuelTank());
+ injectMethod(spareTire, SpareTire.class, "subtypeMethodInjection", FuelTank.class, new FuelTank());
+ injectMethod(spareTire, SpareTire.class, "injectPrivateMethod");
+ injectMethod(spareTire, SpareTire.class, "injectPackagePrivateMethod");
+ injectMethod(spareTire, Tire.class, "supertypeMethodInjection", FuelTank.class, new FuelTank());
+ injectField(spareTire,SpareTire.class,"fieldInjection", new FuelTank());
+ injectField(spareTire,Tire.class,"fieldInjection", new FuelTank());
- fieldInjection = SpareTire.class.getDeclaredField("fieldInjection");
- fieldInjection.setAccessible(true);
- fieldInjection.set(spareTire, new FuelTank());
- fieldInjection = Tire.class.getDeclaredField("fieldInjection");
- fieldInjection.setAccessible(true);
- fieldInjection.set(spareTire, new FuelTank());
-
-
Provider<Seat> driversSeatProvider = new Provider<Seat>() {
public Seat get() {
try {
@@ -82,7 +74,7 @@
};
final V8Engine v8Engine = new V8Engine();
- methodInjection(v8Engine, V8Engine.class, "injectTwiceOverriddenWithOmissionInMiddle");
+ injectMethod(v8Engine, V8Engine.class, "injectTwiceOverriddenWithOmissionInMiddle");
Provider<Engine> engineProvider = new Provider<Engine>() {
public Engine get() {
@@ -110,85 +102,48 @@
plainTireProvider,
spareTireProvider);
+ injectMethod(car, Convertible.class, "injectMethodWithZeroArgs");
+ injectMethod(car, Convertible.class, "injectMethodWithNonVoidReturn");
- Field driversSeatAFld = Convertible.class.getDeclaredField("driversSeatA");
- driversSeatAFld.setAccessible(true);
- driversSeatAFld.set(car, driversSeatA);
-
- Field driversSeatBFld = Convertible.class.getDeclaredField("driversSeatB");
- driversSeatBFld.setAccessible(true);
- driversSeatBFld.set(car, driversSeatB);
-
- Field spareTireFld = Convertible.class.getDeclaredField("spareTire");
- spareTireFld.setAccessible(true);
- spareTireFld.set(car, spareTire);
-
- Field cupholderFld = Convertible.class.getDeclaredField("cupholder");
- cupholderFld.setAccessible(true);
- cupholderFld.set(car, cupholder);
-
- Field engineProviderFld = Convertible.class.getDeclaredField("engineProvider");
- engineProviderFld.setAccessible(true);
- engineProviderFld.set(car, engineProvider);
-
- Field fieldPlainSeatFld = Convertible.class.getDeclaredField("fieldPlainSeat");
- fieldPlainSeatFld.setAccessible(true);
- fieldPlainSeatFld.set(car, plainSeat[0]);
-
- Field fieldDriversSeatFld = Convertible.class.getDeclaredField("fieldDriversSeat");
- fieldDriversSeatFld.setAccessible(true);
- fieldDriversSeatFld.set(car, driversSeatA);
-
- Field fieldPlainTire = Convertible.class.getDeclaredField("fieldPlainTire");
- fieldPlainTire.setAccessible(true);
- fieldPlainTire.set(car, plainTire);
-
- Field fieldSpareTire = Convertible.class.getDeclaredField("fieldSpareTire");
- fieldSpareTire.setAccessible(true);
- fieldSpareTire.set(car, spareTire);
-
- Field fieldPlainSeatProvider = Convertible.class.getDeclaredField("fieldPlainSeatProvider");
- fieldPlainSeatProvider.setAccessible(true);
- fieldPlainSeatProvider.set(car, plainSeatProvider);
-
- Field fieldDriversSeatProvider = Convertible.class.getDeclaredField("fieldDriversSeatProvider");
- fieldDriversSeatProvider.setAccessible(true);
- fieldDriversSeatProvider.set(car, driversSeatProvider);
-
- Field fieldPlainTireProvider = Convertible.class.getDeclaredField("fieldPlainTireProvider");
- fieldPlainTireProvider.setAccessible(true);
- fieldPlainTireProvider.set(car, plainTireProvider);
-
- Field fieldSpareTireProvider = Convertible.class.getDeclaredField("fieldSpareTireProvider");
- fieldSpareTireProvider.setAccessible(true);
- fieldSpareTireProvider.set(car, spareTireProvider);
-
- Method injectMethodWithZeroArgs = Convertible.class.getDeclaredMethod("injectMethodWithZeroArgs");
- injectMethodWithZeroArgs.setAccessible(true);
- injectMethodWithZeroArgs.invoke(car);
-
- Method injectMethodWithNonVoidReturn = Convertible.class.getDeclaredMethod("injectMethodWithNonVoidReturn");
- injectMethodWithNonVoidReturn.setAccessible(true);
- injectMethodWithNonVoidReturn.invoke(car);
-
Method injectInstanceMethodWithManyArgs = Convertible.class.getDeclaredMethod("injectInstanceMethodWithManyArgs",
Seat.class, Seat.class, Tire.class, Tire.class, Provider.class, Provider.class, Provider.class, Provider.class);
injectInstanceMethodWithManyArgs.setAccessible(true);
injectInstanceMethodWithManyArgs.invoke(car, plainSeat[0], driversSeatA, plainTire,
spareTire, plainSeatProvider, driversSeatProvider, plainTireProvider, spareTireProvider);
+ injectField(car, Convertible.class, "driversSeatA", driversSeatA);
+ injectField(car, Convertible.class, "driversSeatB", driversSeatB);
+ injectField(car, Convertible.class, "spareTire", spareTire);
+ injectField(car, Convertible.class, "cupholder", cupholder);
+ injectField(car, Convertible.class, "engineProvider", engineProvider);
+ injectField(car, Convertible.class, "fieldPlainSeat", plainSeat[0]);
+ injectField(car, Convertible.class, "fieldDriversSeat", driversSeatA);
+ injectField(car, Convertible.class, "fieldPlainTire", plainTire);
+ injectField(car, Convertible.class, "fieldSpareTire", spareTire);
+ injectField(car, Convertible.class, "fieldPlainSeatProvider", plainSeatProvider);
+ injectField(car, Convertible.class, "fieldDriversSeatProvider", driversSeatProvider);
+ injectField(car, Convertible.class, "fieldPlainTireProvider", plainTireProvider);
+ injectField(car, Convertible.class, "fieldSpareTireProvider", spareTireProvider);
+
+
return Tck.testsFor(car, true, true);
}
- private static void methodInjection(Object inst, Class<?> type, String name) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException {
- methodInjection(inst, type, name, new Class[0], new Object[0]);
+ private static void injectField(Object inst, Class<?> type, String name, Object param) throws NoSuchFieldException, IllegalAccessException {
+ Field field = type.getDeclaredField(name);
+ field.setAccessible(true);
+ field.set(inst, param);
}
- private static void methodInjection(Object inst, Class<?> type, String name, Class<?> pType, Object param) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException {
- methodInjection(inst, type, name, new Class[] {pType}, new Object[]{param});
+ private static void injectMethod(Object inst, Class<?> type, String name) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException {
+ injectMethod(inst, type, name, new Class[0], new Object[0]);
}
- private static void methodInjection(Object inst, Class<?> type, String name, Class<?>[] pTypes, Object[] params) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException {
+ private static void injectMethod(Object inst, Class<?> type, String name, Class<?> pType, Object param) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException {
+ injectMethod(inst, type, name, new Class[] {pType}, new Object[]{param});
+ }
+
+ private static void injectMethod(Object inst, Class<?> type, String name, Class<?>[] pTypes, Object[] params) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException {
Method method = type.getDeclaredMethod(name, pTypes);
method.setAccessible(true);
method.invoke(inst, params);
----------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email