public void testSimple() {
    T t = new T();
    assert t.getI() == 0;
    assert t.getI() == 0;

    CacheFactory.getCleaner().clearCacheByClass(T.class);

    assert t.getI() == 1;
    assert t.getI() == 1;
  }
  public void testClearByGroup() {
    T t = new T();

    assert t.getI() == 0;
    assert t.getI() == 0;

    assert t.getJ() == 0;
    assert t.getJ() == 0;

    CacheFactory.getCleaner().clearCacheByGroup("tagG");

    assert t.getI() == 1;
    assert t.getI() == 1;

    assert t.getJ() == 0;
    assert t.getJ() == 0;
  }
  public void testClearByTag() {
    T t = new T();

    assert t.getI() == 0;
    assert t.getI() == 0;

    assert t.getJ() == 0;
    assert t.getJ() == 0;

    CacheFactory.getCleaner().clearCacheByTag("tagA");

    assert t.getI() == 0;
    assert t.getI() == 0;

    assert t.getJ() == 1;
    assert t.getJ() == 1;
  }
  public void testClearByInstance() throws InterruptedException {
    T a = new T();
    T b = new T();

    assert a.getI() == 0;
    assert a.getI() == 0;

    assert b.getI() == 0;
    assert b.getI() == 0;

    CacheFactory.getCleaner().clearCacheByInstance(a);

    assert a.getI() == 1;
    assert a.getI() == 1;

    assert b.getI() == 0;
    assert b.getI() == 0;
  }