[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
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.