private void assertRunKo(AsyncIndexUpdate a) { assertRun(a, true); assertConcurrentUpdate(a.getIndexStats()); }
@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 testPreIndexUpdateLeaseExpired() throws Exception { // take care of initial reindex before new AsyncIndexUpdate(name, store, provider).run(); // add extra indexed content testContent(store); final long lease = 50; final IndexStatusListener l1 = new IndexStatusListener() { @Override protected void preIndexUpdate() { executed.set(true); try { TimeUnit.MILLISECONDS.sleep(lease * 3); } catch (InterruptedException e) { // } assertRunOk(new AsyncIndexUpdate(name, store, provider)); } }; assertRunKo(new SpecialAsyncIndexUpdate(name, store, provider, l1) .setLeaseTimeOut(lease)); }
@Test public void testPostIndexUpdateReindexLeaseExpired() throws Exception { final long lease = 50; final IndexStatusListener l1 = new IndexStatusListener() { @Override protected void postIndexUpdate() { executed.set(true); try { TimeUnit.MILLISECONDS.sleep(lease * 3); } catch (InterruptedException e) { // } assertRunOk(new AsyncIndexUpdate(name, store, provider)); } }; assertRunKo(new SpecialAsyncIndexUpdate(name, store, provider, l1) .setLeaseTimeOut(lease)); }
@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)); }
private void assertRunOk(AsyncIndexUpdate a) { assertRun(a, false); }
@After public void cleanup() throws Exception { assertTrue("Test method was not executed", executed.get()); String referenced = getReferenceCp(store, name); assertNotNull("Reference checkpoint doesn't exist", referenced); assertNotNull( "Failed indexer must not clean successful indexer's checkpoint", store.retrieve(referenced)); }
@Test public void testPostIndexUpdateLeaseExpired() throws Exception { // take care of initial reindex before new AsyncIndexUpdate(name, store, provider).run(); // add extra indexed content testContent(store); final long lease = 50; final IndexStatusListener l1 = new IndexStatusListener() { @Override protected void postIndexUpdate() { executed.set(true); try { TimeUnit.MILLISECONDS.sleep(lease * 3); } catch (InterruptedException e) { // } assertRunOk(new AsyncIndexUpdate(name, store, provider)); } }; assertRunKo(new SpecialAsyncIndexUpdate(name, store, provider, l1) .setLeaseTimeOut(lease)); }
@Test public void testPreIndexUpdateReindexLeaseExpired() throws Exception { final long lease = 50; final IndexStatusListener l1 = new IndexStatusListener() { @Override protected void preIndexUpdate() { executed.set(true); try { TimeUnit.MILLISECONDS.sleep(lease * 3); } catch (InterruptedException e) { // } assertRunOk(new AsyncIndexUpdate(name, store, provider)); } }; assertRunKo(new SpecialAsyncIndexUpdate(name, store, provider, l1) .setLeaseTimeOut(lease)); }
@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 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 testPostPrepareReindexLeaseExpired() throws Exception { final long lease = 50; final IndexStatusListener l1 = new IndexStatusListener() { @Override protected void postPrepare() { executed.set(true); try { TimeUnit.MILLISECONDS.sleep(lease * 3); } catch (InterruptedException e) { // } assertRunOk(new AsyncIndexUpdate(name, store, provider)); } }; assertRunKo(new SpecialAsyncIndexUpdate(name, store, provider, l1) .setLeaseTimeOut(lease)); }
@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 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)); }
@Test public void testPrePrepare() throws Exception { // take care of initial reindex before new AsyncIndexUpdate(name, store, provider).run(); final IndexStatusListener l1 = new IndexStatusListener() { @Override protected void prePrepare() { executed.set(true); assertRunOk(new AsyncIndexUpdate(name, store, provider)); } }; assertRunKo(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 testPostPrepareLeaseExpired() throws Exception { // take care of initial reindex before new AsyncIndexUpdate(name, store, provider).run(); final long lease = 50; final IndexStatusListener l1 = new IndexStatusListener() { @Override protected void postPrepare() { executed.set(true); try { TimeUnit.MILLISECONDS.sleep(lease * 3); } catch (InterruptedException e) { // } assertRunOk(new AsyncIndexUpdate(name, store, provider)); } }; assertRunKo(new SpecialAsyncIndexUpdate(name, store, provider, l1) .setLeaseTimeOut(lease)); }
@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)); }
testContent(store, AsyncUpdateCallback.LEASE_CHECK_INTERVAL / 2); Set<Long> leaseTimes = Sets.newHashSet(); final Clock.Virtual clock = new Clock.Virtual(); assertRunOk(new SpecialAsyncIndexUpdate(name, store, provider, l1, clock) .setLeaseTimeOut(lease)); testContent(store, AsyncUpdateCallback.LEASE_CHECK_INTERVAL * 2); assertRunOk(new SpecialAsyncIndexUpdate(name, store, provider, l1, clock) .setLeaseTimeOut(lease)); assertTrue(leaseTimes.size() > 1);