private void verifyMetadata(Node node) { if (node.getMetadataId().isPresent()) { ObjectId mdId = node.getMetadataId().get(); String msg = "RevFeatureType " + mdId + " is not present (from " + node.getName() + ")"; assertTrue(msg, objectDb.exists(mdId)); } }
private void verifyMetadata(Node node) { if (node.getMetadataId().isPresent()) { ObjectId mdId = node.getMetadataId().get(); String msg = "RevFeatureType " + mdId + " is not present (from " + node.getName() + ")"; assertTrue(msg, objectDb.exists(mdId)); } }
private void verifyFeature(Node node) { ObjectId objectId = node.getObjectId(); assertTrue("feature " + node.getName() + " -> " + objectId + " is not present in objectDb", objectDb.exists(objectId)); }
private void verifyFeature(Node node) { ObjectId objectId = node.getObjectId(); assertTrue("feature " + node.getName() + " -> " + objectId + " is not present in objectDb", objectDb.exists(objectId)); }
@Test public void testRenameNested() { leftTree = createHeadTree(// repoTree("roads", EMPTY_ID, null, 0), // repoTree("roads/highways", "a2", "d1", 2), // repoTree("roads/streets", "a3", "d2", 2) // ); rightTree = createStageHeadTree(// indexTree("roads", EMPTY_ID, null, 0), // indexTree("roads/highways", "a2", "d1", 2), // indexTree("roads/streetsRenamed", "a3", "d2", 2) // ); ObjectId newRepoRoot = command.call(); assertNotNull(newRepoRoot); // check all blobs have been moved from the index to the object database verifyRepositoryTree(NodeRef.ROOT, newRepoRoot); ImmutableMap<String, NodeRef> refsByPath = getTreeRefsByPath(newRepoRoot); assertEquals(3, refsByPath.size()); assertTrue(refsByPath.containsKey("roads")); assertTrue(refsByPath.containsKey("roads/highways")); assertTrue(refsByPath.containsKey("roads/streetsRenamed")); }
@Test public void testRenameNested() { leftTree = createHeadTree(// repoTree("roads", EMPTY_ID, null, 0), // repoTree("roads/highways", "a2", "d1", 2), // repoTree("roads/streets", "a3", "d2", 2) // ); rightTree = createStageHeadTree(// indexTree("roads", EMPTY_ID, null, 0), // indexTree("roads/highways", "a2", "d1", 2), // indexTree("roads/streetsRenamed", "a3", "d2", 2) // ); ObjectId newRepoRoot = command.call(); assertNotNull(newRepoRoot); // check all blobs have been moved from the index to the object database verifyRepositoryTree(NodeRef.ROOT, newRepoRoot); ImmutableMap<String, NodeRef> refsByPath = getTreeRefsByPath(newRepoRoot); assertEquals(3, refsByPath.size()); assertTrue(refsByPath.containsKey("roads")); assertTrue(refsByPath.containsKey("roads/highways")); assertTrue(refsByPath.containsKey("roads/streetsRenamed")); }
@Test public void testEmptyRepoSingleStagedTree() { rightTree = createStageHeadTree(// indexTree("roads", "a1", "d1", 10)// ); ObjectId newRepoRoot = command.call(); assertNotNull(newRepoRoot); // print(newRepoRoot); // check all blobs have been moved from the index to the object database verifyRepositoryTree(NodeRef.ROOT, newRepoRoot); ImmutableMap<String, NodeRef> refsByPath = getTreeRefsByPath(newRepoRoot); assertEquals(1, refsByPath.size()); assertTrue(refsByPath.keySet().contains("roads")); }
@Test public void testEmptyRepoSingleStagedTree() { rightTree = createStageHeadTree(// indexTree("roads", "a1", "d1", 10)// ); ObjectId newRepoRoot = command.call(); assertNotNull(newRepoRoot); // print(newRepoRoot); // check all blobs have been moved from the index to the object database verifyRepositoryTree(NodeRef.ROOT, newRepoRoot); ImmutableMap<String, NodeRef> refsByPath = getTreeRefsByPath(newRepoRoot); assertEquals(1, refsByPath.size()); assertTrue(refsByPath.keySet().contains("roads")); }
@Test public void testRename() { leftTree = createHeadTree(// repoTree("roads", EMPTY_ID, null, 0) // ); rightTree = createStageHeadTree(// indexTree("roadsRenamed", EMPTY_ID, null, 0) // ); ObjectId newRepoRoot = command.call(); assertNotNull(newRepoRoot); // check all blobs have been moved from the index to the object database verifyRepositoryTree(NodeRef.ROOT, newRepoRoot); ImmutableMap<String, NodeRef> refsByPath = getTreeRefsByPath(newRepoRoot); assertEquals(1, refsByPath.size()); assertTrue(refsByPath.containsKey("roadsRenamed")); }
@Test public void testRename() { leftTree = createHeadTree(// repoTree("roads", EMPTY_ID, null, 0) // ); rightTree = createStageHeadTree(// indexTree("roadsRenamed", EMPTY_ID, null, 0) // ); ObjectId newRepoRoot = command.call(); assertNotNull(newRepoRoot); // check all blobs have been moved from the index to the object database verifyRepositoryTree(NodeRef.ROOT, newRepoRoot); ImmutableMap<String, NodeRef> refsByPath = getTreeRefsByPath(newRepoRoot); assertEquals(1, refsByPath.size()); assertTrue(refsByPath.containsKey("roadsRenamed")); }
private void verifyTree(ObjectStore objectDb, String path, ObjectId repoTreeId) { assertTrue(String.format("tree '%s' (%s) is not present", path, repoTreeId), objectDb.exists(repoTreeId)); RevTree tree = objectDb.getTree(repoTreeId); Iterator<Node> children = RevObjects.children(tree, CanonicalNodeOrder.INSTANCE); while (children.hasNext()) { final Node node = children.next(); if (TYPE.TREE.equals(node.getType())) { path = NodeRef.appendChild(path, node.getName()); ObjectId objectId = node.getObjectId(); verifyRepositoryTree(path, objectId); } else if (TYPE.FEATURE.equals(node.getType())) { verifyFeature(node); } else { throw new IllegalStateException(node.getType().toString()); } verifyMetadata(node); } if (tree.bucketsSize() > 0) { for (Bucket b : tree.getBuckets()) { ObjectId bucketTreeId = b.getObjectId(); verifyRepositoryTree(path + "/" + bucketTreeId.toString().substring(0, 8), bucketTreeId); } } }
private void verifyTree(ObjectStore objectDb, String path, ObjectId repoTreeId) { assertTrue(String.format("tree '%s' (%s) is not present", path, repoTreeId), objectDb.exists(repoTreeId)); RevTree tree = objectDb.getTree(repoTreeId); Iterator<Node> children = RevObjects.children(tree, CanonicalNodeOrder.INSTANCE); while (children.hasNext()) { final Node node = children.next(); if (TYPE.TREE.equals(node.getType())) { path = NodeRef.appendChild(path, node.getName()); ObjectId objectId = node.getObjectId(); verifyRepositoryTree(path, objectId); } else if (TYPE.FEATURE.equals(node.getType())) { verifyFeature(node); } else { throw new IllegalStateException(node.getType().toString()); } verifyMetadata(node); } if (!tree.buckets().isEmpty()) { ImmutableCollection<Bucket> buckets = tree.buckets().values(); for (Bucket b : buckets) { ObjectId bucketTreeId = b.getObjectId(); verifyRepositoryTree(path + "/" + bucketTreeId.toString().substring(0, 8), bucketTreeId); } } }