broken test in AddEventListener
-------------------------------
Key: JCR-1168
URL: https://issues.apache.org/jira/browse/JCR-1168
Project: Jackrabbit
Issue Type: Bug
Components: jackrabbit-jcr-tests
Reporter: Julian Reschke
Here's the test code, comments inline prefixed with "reschke"
/**
* Tests if [EMAIL PROTECTED] javax.jcr.observation.Event#NODE_ADDED} is
created only
* for the specified path if <code>isDeep</code> is <code>false</code>.
*/
public void testIsDeepFalseNodeAdded() throws RepositoryException {
EventResult listener = new EventResult(log);
// reschke: we are listening for changes at testRoot/nodeName1, with
isDeep==false
obsMgr.addEventListener(listener, Event.NODE_ADDED, testRoot + "/" +
nodeName1, false, null, null, false);
// reschke; node at "testRoot/nodeName1" being created, the associated
parent node for this event is "testRoot"
Node n = testRootNode.addNode(nodeName1, testNodeType);
// reschke: node at "testRoot/nodeName1/nodeName2" being created, the
associated parent node for this event is "testRoot/nodeName1"
n.addNode(nodeName2);
testRootNode.save();
Event[] events = listener.getEvents(DEFAULT_WAIT_TIMEOUT);
obsMgr.removeEventListener(listener);
// reschke: test case expects event with path "testRoot/nodeName1"
checkNodeAdded(events, new String[]{nodeName1});
}
So, in plain english:
- test case listens for events where the associated parent node equals
"testRoot/nodeName1", but
- it expects a single event where the Event.getPath() returns
"testRoot/nodeName1".
This is incorrect (IMHO), because the associated parent node for *that* event
is "testRoot".
So the correct test would be to check for:
checkNodeAdded(events, new String[]{nodeName1 + "/" + nodeName2});
Making this change of course leads to a test failure reported against the RI.
Feedback appreciated.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.