blob: 092144ec35a8ef876630bf857cfc98964f14c20b [file] [log] [blame]
package org.apache.harmony.prefs.tests.java.util.prefs;
import java.util.prefs.NodeChangeEvent;
import java.util.prefs.NodeChangeListener;
import java.util.prefs.Preferences;
public class MockNodeChangeListener implements NodeChangeListener {
private Object addLock = new Object();
private Object removeLock = new Object();
private int added = 0;
private int removed = 0;
private int testNum = 0;
public static final int TEST_GET_CHILD = 1;
public static final int TEST_GET_PARENT = 2;
boolean addResult = false;
boolean removeResult = false;
public MockNodeChangeListener(int test) {
testNum = test;
}
public MockNodeChangeListener() {
}
public void waitForEvent() {
try {
synchronized (addLock) {
addLock.wait(500);
}
} catch (InterruptedException e) {
}
}
public void childAdded(NodeChangeEvent e) {
synchronized (addLock) {
switch (testNum) {
case TEST_GET_CHILD:
Preferences child = e.getChild();
if (child == null) {
addResult = false;
} else {
if (child.name() == "mock1") {
addResult = true;
}
}
break;
case TEST_GET_PARENT:
Preferences parent = e.getParent();
if (parent == null) {
addResult = false;
} else {
if (parent.name() == "mock") {
addResult = true;
}
}
break;
}
++added;
addLock.notifyAll();
}
}
public void childRemoved(NodeChangeEvent e) {
synchronized (removeLock) {
switch (testNum) {
case TEST_GET_CHILD:
Preferences child = e.getChild();
if (child == null) {
removeResult = false;
} else {
if (child.name() == "mock1") {
removeResult = true;
}
}
break;
case TEST_GET_PARENT:
Preferences parent = e.getParent();
if (parent == null) {
addResult = false;
} else {
if (parent.name() == "mock") {
addResult = true;
}
}
break;
}
removed++;
removeLock.notifyAll();
}
}
public boolean getAddResult() {
synchronized (addLock) {
return addResult;
}
}
public boolean getRemoveResult() {
synchronized (removeLock) {
return removeResult;
}
}
public int getAdded() {
synchronized (addLock) {
return added;
}
}
public int getRemoved() {
synchronized (removeLock) {
return removed;
}
}
public void reset() {
added = 0;
removed = 0;
}
}