[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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.