use of com.enonic.xp.node.NodeId in project xp by enonic.
the class DumpServiceImplTest method loadWithUpgrade.
@Test
public void loadWithUpgrade() throws Exception {
final String dumpName = "testDump";
createIncompatibleDump(dumpName);
NodeHelper.runAsAdmin(() -> {
this.dumpService.load(SystemLoadParams.create().dumpName(dumpName).upgrade(true).includeVersions(true).build());
FileDumpReader reader = FileDumpReader.create(null, temporaryFolder, dumpName);
final DumpMeta updatedMeta = reader.getDumpMeta();
assertEquals(DumpConstants.MODEL_VERSION, updatedMeta.getModelVersion());
final NodeId nodeId = NodeId.from("f0fb822c-092d-41f9-a961-f3811d81e55a");
final NodeId fragmentNodeId = NodeId.from("7ee16649-85c6-4a76-8788-74be03be6c7a");
final NodeId postNodeId = NodeId.from("1f798176-5868-411b-8093-242820c20620");
final NodePath nodePath = NodePath.create("/content/mysite").build();
final NodeVersionId draftNodeVersionId = NodeVersionId.from("f3765655d5f0c7c723887071b517808dae00556c");
final NodeVersionId masterNodeVersionId = NodeVersionId.from("02e61f29a57309834d96bbf7838207ac456bbf5c");
ContextBuilder.from(ContextAccessor.current()).repositoryId("com.enonic.cms.default").build().runWith(() -> {
final Node draftNode = nodeService.getById(nodeId);
assertNotNull(draftNode);
assertEquals(draftNodeVersionId, draftNode.getNodeVersionId());
assertEquals(nodePath, draftNode.path());
assertEquals("2019-02-20T14:44:06.883Z", draftNode.getTimestamp().toString());
final Node masterNode = ContextBuilder.from(ContextAccessor.current()).branch(Branch.from("master")).build().callWith(() -> nodeService.getById(nodeId));
assertNotNull(masterNode);
assertEquals(masterNodeVersionId, masterNode.getNodeVersionId());
assertEquals(nodePath, masterNode.path());
assertEquals("2018-11-23T11:14:21.662Z", masterNode.getTimestamp().toString());
checkCommitUpgrade(nodeId);
checkPageFlatteningUpgradePage(draftNode);
final Node fragmentNode = nodeService.getById(fragmentNodeId);
checkPageFlatteningUpgradeFragment(fragmentNode);
checkRepositoryUpgrade(updatedMeta);
final Node postNode = nodeService.getById(postNodeId);
checkHtmlAreaUpgrade(draftNode, postNode);
checkLanguageUpgrade(draftNode);
});
});
}
use of com.enonic.xp.node.NodeId in project xp by enonic.
the class DuplicateNodeCommandTest method assertOrder.
private void assertOrder(final Node parentNode, final String first, final String second, final String third) {
final FindNodesByParentResult children = findChildren(parentNode);
final Iterator<NodeId> iterator = children.getNodeIds().iterator();
assertEquals(first, getNode(iterator.next()).name().toString());
assertEquals(second, getNode(iterator.next()).name().toString());
assertEquals(third, getNode(iterator.next()).name().toString());
}
use of com.enonic.xp.node.NodeId in project xp by enonic.
the class FindNodesDependenciesCommandTest method several_layers_of_dependencies_stopped_by_status.
@Test
public void several_layers_of_dependencies_stopped_by_status() throws Exception {
final Node node1 = createNodeWithReference("n1", NodePath.ROOT, "n1_1");
final Node node1_1 = createNodeWithReference("n1_1", node1.path(), "n1_1_1");
createNodeWithReference("n1_1_1", node1_1.path());
final NodeIds dependants = FindNodesDependenciesCommand.create().recursive(true).nodeIds(NodeIds.from(node1.id())).indexServiceInternal(this.indexServiceInternal).searchService(this.searchService).storageService(this.storageService).recursionFilter(nodeIds -> {
final NodeIds.Builder filteredNodeIds = NodeIds.create();
final NodeComparisons currentLevelNodeComparisons = CompareNodesCommand.create().nodeIds(nodeIds).storageService(this.storageService).target(ContextAccessor.current().getBranch()).build().execute();
nodeIds.stream().filter(nodeId -> !CompareStatus.EQUAL.equals(currentLevelNodeComparisons.get(nodeId).getCompareStatus())).forEach(filteredNodeIds::add);
return filteredNodeIds.build();
}).build().execute();
assertEquals(1, dependants.getSize(), "Should contain 'node1_1', contains " + dependants.getAsStrings());
}
use of com.enonic.xp.node.NodeId in project xp by enonic.
the class NodeServiceImplTest method test_commit.
@Test
public void test_commit() {
// Create and update node
final Node createdNode = createNode(CreateNodeParams.create().name("my-node").parent(NodePath.ROOT).build());
final NodeId nodeId = createdNode.id();
final UpdateNodeParams updateNodeParams = UpdateNodeParams.create().id(nodeId).editor(toBeEdited -> {
toBeEdited.data.addString("newField", "fisk");
}).build();
final Node updatedNode = updateNode(updateNodeParams);
nodeService.refresh(RefreshMode.STORAGE);
// Check that the two versions have no commit ID by default
final NodeVersionsMetadata versionsMetadata = getVersionsMetadata(nodeId);
assertEquals(2, versionsMetadata.size());
final Iterator<NodeVersionMetadata> versionMetadataIterator = versionsMetadata.iterator();
final NodeVersionMetadata latestVersionMetadata = versionMetadataIterator.next();
final NodeVersionMetadata firstVersionMetadata = versionMetadataIterator.next();
assertNull(latestVersionMetadata.getNodeCommitId());
assertNull(firstVersionMetadata.getNodeCommitId());
// Call commit with node ID
final NodeCommitEntry commitEntry = NodeCommitEntry.create().message("Commit message").build();
final NodeCommitEntry returnedCommitEntry = nodeService.commit(commitEntry, NodeIds.from(nodeId));
nodeService.refresh(RefreshMode.STORAGE);
// Check created commit entry
final NodeCommitId nodeCommitId = returnedCommitEntry.getNodeCommitId();
assertNotNull(nodeCommitId);
assertEquals("Commit message", returnedCommitEntry.getMessage());
assertNotNull(returnedCommitEntry.getTimestamp());
assertEquals("user:system:test-user", returnedCommitEntry.getCommitter().toString());
// Check that only the latest version has a commit ID
final NodeVersionsMetadata versionsMetadata2 = getVersionsMetadata(nodeId);
assertEquals(2, versionsMetadata2.size());
final Iterator<NodeVersionMetadata> versionMetadataIterator2 = versionsMetadata2.iterator();
final NodeVersionMetadata latestVersionMetadata2 = versionMetadataIterator2.next();
final NodeVersionMetadata firstVersionMetadata2 = versionMetadataIterator2.next();
assertEquals(nodeCommitId, latestVersionMetadata2.getNodeCommitId());
assertNull(firstVersionMetadata2.getNodeCommitId());
// Call commit with the node version ID of the first version
final NodeCommitEntry commitEntry2 = NodeCommitEntry.create().message("Commit message 2").build();
final RoutableNodeVersionId routableNodeVersionId = RoutableNodeVersionId.from(nodeId, firstVersionMetadata2.getNodeVersionId());
final NodeCommitEntry returnedCommitEntry2 = nodeService.commit(commitEntry, RoutableNodeVersionIds.from(routableNodeVersionId));
nodeService.refresh(RefreshMode.STORAGE);
// Check that only the first version has been impacted
final NodeVersionsMetadata versionsMetadata3 = getVersionsMetadata(nodeId);
assertEquals(2, versionsMetadata3.size());
final Iterator<NodeVersionMetadata> versionMetadataIterator3 = versionsMetadata3.iterator();
final NodeVersionMetadata latestVersionMetadata3 = versionMetadataIterator3.next();
final NodeVersionMetadata firstVersionMetadata3 = versionMetadataIterator3.next();
assertEquals(nodeCommitId, latestVersionMetadata3.getNodeCommitId());
assertEquals(returnedCommitEntry2.getNodeCommitId(), firstVersionMetadata3.getNodeCommitId());
}
use of com.enonic.xp.node.NodeId in project xp by enonic.
the class FindNodesWithVersionDifferenceCommandTest method assure_correct_diff_order_when_there_are_children.
@Test
public void assure_correct_diff_order_when_there_are_children() {
final Node node1 = createNode(CreateNodeParams.create().setNodeId(NodeId.from("dddd")).parent(NodePath.ROOT).name("dddd").build());
final Node node1_1 = createNode(CreateNodeParams.create().setNodeId(NodeId.from("ccc")).parent(node1.path()).name("ccc").build());
final Node node1_1_1 = createNode(CreateNodeParams.create().setNodeId(NodeId.from("11")).parent(node1_1.path()).name("11").build());
final Node node1_1_1_1 = createNode(CreateNodeParams.create().setNodeId(NodeId.from("_a")).parent(node1_1_1.path()).name("_a").build());
final Node node2 = createNode(CreateNodeParams.create().setNodeId(NodeId.from("node2")).parent(NodePath.ROOT).name("node2").build());
pushNodes(WS_OTHER, node1.id(), node1_1_1_1.id(), node1_1_1.id(), node1_1.id(), node2.id());
ctxOther().runWith(() -> doUpdateNode(node1_1_1_1));
ctxOther().runWith(() -> doUpdateNode(node1_1_1));
ctxOther().runWith(() -> doUpdateNode(node1_1));
ctxOther().runWith(() -> doUpdateNode(node1));
NodeVersionDiffResult result = getDiff(WS_DEFAULT, WS_OTHER, node1.path());
assertEquals(4, result.getNodesWithDifferences().getSize());
int counter = 0;
for (final NodeId nodeId : result.getNodesWithDifferences()) {
if (counter == 0) {
assertEquals("dddd", nodeId.toString());
} else if (counter == 1) {
assertEquals("ccc", nodeId.toString());
} else if (counter == 2) {
assertEquals("11", nodeId.toString());
} else if (counter == 3) {
assertEquals("_a", nodeId.toString());
}
counter++;
}
}
Aggregations