@Test public void testPrePrepareRexindex() throws Exception { final IndexStatusListener l1 = new IndexStatusListener() { @Override protected void prePrepare() { executed.set(true); assertRunOk(new AsyncIndexUpdate(name, store, provider)); } }; assertRunOk(new SpecialAsyncIndexUpdate(name, store, provider, l1)); }
@Test public void testPostPrepareReindex() { final IndexStatusListener l1 = new IndexStatusListener() { @Override protected void postPrepare() { executed.set(true); // lease must prevent this run assertRunKo(new AsyncIndexUpdate(name, store, provider)); } }; assertRunOk(new SpecialAsyncIndexUpdate(name, store, provider, l1)); }
@Test public void testLeaseDisabled() throws Exception { // take care of initial reindex before AsyncIndexUpdate async = new AsyncIndexUpdate(name, store, provider).setLeaseTimeOut(0); async.run(); testContent(store); assertRunOk(async); testContent(store); assertRunOk(async); executed.set(true); }
@Test public void testPreIndexUpdateReindex() throws Exception { testContent(store); final IndexStatusListener l1 = new IndexStatusListener() { @Override protected void preIndexUpdate() { executed.set(true); assertRunKo(new AsyncIndexUpdate(name, store, provider)); } }; assertRunOk(new SpecialAsyncIndexUpdate(name, store, provider, l1)); }
@Test public void testPostIndexUpdateReindex() throws Exception { testContent(store); final IndexStatusListener l1 = new IndexStatusListener() { @Override protected void postIndexUpdate() { executed.set(true); assertRunKo(new AsyncIndexUpdate(name, store, provider)); } }; assertRunOk(new SpecialAsyncIndexUpdate(name, store, provider, l1)); }
assertRunOk(new SpecialAsyncIndexUpdate(name, store, provider, l1, clock) .setLeaseTimeOut(lease)); assertRunOk(new SpecialAsyncIndexUpdate(name, store, provider, l1, clock) .setLeaseTimeOut(lease)); assertTrue(leaseTimes.size() > 1);
@Test public void testPostPrepare() { // take care of initial reindex before new AsyncIndexUpdate(name, store, provider).run(); final IndexStatusListener l1 = new IndexStatusListener() { @Override protected void postPrepare() { executed.set(true); // lease must prevent this run assertRunKo(new AsyncIndexUpdate(name, store, provider)); } }; assertRunOk(new SpecialAsyncIndexUpdate(name, store, provider, l1)); }
@Test public void testPreIndexUpdate() throws Exception { // take care of initial reindex before new AsyncIndexUpdate(name, store, provider).run(); testContent(store); final IndexStatusListener l1 = new IndexStatusListener() { @Override protected void preIndexUpdate() { executed.set(true); assertRunKo(new AsyncIndexUpdate(name, store, provider)); } }; assertRunOk(new SpecialAsyncIndexUpdate(name, store, provider, l1)); }
@Test public void testPostIndexUpdate() throws Exception { // take care of initial reindex before new AsyncIndexUpdate(name, store, provider).run(); testContent(store); final IndexStatusListener l1 = new IndexStatusListener() { @Override protected void postIndexUpdate() { executed.set(true); assertRunKo(new AsyncIndexUpdate(name, store, provider)); } }; assertRunOk(new SpecialAsyncIndexUpdate(name, store, provider, l1)); }
@Test public void testPreClose() throws Exception { // take care of initial reindex before new AsyncIndexUpdate(name, store, provider).run(); testContent(store); final IndexStatusListener l1 = new IndexStatusListener() { @Override protected void preClose() { executed.set(true); assertRunKo(new AsyncIndexUpdate(name, store, provider)); } }; assertRunOk(new SpecialAsyncIndexUpdate(name, store, provider, l1)); }
@Test public void testLeaseExpiredToDisabled() throws Exception { // take care of initial reindex before new AsyncIndexUpdate(name, store, provider).run(); // add extra indexed content testContent(store); // make it look like lease got stuck due to force shutdown NodeBuilder builder = store.getRoot().builder(); builder.getChildNode(AsyncIndexUpdate.ASYNC).setProperty( AsyncIndexUpdate.leasify(name), System.currentTimeMillis() + 500000); store.merge(builder, EmptyHook.INSTANCE, CommitInfo.EMPTY); final IndexStatusListener l1 = new IndexStatusListener() { @Override protected void postIndexUpdate() { executed.set(true); } }; assertRunOk(new SpecialAsyncIndexUpdate(name, store, provider, l1) .setLeaseTimeOut(0)); assertFalse("Stale lease info must be cleaned", store.getRoot().getChildNode(AsyncIndexUpdate.ASYNC) .hasProperty(AsyncIndexUpdate.leasify(name))); }