[picocontainer-scm] [5587] java/2.x/trunk/pico/jsr330-tck/src/test/StoneageSimulationJsr330Tests.java: more refactoring
paul-yCVjj/[email protected]
| Newsgroups | gmane.comp.java.picocontainer.cvs |
|---|---|
| Message-ID | <[email protected]> |
Revision 5587
Author paul
Date 2010-02-07 12:08:46 -0600 (Sun, 07 Feb 2010)
Log Message
more refactoring
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 (5586 => 5587)
--- java/2.x/trunk/pico/jsr330-tck/src/test/StoneageSimulationJsr330Tests.java 2010-02-07 16:43:54 UTC (rev 5586)
+++ java/2.x/trunk/pico/jsr330-tck/src/test/StoneageSimulationJsr330Tests.java 2010-02-07 18:08:46 UTC (rev 5587)
@@ -18,6 +18,7 @@
import java.lang.reflect.Method;
public class StoneageSimulationJsr330Tests {
+
public static Test suite() throws InvocationTargetException, IllegalAccessException, InstantiationException, NoSuchMethodException, NoSuchFieldException {
Constructor<?> seatCtor = Seat.class.getDeclaredConstructors()[0];
final Constructor<?> driversSeatCtor = DriversSeat.class.getDeclaredConstructors()[0];
@@ -39,18 +40,12 @@
final FuelTank fuelTank = new FuelTank();
final Tire plainTire = new Tire(fuelTank);
- injectField(plainTire,Tire.class,"fieldInjection", new FuelTank());
+ tireInjections(plainTire);
final SpareTire spareTire = new SpareTire(fuelTank, new FuelTank());
+ tireInjections(plainTire);
+ spareTireInjections(spareTire);
- spareTire.injectPublicMethod();
- 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());
-
Provider<Seat> driversSeatProvider = new Provider<Seat>() {
public Seat get() {
try {
@@ -69,7 +64,13 @@
Provider<Tire> spareTireProvider = new Provider<Tire>() {
public Tire get() {
- return new SpareTire(fuelTank, new FuelTank());
+ try {
+ SpareTire aSpareTire = new SpareTire(fuelTank, new FuelTank());
+ spareTireInjections(aSpareTire);
+ return aSpareTire;
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
}
};
@@ -82,16 +83,9 @@
}
};
- Constructor<?> convertibelCtor = null;
- Constructor<?>[] convertibelCtors = Convertible.class.getDeclaredConstructors();
- for (int i = 0; i < convertibelCtors.length; i++) {
- convertibelCtor = convertibelCtors[i];
- if (convertibelCtor.getParameterTypes().length > 0) {
- break;
- }
- }
+ Constructor<?> convertibelCtor = Convertible.class.getDeclaredConstructor(Seat.class, Seat.class, Tire.class, Tire.class,
+ Provider.class, Provider.class, Provider.class, Provider.class);
convertibelCtor.setAccessible(true);
-
Car car = (Car) convertibelCtor.newInstance(
plainSeat[0],
driversSeatA,
@@ -102,15 +96,6 @@
plainTireProvider,
spareTireProvider);
- injectMethod(car, Convertible.class, "injectMethodWithZeroArgs");
- injectMethod(car, Convertible.class, "injectMethodWithNonVoidReturn");
-
- 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);
@@ -125,10 +110,31 @@
injectField(car, Convertible.class, "fieldPlainTireProvider", plainTireProvider);
injectField(car, Convertible.class, "fieldSpareTireProvider", spareTireProvider);
+ injectMethod(car, Convertible.class, "injectMethodWithZeroArgs");
+ injectMethod(car, Convertible.class, "injectMethodWithNonVoidReturn");
+ 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);
+
return Tck.testsFor(car, true, true);
}
+ private static void spareTireInjections(SpareTire spareTire) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, NoSuchFieldException {
+ injectField(spareTire, SpareTire.class,"fieldInjection", new FuelTank());
+ injectMethod(spareTire, SpareTire.class, "subtypeMethodInjection", FuelTank.class, new FuelTank());
+ injectMethod(spareTire, SpareTire.class, "injectPrivateMethod");
+ injectMethod(spareTire, SpareTire.class, "injectPackagePrivateMethod");
+ spareTire.injectPublicMethod();
+ }
+
+ private static void tireInjections(Tire tire) throws NoSuchFieldException, IllegalAccessException, NoSuchMethodException, InvocationTargetException {
+ injectField(tire, Tire.class,"fieldInjection", new FuelTank());
+ injectMethod(tire, Tire.class, "supertypeMethodInjection", FuelTank.class, new FuelTank());
+ }
+
private static void injectField(Object inst, Class<?> type, String name, Object param) throws NoSuchFieldException, IllegalAccessException {
Field field = type.getDeclaredField(name);
field.setAccessible(true);
----------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email