@Override protected void checkRepository(IndexRepositoryImpl repo0, int... bucketId) { IndexWriter writer0 = repo0.getWriter(); Directory dir0 = writer0.getDirectory(); assertTrue(dir0 instanceof NIOFSDirectory); }
protected void checkRepository(IndexRepositoryImpl repo0, int... bucketIds) { IndexWriter writer0 = repo0.getWriter(); RegionDirectory dir0 = (RegionDirectory) writer0.getDirectory(); boolean result = false; for (int bucketId : bucketIds) { BucketTargetingMap bucketTargetingMap = new BucketTargetingMap(fileAndChunkBuckets.get(bucketId), bucketId); result |= bucketTargetingMap.equals(dir0.getFileSystem().getFileAndChunkRegion()); } assertTrue(result); assertEquals(serializer, repo0.getSerializer()); }
/** * Test what happens when a bucket is destroyed. */ @Test public void destroyBucketShouldCreateNewIndexRepository() throws BucketNotFoundException, IOException { setUpMockBucket(0); IndexRepositoryImpl repo0 = (IndexRepositoryImpl) repoManager.getRepository(userRegion, 0, null); assertNotNull(repo0); checkRepository(repo0, 0); BucketRegion fileBucket0 = fileAndChunkBuckets.get(0); BucketRegion dataBucket0 = dataBuckets.get(0); // Simulate rebalancing of a bucket by marking the old bucket is destroyed // and creating a new bucket when(dataBucket0.isDestroyed()).thenReturn(true); setUpMockBucket(0); IndexRepositoryImpl newRepo0 = (IndexRepositoryImpl) repoManager.getRepository(userRegion, 0, null); assertNotEquals(repo0, newRepo0); checkRepository(newRepo0, 0); assertTrue(repo0.isClosed()); assertFalse(repo0.getWriter().isOpen()); }