test_class.declarator: asyncEvictionListener
test_class.original_string: BasicEvictionListener<Object, Object> asyncEvictionListener;
test_class.type: BasicEvictionListener<Object, Object>
test_class.var_name: asyncEvictionListener
test_class.file: imcache-core/src/test/java/com/cetsoft/imcache/cache/async/BasicEvictionListenerTest.java
test_class.identifier: BasicEvictionListenerTest
test_case.body: @Test
    public void onEviction() {
      Object key = new Object(), value = new Object();
      doNothing().when(asyncEvictionListener).save(key, value);
      asyncEvictionListener.onEviction(key, value);
      try {
        Thread.sleep(10);
      } catch (InterruptedException e) {
      }
      verify(asyncEvictionListener).save(key, value);
    }
test_case.class_method_signature: BasicEvictionListenerTest.onEviction()
test_case.full_signature: @Test public void onEviction()
test_case.identifier: onEviction
test_case.invocations: save when doNothing onEviction sleep save verify
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void onEviction()
focal_class.declarator: NO_OF_EVICTION_LISTENERS = new AtomicInteger()
focal_class.modifier: private static final
focal_class.original_string: private static final AtomicInteger NO_OF_EVICTION_LISTENERS = new AtomicInteger();
focal_class.type: AtomicInteger
focal_class.var_name: NO_OF_EVICTION_LISTENERS
focal_class.declarator: asyncEvictionExecutor
focal_class.modifier: private final
focal_class.original_string: private final ExecutorService asyncEvictionExecutor;
focal_class.type: ExecutorService
focal_class.var_name: asyncEvictionExecutor
focal_class.file: imcache-core/src/main/java/com/cetsoft/imcache/cache/async/BasicEvictionListener.java
focal_class.identifier: BasicEvictionListener
focal_class.interfaces: implements AsyncEvictionListener<K, V>
focal_class.class_method_signature: BasicEvictionListener.BasicEvictionListener()
focal_class.full_signature: public  BasicEvictionListener()
focal_class.identifier: BasicEvictionListener
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  BasicEvictionListener()
focal_class.class_method_signature: BasicEvictionListener.onEviction(final K key, final V value)
focal_class.full_signature: public void onEviction(final K key, final V value)
focal_class.identifier: onEviction
focal_class.modifiers: public
focal_class.parameters: (final K key, final V value)
focal_class.return: void
focal_class.signature: void onEviction(final K key, final V value)
focal_class.class_method_signature: BasicEvictionListener.save(K key, V value)
focal_class.full_signature: public abstract void save(K key, V value)
focal_class.identifier: save
focal_class.modifiers: public abstract
focal_class.parameters: (K key, V value)
focal_class.return: void
focal_class.signature: void save(K key, V value)
focal_method.body: public void onEviction(final K key, final V value) {
      asyncEvictionExecutor.execute(() -> save(key, value));
    }
focal_method.class_method_signature: BasicEvictionListener.onEviction(final K key, final V value)
focal_method.full_signature: public void onEviction(final K key, final V value)
focal_method.identifier: onEviction
focal_method.invocations: execute save
focal_method.modifiers: public
focal_method.parameters: (final K key, final V value)
focal_method.return: void
focal_method.signature: void onEviction(final K key, final V value)