private void verifyTreeStructure(ObjectId treeId, NodeRef... treeRefs) { Set<String> expectedPaths = ImmutableSet .copyOf(Iterables.transform(Arrays.asList(treeRefs), (nr) -> nr.path())); ImmutableMap<String, NodeRef> refs = getTreeRefsByPath(treeId); assertEquals(expectedPaths, refs.keySet()); }
private void verifyTreeStructure(ObjectId treeId, NodeRef... treeRefs) { Set<String> expectedPaths = ImmutableSet .copyOf(Iterables.transform(Arrays.asList(treeRefs), (nr) -> nr.path())); ImmutableMap<String, NodeRef> refs = getTreeRefsByPath(treeId); assertEquals(expectedPaths, refs.keySet()); }
@Test public void testEmptyRepo() { ObjectId root = command.call(); assertNotNull(root); assertEquals(RevTree.EMPTY_TREE_ID, root); }
@Test public void testEmptyRepo() { ObjectId root = command.call(); assertNotNull(root); assertEquals(RevTree.EMPTY_TREE_ID, root); }
@Test public void testPathFilteringDeletedTreeButCommitSingleChange() { leftTree = createHeadTree(// repoTree("roads", "a1", null, 1), // repoTree("highways", "a2", "d1", 2)// ); rightTree = createStageHeadTree(// repoTree("roads", "a1", null, 1) // deleted highways ); MapDifference<String, NodeRef> difference; Set<String> onlyOnNewTree; Set<String> onlyStaged; difference = runWithPathFilter(leftTree, rightTree, "highways/highways.1"); onlyOnNewTree = difference.entriesOnlyOnLeft().keySet(); onlyStaged = difference.entriesOnlyOnRight().keySet(); Set<String> differing = difference.entriesDiffering().keySet(); Set<String> inCommon = difference.entriesInCommon().keySet(); assertEquals(set("roads", "roads/roads.0"), inCommon); assertEquals(set("highways", "highways/highways.0"), onlyOnNewTree); assertEquals(set(), differing); assertEquals(set(), onlyStaged); }
@Test public void testPathFilteringDeletedTreeButCommitSingleChange() { leftTree = createHeadTree(// repoTree("roads", "a1", null, 1), // repoTree("highways", "a2", "d1", 2)// ); rightTree = createStageHeadTree(// repoTree("roads", "a1", null, 1) // deleted highways ); MapDifference<String, NodeRef> difference; Set<String> onlyOnNewTree; Set<String> onlyStaged; difference = runWithPathFilter(leftTree, rightTree, "highways/highways.1"); onlyOnNewTree = difference.entriesOnlyOnLeft().keySet(); onlyStaged = difference.entriesOnlyOnRight().keySet(); Set<String> differing = difference.entriesDiffering().keySet(); Set<String> inCommon = difference.entriesInCommon().keySet(); assertEquals(set("roads", "roads/roads.0"), inCommon); assertEquals(set("highways", "highways/highways.0"), onlyOnNewTree); assertEquals(set(), differing); assertEquals(set(), onlyStaged); }
@Test public void testPathFilteringSingleFeature() { leftTree = createHeadTree(// repoTree("roads", "a1", null, 2), // repoTree("roads/highways", "a2", "d1", 1)// ); rightTree = createStageHeadTree(// repoTree("roads", "a11", null, 1), // deleted 1 feature repoTree("roads/highways", "a21", "d1", 3)// added 2 features ); MapDifference<String, NodeRef> difference; Set<String> onlyOnLeft; Set<String> onlyOnRight; difference = runWithPathFilter(leftTree, rightTree, "roads/roads.1"); onlyOnLeft = difference.entriesOnlyOnLeft().keySet(); onlyOnRight = difference.entriesOnlyOnRight().keySet(); assertEquals(set(), onlyOnLeft); assertEquals(set("roads/highways/highways.1", "roads/highways/highways.2"), onlyOnRight); assertEquals(set("roads/highways/highways.0", "roads/roads.0"), difference.entriesInCommon().keySet()); }
@Test public void testPathFilteringSingleFeature() { leftTree = createHeadTree(// repoTree("roads", "a1", null, 2), // repoTree("roads/highways", "a2", "d1", 1)// ); rightTree = createStageHeadTree(// repoTree("roads", "a11", null, 1), // deleted 1 feature repoTree("roads/highways", "a21", "d1", 3)// added 2 features ); MapDifference<String, NodeRef> difference; Set<String> onlyOnLeft; Set<String> onlyOnRight; difference = runWithPathFilter(leftTree, rightTree, "roads/roads.1"); onlyOnLeft = difference.entriesOnlyOnLeft().keySet(); onlyOnRight = difference.entriesOnlyOnRight().keySet(); assertEquals(set(), onlyOnLeft); assertEquals(set("roads/highways/highways.1", "roads/highways/highways.2"), onlyOnRight); assertEquals(set("roads/highways/highways.0", "roads/roads.0"), difference.entriesInCommon().keySet()); }
@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 testMetadataIdChangeOnly() { leftTree = createHeadTree(// repoTree("buildings", EMPTY_ID, null, 0), // repoTree("buildings/stores", "a5", "d3", 5)// old md id is d3 ); rightTree = createStageHeadTree(// indexTree("buildings", EMPTY_ID, null, 0), // indexTree("buildings/stores", "a5", "d31", 5)// new md id is d31 ); 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(set("buildings", "buildings/stores"), refsByPath.keySet()); assertEquals(id("d31"), refsByPath.get("buildings/stores").getMetadataId()); }
@Test public void testMetadataIdChangeOnly() { leftTree = createHeadTree(// repoTree("buildings", EMPTY_ID, null, 0), // repoTree("buildings/stores", "a5", "d3", 5)// old md id is d3 ); rightTree = createStageHeadTree(// indexTree("buildings", EMPTY_ID, null, 0), // indexTree("buildings/stores", "a5", "d31", 5)// new md id is d31 ); 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(set("buildings", "buildings/stores"), refsByPath.keySet()); assertEquals(id("d31"), refsByPath.get("buildings/stores").getMetadataId()); }
@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")); }
@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 testSimpleChanges() { leftTree = createHeadTree(// repoTree("roads", "a1", "d1", 1), // repoTree("buildings", EMPTY_ID, null, 0)// ); rightTree = createStageHeadTree(// repoTree("roads", "a11", "d1", 2), // repoTree("buildings", "a41", null, 1)// ); // print(leftTree.getId()); // print(rightTree.getId()); final 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 = getRefsByPath(newRepoRoot, true); Set<String> expected = set("roads", "roads/roads.0", "roads/roads.1", "buildings", "buildings/buildings.0"); ImmutableSet<String> actual = refsByPath.keySet(); assertEquals(expected, actual); }
@Test public void testDeleteAll() { leftTree = createHeadTree(// repoTree("roads", EMPTY_ID, null, 0), // repoTree("roads/highways", "a2", "d1", 10), // repoTree("roads/streets", "a3", "d2", 10), // repoTree("buildings", EMPTY_ID, null, 0), // repoTree("buildings/stores", "a5", "d3", 5), // repoTree("buildings/unknown", "a6", "d4", 5), // repoTree("buildings/towers", "a7", "d5", 5)// ); rightTree = createStageHeadTree(); final ObjectId newRepoRoot = command.call(); assertNotNull(newRepoRoot); ImmutableMap<String, NodeRef> refsByPath = getTreeRefsByPath(newRepoRoot); assertEquals(set(), refsByPath.keySet()); }
@Test public void testSimpleChanges() { leftTree = createHeadTree(// repoTree("roads", "a1", "d1", 1), // repoTree("buildings", EMPTY_ID, null, 0)// ); rightTree = createStageHeadTree(// repoTree("roads", "a11", "d1", 2), // repoTree("buildings", "a41", null, 1)// ); // print(leftTree.getId()); // print(rightTree.getId()); final 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 = getRefsByPath(newRepoRoot, true); Set<String> expected = set("roads", "roads/roads.0", "roads/roads.1", "buildings", "buildings/buildings.0"); ImmutableSet<String> actual = refsByPath.keySet(); assertEquals(expected, actual); }
@Test public void testDeleteAll() { leftTree = createHeadTree(// repoTree("roads", EMPTY_ID, null, 0), // repoTree("roads/highways", "a2", "d1", 10), // repoTree("roads/streets", "a3", "d2", 10), // repoTree("buildings", EMPTY_ID, null, 0), // repoTree("buildings/stores", "a5", "d3", 5), // repoTree("buildings/unknown", "a6", "d4", 5), // repoTree("buildings/towers", "a7", "d5", 5)// ); rightTree = createStageHeadTree(); final ObjectId newRepoRoot = command.call(); assertNotNull(newRepoRoot); ImmutableMap<String, NodeRef> refsByPath = getTreeRefsByPath(newRepoRoot); assertEquals(set(), refsByPath.keySet()); }