source: class TestWatcherRemovalManager  {
  
      @Test
      public void testSameWatcherDifferentPaths1Triggered() throws Exception
      {
  
target:         CuratorFramework client = CuratorFrameworkFactory.newClient(server.getConnectString(), new RetryOneTime(1));
          try
          {
              client.start();
              WatcherRemovalFacade removerClient = (WatcherRemovalFacade)client.newWatcherRemoveCuratorFramework();
              final CountDownLatch latch = new CountDownLatch(1);
              Watcher watcher = new Watcher()
              {
                  @Override
                  public void process(WatchedEvent event)
                  {
                      latch.countDown();
                  }
              };
              removerClient.checkExists().usingWatcher(watcher).forPath("/a/b/c");
              removerClient.checkExists().usingWatcher(watcher).forPath("/d/e/f");
              removerClient.create().creatingParentsIfNeeded().forPath("/d/e/f");
  
              Timing timing = new Timing();
              Assert.assertTrue(timing.awaitLatch(latch));
              timing.sleepABit();
  
              removerClient.removeWatchers();
          }
          finally
          {
              TestCleanState.closeAndTestClean(client);
          }
      }
  
  }