dlmarion commented on code in PR #5256: URL: https://github.com/apache/accumulo/pull/5256#discussion_r1928836356
########## core/src/test/java/org/apache/accumulo/core/zookeeper/ZooCacheTest.java: ########## @@ -16,48 +16,111 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.accumulo.core.fate.zookeeper; +package org.apache.accumulo.core.zookeeper; import static org.easymock.EasyMock.anyObject; -import static org.easymock.EasyMock.capture; import static org.easymock.EasyMock.createStrictMock; import static org.easymock.EasyMock.eq; import static org.easymock.EasyMock.expect; +import static org.easymock.EasyMock.isA; import static org.easymock.EasyMock.replay; +import static org.easymock.EasyMock.reset; import static org.easymock.EasyMock.verify; import static org.junit.jupiter.api.Assertions.assertArrayEquals; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; +import java.util.Collections; import java.util.List; +import java.util.Set; +import java.util.TreeSet; +import java.util.UUID; -import org.apache.accumulo.core.fate.zookeeper.ZooCache.ZcStat; -import org.apache.accumulo.core.fate.zookeeper.ZooCache.ZooCacheWatcher; -import org.apache.accumulo.core.zookeeper.ZooSession; +import org.apache.accumulo.core.Constants; +import org.apache.accumulo.core.zookeeper.ZooCache.ZooCacheWatcher; import org.apache.zookeeper.KeeperException; import org.apache.zookeeper.WatchedEvent; import org.apache.zookeeper.Watcher; import org.apache.zookeeper.data.Stat; -import org.easymock.Capture; -import org.easymock.EasyMock; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; public class ZooCacheTest { - private static final String ZPATH = "/some/path/in/zk"; + + /** + * Test class that extends ZooCache to suppress the creation of the persistent recursive watchers + * that are created in the constructor and to provide access to the watcher. + */ + private static class TestZooCache extends ZooCache { + + public TestZooCache(ZooSession zk, Set<String> pathsToWatch) { + super(zk, pathsToWatch); + } + + @Override + protected void setupWatchers(Set<String> pathsToWatch) { + TreeSet<String> wPaths = new TreeSet<>(); + for (String path : pathsToWatch) { + wPaths.add(path); + } + watchedPaths = Collections.unmodifiableNavigableSet(wPaths); + } + + public void executeWatcher(WatchedEvent event) { + // simulate ZooKeeper calling our Watcher + watcher.process(event); Review Comment: org.apache.accumulo.test.zookeeper.ZooCacheIT uses ZooKeeperTestingServer and org.apache.accumulo.test.functional.ZooCacheIT uses MAC. Both of them manipulate ZooKeeper and test ZooCache contents already. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: notifications-unsubscr...@accumulo.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org