public IndexInfo(String treeName, String attributeName, IndexType indexType, @Nullable Map<String, Object> metadata) { this.indexId = getIndexId(treeName, attributeName); this.treeName = treeName; this.attributeName = attributeName; this.indexType = indexType; this.metadata = metadata == null ? ImmutableMap.of() : ImmutableMap.copyOf(metadata); }
public IndexInfo(String treeName, String attributeName, IndexType indexType, @Nullable Map<String, Object> metadata) { this.indexId = getIndexId(treeName, attributeName); this.treeName = treeName; this.attributeName = attributeName; this.indexType = indexType; this.metadata = metadata == null ? ImmutableMap.of() : ImmutableMap.copyOf(metadata); }
@Test public void testCreateIndex() { Map<String, Object> metadata = new HashMap<String, Object>(); metadata.put("meta1", 5L); metadata.put("meta2", "someValue"); String treeName = "tree"; String attributeName = "attribute"; IndexInfo index = indexDb.createIndexInfo(treeName, attributeName, IndexType.QUADTREE, metadata); assertEquals(treeName, index.getTreeName()); assertEquals(attributeName, index.getAttributeName()); assertEquals(IndexType.QUADTREE, index.getIndexType()); assertEquals(metadata, index.getMetadata()); assertEquals(IndexInfo.getIndexId(treeName, attributeName), index.getId()); }
@Test public void testGetIndex() { Map<String, Object> metadata = new HashMap<String, Object>(); metadata.put("meta1", 5L); metadata.put("meta2", "someValue"); String treeName = "tree"; String attributeName = "attribute"; indexDb.createIndexInfo(treeName, attributeName, IndexType.QUADTREE, metadata); indexDb.createIndexInfo("otherTree", "someAttribute", IndexType.QUADTREE, null); Optional<IndexInfo> indexOpt = indexDb.getIndexInfo(treeName, attributeName); assertTrue(indexOpt.isPresent()); IndexInfo index = indexOpt.get(); assertEquals(treeName, index.getTreeName()); assertEquals(attributeName, index.getAttributeName()); assertEquals(IndexType.QUADTREE, index.getIndexType()); assertEquals(metadata, index.getMetadata()); assertEquals(IndexInfo.getIndexId(treeName, attributeName), index.getId()); }
@Test public void testCreateIndex() { Map<String, Object> metadata = new HashMap<String, Object>(); metadata.put("meta1", 5L); metadata.put("meta2", "someValue"); String treeName = "tree"; String attributeName = "attribute"; IndexInfo index = indexDb.createIndexInfo(treeName, attributeName, IndexType.QUADTREE, metadata); assertEquals(treeName, index.getTreeName()); assertEquals(attributeName, index.getAttributeName()); assertEquals(IndexType.QUADTREE, index.getIndexType()); assertEquals(metadata, index.getMetadata()); assertEquals(IndexInfo.getIndexId(treeName, attributeName), index.getId()); }
@Test public void testGetIndex() { Map<String, Object> metadata = new HashMap<String, Object>(); metadata.put("meta1", 5L); metadata.put("meta2", "someValue"); String treeName = "tree"; String attributeName = "attribute"; indexDb.createIndexInfo(treeName, attributeName, IndexType.QUADTREE, metadata); indexDb.createIndexInfo("otherTree", "someAttribute", IndexType.QUADTREE, null); Optional<IndexInfo> indexOpt = indexDb.getIndexInfo(treeName, attributeName); assertTrue(indexOpt.isPresent()); IndexInfo index = indexOpt.get(); assertEquals(treeName, index.getTreeName()); assertEquals(attributeName, index.getAttributeName()); assertEquals(IndexType.QUADTREE, index.getIndexType()); assertEquals(metadata, index.getMetadata()); assertEquals(IndexInfo.getIndexId(treeName, attributeName), index.getId()); }
@Test public void testNullMetadata() { String treeName = "tree"; String attributeName = "attribute"; IndexInfo index = indexDb.createIndexInfo(treeName, attributeName, IndexType.QUADTREE, null); assertEquals(treeName, index.getTreeName()); assertEquals(attributeName, index.getAttributeName()); assertEquals(IndexType.QUADTREE, index.getIndexType()); assertTrue(index.getMetadata().isEmpty()); assertEquals(IndexInfo.getIndexId(treeName, attributeName), index.getId()); Optional<IndexInfo> indexOpt = indexDb.getIndexInfo(treeName, attributeName); assertTrue(indexOpt.isPresent()); index = indexOpt.get(); assertEquals(treeName, index.getTreeName()); assertEquals(attributeName, index.getAttributeName()); assertEquals(IndexType.QUADTREE, index.getIndexType()); assertTrue(index.getMetadata().isEmpty()); assertEquals(IndexInfo.getIndexId(treeName, attributeName), index.getId()); }
@Test public void testNullMetadata() { String treeName = "tree"; String attributeName = "attribute"; IndexInfo index = indexDb.createIndexInfo(treeName, attributeName, IndexType.QUADTREE, null); assertEquals(treeName, index.getTreeName()); assertEquals(attributeName, index.getAttributeName()); assertEquals(IndexType.QUADTREE, index.getIndexType()); assertTrue(index.getMetadata().isEmpty()); assertEquals(IndexInfo.getIndexId(treeName, attributeName), index.getId()); Optional<IndexInfo> indexOpt = indexDb.getIndexInfo(treeName, attributeName); assertTrue(indexOpt.isPresent()); index = indexOpt.get(); assertEquals(treeName, index.getTreeName()); assertEquals(attributeName, index.getAttributeName()); assertEquals(IndexType.QUADTREE, index.getIndexType()); assertTrue(index.getMetadata().isEmpty()); assertEquals(IndexInfo.getIndexId(treeName, attributeName), index.getId()); }
@Test public void testUpdateIndexRemoveMetadata() { Map<String, Object> metadata = new HashMap<String, Object>(); metadata.put("meta1", 5L); metadata.put("meta2", "someValue"); String treeName = "tree"; String attributeName = "attribute"; IndexInfo index = indexDb.createIndexInfo(treeName, attributeName, IndexType.QUADTREE, metadata); assertEquals(treeName, index.getTreeName()); assertEquals(attributeName, index.getAttributeName()); assertEquals(IndexType.QUADTREE, index.getIndexType()); assertEquals(metadata, index.getMetadata()); assertEquals(IndexInfo.getIndexId(treeName, attributeName), index.getId()); index = indexDb.updateIndexInfo(treeName, attributeName, IndexType.QUADTREE, null); assertEquals(treeName, index.getTreeName()); assertEquals(attributeName, index.getAttributeName()); assertEquals(IndexType.QUADTREE, index.getIndexType()); assertEquals(ImmutableMap.of(), index.getMetadata()); assertEquals(IndexInfo.getIndexId(treeName, attributeName), index.getId()); index = indexDb.getIndexInfo(treeName, attributeName).get(); assertEquals(treeName, index.getTreeName()); assertEquals(attributeName, index.getAttributeName()); assertEquals(IndexType.QUADTREE, index.getIndexType()); assertEquals(ImmutableMap.of(), index.getMetadata()); assertEquals(IndexInfo.getIndexId(treeName, attributeName), index.getId()); }
@Test public void testUpdateIndexRemoveMetadata() { Map<String, Object> metadata = new HashMap<String, Object>(); metadata.put("meta1", 5L); metadata.put("meta2", "someValue"); String treeName = "tree"; String attributeName = "attribute"; IndexInfo index = indexDb.createIndexInfo(treeName, attributeName, IndexType.QUADTREE, metadata); assertEquals(treeName, index.getTreeName()); assertEquals(attributeName, index.getAttributeName()); assertEquals(IndexType.QUADTREE, index.getIndexType()); assertEquals(metadata, index.getMetadata()); assertEquals(IndexInfo.getIndexId(treeName, attributeName), index.getId()); index = indexDb.updateIndexInfo(treeName, attributeName, IndexType.QUADTREE, null); assertEquals(treeName, index.getTreeName()); assertEquals(attributeName, index.getAttributeName()); assertEquals(IndexType.QUADTREE, index.getIndexType()); assertEquals(ImmutableMap.of(), index.getMetadata()); assertEquals(IndexInfo.getIndexId(treeName, attributeName), index.getId()); index = indexDb.getIndexInfo(treeName, attributeName).get(); assertEquals(treeName, index.getTreeName()); assertEquals(attributeName, index.getAttributeName()); assertEquals(IndexType.QUADTREE, index.getIndexType()); assertEquals(ImmutableMap.of(), index.getMetadata()); assertEquals(IndexInfo.getIndexId(treeName, attributeName), index.getId()); }
@Test public void testUpdateIndexUpdateMetadata() { Map<String, Object> metadata = new HashMap<String, Object>(); metadata.put("meta1", 5L); metadata.put("meta2", "someValue"); String treeName = "tree"; String attributeName = "attribute"; IndexInfo index = indexDb.createIndexInfo(treeName, attributeName, IndexType.QUADTREE, metadata); assertEquals(treeName, index.getTreeName()); assertEquals(attributeName, index.getAttributeName()); assertEquals(IndexType.QUADTREE, index.getIndexType()); assertEquals(metadata, index.getMetadata()); assertEquals(IndexInfo.getIndexId(treeName, attributeName), index.getId()); metadata.put("meta1", 3L); metadata.remove("meta2"); index = indexDb.updateIndexInfo(treeName, attributeName, IndexType.QUADTREE, metadata); assertEquals(treeName, index.getTreeName()); assertEquals(attributeName, index.getAttributeName()); assertEquals(IndexType.QUADTREE, index.getIndexType()); assertEquals(metadata, index.getMetadata()); assertEquals(IndexInfo.getIndexId(treeName, attributeName), index.getId()); index = indexDb.getIndexInfo(treeName, attributeName).get(); assertEquals(treeName, index.getTreeName()); assertEquals(attributeName, index.getAttributeName()); assertEquals(IndexType.QUADTREE, index.getIndexType()); assertEquals(metadata, index.getMetadata()); assertEquals(IndexInfo.getIndexId(treeName, attributeName), index.getId()); }
@Test public void testUpdateIndexUpdateMetadata() { Map<String, Object> metadata = new HashMap<String, Object>(); metadata.put("meta1", 5L); metadata.put("meta2", "someValue"); String treeName = "tree"; String attributeName = "attribute"; IndexInfo index = indexDb.createIndexInfo(treeName, attributeName, IndexType.QUADTREE, metadata); assertEquals(treeName, index.getTreeName()); assertEquals(attributeName, index.getAttributeName()); assertEquals(IndexType.QUADTREE, index.getIndexType()); assertEquals(metadata, index.getMetadata()); assertEquals(IndexInfo.getIndexId(treeName, attributeName), index.getId()); metadata.put("meta1", 3L); metadata.remove("meta2"); index = indexDb.updateIndexInfo(treeName, attributeName, IndexType.QUADTREE, metadata); assertEquals(treeName, index.getTreeName()); assertEquals(attributeName, index.getAttributeName()); assertEquals(IndexType.QUADTREE, index.getIndexType()); assertEquals(metadata, index.getMetadata()); assertEquals(IndexInfo.getIndexId(treeName, attributeName), index.getId()); index = indexDb.getIndexInfo(treeName, attributeName).get(); assertEquals(treeName, index.getTreeName()); assertEquals(attributeName, index.getAttributeName()); assertEquals(IndexType.QUADTREE, index.getIndexType()); assertEquals(metadata, index.getMetadata()); assertEquals(IndexInfo.getIndexId(treeName, attributeName), index.getId()); }
@Test public void testUpdateIndexAddMetadata() { String treeName = "tree"; String attributeName = "attribute"; IndexInfo index = indexDb.createIndexInfo(treeName, attributeName, IndexType.QUADTREE, null); assertEquals(treeName, index.getTreeName()); assertEquals(attributeName, index.getAttributeName()); assertEquals(IndexType.QUADTREE, index.getIndexType()); assertEquals(ImmutableMap.of(), index.getMetadata()); assertEquals(IndexInfo.getIndexId(treeName, attributeName), index.getId()); Map<String, Object> metadata = new HashMap<String, Object>(); metadata.put("meta1", 5L); metadata.put("meta2", "someValue"); index = indexDb.updateIndexInfo(treeName, attributeName, IndexType.QUADTREE, metadata); assertEquals(treeName, index.getTreeName()); assertEquals(attributeName, index.getAttributeName()); assertEquals(IndexType.QUADTREE, index.getIndexType()); assertEquals(metadata, index.getMetadata()); assertEquals(IndexInfo.getIndexId(treeName, attributeName), index.getId()); index = indexDb.getIndexInfo(treeName, attributeName).get(); assertEquals(treeName, index.getTreeName()); assertEquals(attributeName, index.getAttributeName()); assertEquals(IndexType.QUADTREE, index.getIndexType()); assertEquals(metadata, index.getMetadata()); assertEquals(IndexInfo.getIndexId(treeName, attributeName), index.getId()); }
@Test public void testUpdateIndexAddMetadata() { String treeName = "tree"; String attributeName = "attribute"; IndexInfo index = indexDb.createIndexInfo(treeName, attributeName, IndexType.QUADTREE, null); assertEquals(treeName, index.getTreeName()); assertEquals(attributeName, index.getAttributeName()); assertEquals(IndexType.QUADTREE, index.getIndexType()); assertEquals(ImmutableMap.of(), index.getMetadata()); assertEquals(IndexInfo.getIndexId(treeName, attributeName), index.getId()); Map<String, Object> metadata = new HashMap<String, Object>(); metadata.put("meta1", 5L); metadata.put("meta2", "someValue"); index = indexDb.updateIndexInfo(treeName, attributeName, IndexType.QUADTREE, metadata); assertEquals(treeName, index.getTreeName()); assertEquals(attributeName, index.getAttributeName()); assertEquals(IndexType.QUADTREE, index.getIndexType()); assertEquals(metadata, index.getMetadata()); assertEquals(IndexInfo.getIndexId(treeName, attributeName), index.getId()); index = indexDb.getIndexInfo(treeName, attributeName).get(); assertEquals(treeName, index.getTreeName()); assertEquals(attributeName, index.getAttributeName()); assertEquals(IndexType.QUADTREE, index.getIndexType()); assertEquals(metadata, index.getMetadata()); assertEquals(IndexInfo.getIndexId(treeName, attributeName), index.getId()); }