예제 #1
0
  public void testSelect() throws Exception {
    cache.put(new MyKey("a"), 1);
    cache.put(new MyKey("b"), 2);
    cache.put(new MyKey("c"), 3);
    final AtomicInteger count = new AtomicInteger();
    CachedObjectSelector<Serializable, Object> selector =
        new CachedObjectSelector<Serializable, Object>() {

          public void onSelect(
              ExoCache<? extends Serializable, ? extends Object> cache,
              Serializable key,
              ObjectCacheInfo<? extends Object> ocinfo)
              throws Exception {
            assertTrue(
                key.equals(new MyKey("a"))
                    || key.equals(new MyKey("b"))
                    || key.equals(new MyKey("c")));
            assertTrue(ocinfo.get().equals(1) || ocinfo.get().equals(2) || ocinfo.get().equals(3));
            count.incrementAndGet();
          }

          public boolean select(Serializable key, ObjectCacheInfo<? extends Object> ocinfo) {
            return true;
          }
        };
    try {
      cache.select(selector);
      assertEquals(3, count.intValue());
    } catch (UnsupportedOperationException e) {
      // OK
    }
  }