Author: scabanovich
Date: 2011-05-25 19:42:43 -0400 (Wed, 25 May 2011)
New Revision: 31496
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/event/fires/DogWhisperer.java
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/event/fires/DoggiePoints.java
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/ObserverMethodResolutionTest.java
Log:
JBIDE-9006
https://issues.jboss.org/browse/JBIDE-9006
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/event/fires/DogWhisperer.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/event/fires/DogWhisperer.java 2011-05-25
23:15:05 UTC (rev 31495)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/event/fires/DogWhisperer.java 2011-05-25
23:42:43 UTC (rev 31496)
@@ -25,6 +25,12 @@
@Inject @Any @Tame @Role("Master")
Event<TamingCommand> tamingEvent;
+ @Inject @Any @Tame @Role("Alien")
+ Event<TamingCommand> solicitingEvent;
+
+ @Inject @Any @Tame @Role("Neighbor")
+ Event<TamingCommand> friendlyEvent;
+
@Inject @Any
Event<Praise> praiseEvent;
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/event/fires/DoggiePoints.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/event/fires/DoggiePoints.java 2011-05-25
23:15:05 UTC (rev 31495)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/event/fires/DoggiePoints.java 2011-05-25
23:42:43 UTC (rev 31496)
@@ -36,6 +36,11 @@
numTamed++;
}
+ public void recognizedFriend(@Observes @Tame @Role("Neighbor") TamingCommand
tamed)
+ {
+ numTamed++;
+ }
+
public int getNumPraiseReceived()
{
return numPraiseReceived;
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/ObserverMethodResolutionTest.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/ObserverMethodResolutionTest.java 2011-05-25
23:15:05 UTC (rev 31495)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/ObserverMethodResolutionTest.java 2011-05-25
23:42:43 UTC (rev 31496)
@@ -34,13 +34,17 @@
assertFalse(observers.isEmpty());
IObserverMethod tamedObserver = null;
+ IObserverMethod recognizedFriendObserver = null;
for (IObserverMethod m: observers) {
IMethod jm = m.getMethod();
if("tamed".equals(jm.getElementName())) {
tamedObserver = m;
+ } else if("recognizedFriend".equals(jm.getElementName())) {
+ recognizedFriendObserver = m;
}
}
assertNotNull(tamedObserver);
+ assertNull(recognizedFriendObserver);
Set<IParameter> p = tamedObserver.getObservedParameters();
assertTrue(p.size() == 1);
@@ -53,6 +57,62 @@
assertTrue(points.contains(tamingEvent));
}
+ public void testObserverMethodResolution2() {
+ IInjectionPointField solicitingEvent =
getInjectionPointField("JavaSource/org/jboss/jsr299/tck/tests/event/fires/DogWhisperer.java",
"solicitingEvent");
+ assertNotNull(solicitingEvent);
+
+ Set<IObserverMethod> observers =
solicitingEvent.getCDIProject().resolveObserverMethods(solicitingEvent);
+
+ IObserverMethod tamedObserver = null;
+ IObserverMethod recognizedFriendObserver = null;
+ for (IObserverMethod m: observers) {
+ IMethod jm = m.getMethod();
+ if("tamed".equals(jm.getElementName())) {
+ tamedObserver = m;
+ } else if("recognizedFriend".equals(jm.getElementName())) {
+ recognizedFriendObserver = m;
+ } else {
+ System.out.println(jm);
+ }
+ }
+ assertNull(tamedObserver);
+ assertNull(recognizedFriendObserver);
+
+
+ }
+
+ public void testObserverMethodResolution3() {
+ IInjectionPointField friendlyEvent =
getInjectionPointField("JavaSource/org/jboss/jsr299/tck/tests/event/fires/DogWhisperer.java",
"friendlyEvent");
+ assertNotNull(friendlyEvent);
+
+ Set<IObserverMethod> observers =
friendlyEvent.getCDIProject().resolveObserverMethods(friendlyEvent);
+ assertFalse(observers.isEmpty());
+
+ IObserverMethod tamedObserver = null;
+ IObserverMethod recognizedFriendObserver = null;
+ for (IObserverMethod m: observers) {
+ IMethod jm = m.getMethod();
+ if("tamed".equals(jm.getElementName())) {
+ tamedObserver = m;
+ } else if("recognizedFriend".equals(jm.getElementName())) {
+ recognizedFriendObserver = m;
+ }
+ }
+ assertNull(tamedObserver);
+ assertNotNull(recognizedFriendObserver);
+
+ Set<IParameter> p = recognizedFriendObserver.getObservedParameters();
+ assertTrue(p.size() == 1);
+
+ IParameter observerParameter = p.iterator().next();
+ assertFalse(observerParameter instanceof IInjectionPointParameter);
+
+ Set<IInjectionPoint> points =
recognizedFriendObserver.getClassBean().getCDIProject().findObservedEvents(observerParameter);
+ assertTrue(points.size() == 1);
+ assertTrue(points.contains(friendlyEvent));
+ }
+
+
public void testEventBean() {
IInjectionPointField tamingEvent =
getInjectionPointField("JavaSource/org/jboss/jsr299/tck/tests/event/fires/DogWhisperer.java",
"tamingEvent");
assertNotNull(tamingEvent);