[picocontainer-scm] [5585] java/2.x/trunk/pico/jsr330-tck/src/test/StoneageSimulationJsr330Tests.java: more on simulation - 16/58 failing

paul-yCVjj/[email protected]
Newsgroups gmane.comp.java.picocontainer.cvs
Message-ID <[email protected]>
Revision 5585
Author paul
Date 2010-02-07 10:30:24 -0600 (Sun, 07 Feb 2010)

Log Message

more on simulation - 16/58 failing

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 (5584 => 5585)

--- java/2.x/trunk/pico/jsr330-tck/src/test/StoneageSimulationJsr330Tests.java 2010-02-07 02:32:21 UTC (rev 5584)
+++ java/2.x/trunk/pico/jsr330-tck/src/test/StoneageSimulationJsr330Tests.java 2010-02-07 16:30:24 UTC (rev 5585)
@@ -20,7 +20,7 @@
public class StoneageSimulationJsr330Tests {
public static Test suite() throws InvocationTargetException, IllegalAccessException, InstantiationException, NoSuchMethodException, NoSuchFieldException {
Constructor<?> seatCtor = Seat.class.getDeclaredConstructors()[0];
- Constructor<?> driversSeatCtor = DriversSeat.class.getDeclaredConstructors()[0];
+ final Constructor<?> driversSeatCtor = DriversSeat.class.getDeclaredConstructors()[0];
seatCtor.setAccessible(true);

final Seat[] plainSeat = new Seat[1];
@@ -31,46 +31,62 @@
}
};

- Cupholder cupholder = new Cupholder(plainSeatProvider);
+ final Cupholder cupholder = new Cupholder(plainSeatProvider);
plainSeat[0] = (Seat) seatCtor.newInstance(cupholder);
- final DriversSeat driversSeat = (DriversSeat) driversSeatCtor.newInstance(cupholder);
+ final DriversSeat driversSeatA = (DriversSeat) driversSeatCtor.newInstance(cupholder);
+ final DriversSeat driversSeatB = (DriversSeat) driversSeatCtor.newInstance(cupholder);

- FuelTank fuelTank = new FuelTank();
+ 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());

final SpareTire spareTire = new SpareTire(fuelTank, new FuelTank());

- Method subtypeMethodInjection = SpareTire.class.getDeclaredMethod("subtypeMethodInjection", FuelTank.class);
- subtypeMethodInjection.setAccessible(true);
- subtypeMethodInjection.invoke(spareTire, 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());

- Field fieldInjection = SpareTire.class.getDeclaredField("fieldInjection");
+ 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() {
- return driversSeat;
+ try {
+ return (DriversSeat) driversSeatCtor.newInstance(cupholder);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
}
};

Provider<Tire> plainTireProvider = new Provider<Tire>() {
public Tire get() {
- return plainTire;
+ return new Tire(fuelTank);
}
};

Provider<Tire> spareTireProvider = new Provider<Tire>() {
public Tire get() {
- return spareTire;
+ return new SpareTire(fuelTank, new FuelTank());
}
};

+ final V8Engine v8Engine = new V8Engine();
+ methodInjection(v8Engine, V8Engine.class, "injectTwiceOverriddenWithOmissionInMiddle");
+
Provider<Engine> engineProvider = new Provider<Engine>() {
public Engine get() {
- return new V8Engine();
+ return v8Engine;
}
};

@@ -84,25 +100,24 @@
}
convertibelCtor.setAccessible(true);

- System.out.println("l" + convertibelCtor.getParameterTypes().length);
Car car = (Car) convertibelCtor.newInstance(
plainSeat[0],
- driversSeat,
+ driversSeatA,
plainTire,
spareTire,
plainSeatProvider,
driversSeatProvider,
plainTireProvider,
- engineProvider);
+ spareTireProvider);

Field driversSeatAFld = Convertible.class.getDeclaredField("driversSeatA");
driversSeatAFld.setAccessible(true);
- driversSeatAFld.set(car, driversSeat);
+ driversSeatAFld.set(car, driversSeatA);

Field driversSeatBFld = Convertible.class.getDeclaredField("driversSeatB");
driversSeatBFld.setAccessible(true);
- driversSeatBFld.set(car, driversSeat);
+ driversSeatBFld.set(car, driversSeatB);

Field spareTireFld = Convertible.class.getDeclaredField("spareTire");
spareTireFld.setAccessible(true);
@@ -122,7 +137,7 @@

Field fieldDriversSeatFld = Convertible.class.getDeclaredField("fieldDriversSeat");
fieldDriversSeatFld.setAccessible(true);
- fieldDriversSeatFld.set(car, driversSeat);
+ fieldDriversSeatFld.set(car, driversSeatA);

Field fieldPlainTire = Convertible.class.getDeclaredField("fieldPlainTire");
fieldPlainTire.setAccessible(true);
@@ -159,9 +174,23 @@
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], driversSeat, plainTire,
+ injectInstanceMethodWithManyArgs.invoke(car, plainSeat[0], driversSeatA, plainTire,
spareTire, plainSeatProvider, driversSeatProvider, plainTireProvider, 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 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 methodInjection(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);
+ }
}
\ No newline at end of file

----------

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.