@Test public void shouldIgnoreIncompleteRequests() { graph.move(validPath); // missing 'into(...)' assertNoMoreRequests(); graph.move(validPath).into(validUuid); assertThat(numberOfExecutions, is(1)); assertNextRequestIsMove(Location.create(validPath), Location.create(validUuid)); assertNoMoreRequests(); }
@Test public void shouldDeleteNode() { graph.delete(validPath); assertThat(numberOfExecutions, is(1)); assertNextRequestIsDelete(Location.create(validPath)); assertNoMoreRequests(); graph.delete(validPathString); assertThat(numberOfExecutions, is(1)); assertNextRequestIsDelete(Location.create(validPath)); assertNoMoreRequests(); graph.delete(validUuid); assertThat(numberOfExecutions, is(1)); assertNextRequestIsDelete(Location.create(validUuid)); assertNoMoreRequests(); graph.delete(validIdProperty1); assertThat(numberOfExecutions, is(1)); assertNextRequestIsDelete(Location.create(validIdProperty1)); assertNoMoreRequests(); graph.delete(validIdProperty1, validIdProperty2); assertThat(numberOfExecutions, is(1)); assertNextRequestIsDelete(Location.create(validIdProperty1, validIdProperty2)); assertNoMoreRequests(); }
@Test public void shouldGetPropertiesByNameOnNode() { setPropertiesToReadOn(Location.create(validPath), validIdProperty1, validIdProperty2); Map<Name, Property> propsByName = graph.getPropertiesByName().on(validPath); assertThat(numberOfExecutions, is(1)); assertNextRequestReadProperties(Location.create(validPath), validIdProperty1, validIdProperty2); assertNoMoreRequests(); assertThat(propsByName.get(validIdProperty1.getName()), is(validIdProperty1)); assertThat(propsByName.get(validIdProperty2.getName()), is(validIdProperty2)); setPropertiesToReadOn(Location.create(validPath)); propsByName = graph.getPropertiesByName().on(validPath); assertThat(numberOfExecutions, is(1)); assertNextRequestReadProperties(Location.create(validPath)); assertNoMoreRequests(); assertThat(propsByName.isEmpty(), is(true)); }
@Test public void shouldMoveNode() { graph.move(validPath).into(validIdProperty1, validIdProperty2); assertThat(numberOfExecutions, is(1)); assertNextRequestIsMove(Location.create(validPath), Location.create(validIdProperty1, validIdProperty2)); assertNoMoreRequests(); graph.move(validPathString).into(validIdProperty1, validIdProperty2); assertThat(numberOfExecutions, is(1)); assertNextRequestIsMove(Location.create(validPath), Location.create(validIdProperty1, validIdProperty2)); assertNoMoreRequests(); graph.move(validUuid).into(validPath); assertThat(numberOfExecutions, is(1)); assertNextRequestIsMove(Location.create(validUuid), Location.create(validPath)); assertNoMoreRequests(); }
@Test public void shouldCopyNode() { graph.copy(validPath).into(validIdProperty1, validIdProperty2); assertThat(numberOfExecutions, is(1)); assertNextRequestIsCopy(Location.create(validPath), Location.create(validIdProperty1, validIdProperty2)); assertNoMoreRequests(); graph.copy(validPathString).into(validIdProperty1, validIdProperty2); assertThat(numberOfExecutions, is(1)); assertNextRequestIsCopy(Location.create(validPath), Location.create(validIdProperty1, validIdProperty2)); assertNoMoreRequests(); graph.copy(validUuid).into(validPath); assertThat(numberOfExecutions, is(1)); assertNextRequestIsCopy(Location.create(validUuid), Location.create(validPath)); assertNoMoreRequests(); }
@Test public void shouldCopyNodeFromOtherWorkspace() { graph.copy(validPath).fromWorkspace("other").into(validIdProperty1, validIdProperty2); assertThat(numberOfExecutions, is(1)); assertNextRequestIsCopy("other", Location.create(validPath), Location.create(validIdProperty1, validIdProperty2)); assertNoMoreRequests(); graph.copy(validPathString).into(validIdProperty1, validIdProperty2); assertThat(numberOfExecutions, is(1)); assertNextRequestIsCopy(Location.create(validPath), Location.create(validIdProperty1, validIdProperty2)); assertNoMoreRequests(); graph.copy(validUuid).into(validPath); assertThat(numberOfExecutions, is(1)); assertNextRequestIsCopy(Location.create(validUuid), Location.create(validPath)); assertNoMoreRequests(); }
@Test public void shouldCreateNodeAtPathWithPropertiesAndReturnLocation() { Location actual = graph.createAt(validPath).with(validIdProperty1).getLocation(); assertThat(actual, is(notNullValue())); assertThat(numberOfExecutions, is(1)); assertNextRequestIsCreate(Location.create(validPath.getParent()), "c", validIdProperty1); assertNoMoreRequests(); actual = graph.createAt(validPath).with(validIdProperty1).and(validIdProperty2).getLocation(); assertThat(actual, is(notNullValue())); assertThat(numberOfExecutions, is(1)); assertNextRequestIsCreate(Location.create(validPath.getParent()), "c", validIdProperty1, validIdProperty2); assertNoMoreRequests(); }
@Test public void shouldReadOnePropertyOnMultipleNodes() { List<Location> locations = new ArrayList<Location>(); locations.add(Location.create(createPath("/x/y/a"))); locations.add(Location.create(createPath("/x/y/b"))); locations.add(Location.create(createPath("/x/y/c"))); for (Location location : locations) { Property prop1 = context.getPropertyFactory().create(validName, "1"); Property prop2 = context.getPropertyFactory().create(createName("otherName"), "2"); setPropertiesToReadOn(location, prop1, prop2); } Map<Location, Property> propertiesByLocation = graph.getProperty(validName).on(locations); assertThat(numberOfExecutions, is(1)); extractRequestsFromComposite(); for (Location location : locations) { Property prop = this.properties.get(location).iterator().next(); assertNextRequestReadProperty(location, prop); assertThat(propertiesByLocation.get(location), is(prop)); } assertNoMoreRequests(); }
@Test public void shouldGetPropertiesOnNode() { setPropertiesToReadOn(Location.create(validPath), validIdProperty1, validIdProperty2); Collection<Property> props = graph.getProperties().on(validPath); assertThat(numberOfExecutions, is(1)); assertNextRequestReadProperties(Location.create(validPath), validIdProperty1, validIdProperty2); assertNoMoreRequests(); assertThat(props, hasItems(validIdProperty1, validIdProperty2)); setPropertiesToReadOn(Location.create(validPath)); props = graph.getProperties().on(validPath); assertThat(numberOfExecutions, is(1)); assertNextRequestReadProperties(Location.create(validPath)); assertNoMoreRequests(); assertThat(props.size(), is(0)); }
@Test public void shouldCreateNode() { graph.create(validPath).and(); assertThat(numberOfExecutions, is(1)); assertNextRequestIsCreate(Location.create(validPath.getParent()), "c"); assertNoMoreRequests(); graph.create(validPath, validIdProperty1).and(); assertThat(numberOfExecutions, is(1)); assertNextRequestIsCreate(Location.create(validPath.getParent()), "c", validIdProperty1); assertNoMoreRequests(); graph.create(validPath, validIdProperty1, validIdProperty2).and(); assertThat(numberOfExecutions, is(1)); assertNextRequestIsCreate(Location.create(validPath.getParent()), "c", validIdProperty1, validIdProperty2); assertNoMoreRequests(); graph.create(validPathString).and(); assertThat(numberOfExecutions, is(1)); assertNextRequestIsCreate(Location.create(validPath.getParent()), "c"); assertNoMoreRequests(); graph.create(validPathString, validIdProperty1).and(); assertThat(numberOfExecutions, is(1)); assertNextRequestIsCreate(Location.create(validPath.getParent()), "c", validIdProperty1); assertNoMoreRequests(); graph.create(validPathString, validIdProperty1, validIdProperty2).and(); assertThat(numberOfExecutions, is(1)); assertNextRequestIsCreate(Location.create(validPath.getParent()), "c", validIdProperty1, validIdProperty2); assertNoMoreRequests(); }
@Test public void shouldCreateNodeAndReturnGraph() { graph.create(validPath).and().getNodeAt(validPath); assertThat(numberOfExecutions, is(2)); assertNextRequestIsCreate(Location.create(validPath.getParent()), "c"); assertNextRequestReadNode(Location.create(validPath)); assertNoMoreRequests(); }
@Test public void shouldGetPropertyOnNode() { setPropertiesToReadOn(Location.create(validPath), validIdProperty1, validIdProperty2); graph.getProperty(validIdProperty2.getName()).on(validPath); assertThat(numberOfExecutions, is(1)); assertNextRequestReadProperty(Location.create(validPath), validIdProperty2); assertNoMoreRequests(); setPropertiesToReadOn(Location.create(validPath), validIdProperty1, validIdProperty2); graph.getProperty(validIdProperty2.getName().getString(context.getNamespaceRegistry())).on(validPath); assertThat(numberOfExecutions, is(1)); assertNextRequestReadProperty(Location.create(validPath), validIdProperty2); assertNoMoreRequests(); }
@Test public void shouldCreateNodeAtPathWithPropertiesAndReturnNode() { Node node = graph.createAt(validPath).with(validIdProperty1).getNode(); assertThat(node, is(notNullValue())); assertThat(numberOfExecutions, is(2)); assertNextRequestIsCreate(Location.create(validPath.getParent()), "c", validIdProperty1); assertNextRequestReadNode(Location.create(validPath)); assertNoMoreRequests(); node = graph.createAt(validPath).with(validIdProperty1).and(validIdProperty2).getNode(); assertThat(node, is(notNullValue())); assertThat(numberOfExecutions, is(2)); assertNextRequestIsCreate(Location.create(validPath.getParent()), "c", validIdProperty1, validIdProperty2); assertNextRequestReadNode(Location.create(validPath)); assertNoMoreRequests(); }
@Test public void shouldCreateNodeAtPathWithPropertiesAndReturnGraph() { graph.createAt(validPath).with(validIdProperty1).and().getNodeAt(validPath); assertThat(numberOfExecutions, is(2)); assertNextRequestIsCreate(Location.create(validPath.getParent()), "c", validIdProperty1); assertNextRequestReadNode(Location.create(validPath)); assertNoMoreRequests(); graph.createAt(validPath).with(validIdProperty1).and(validIdProperty2).and().getNodeAt(validPath); assertThat(numberOfExecutions, is(2)); assertNextRequestIsCreate(Location.create(validPath.getParent()), "c", validIdProperty1, validIdProperty2); assertNextRequestReadNode(Location.create(validPath)); assertNoMoreRequests(); }
@Test public void shouldGetChildrenOnNode() { Location child1 = Location.create(createPath(validPath, "x")); Location child2 = Location.create(createPath(validPath, "y")); Location child3 = Location.create(createPath(validPath, "z")); setChildrenToReadOn(Location.create(validPath), child1, child2, child3); List<Location> children = graph.getChildren().of(validPath); assertThat(numberOfExecutions, is(1)); assertNextRequestReadChildren(Location.create(validPath), child1, child2, child3); assertNoMoreRequests(); assertThat(children, hasItems(child1, child2, child3)); setChildrenToReadOn(Location.create(validPath)); children = graph.getChildren().of(validPath); assertThat(numberOfExecutions, is(1)); assertNextRequestReadChildren(Location.create(validPath)); assertNoMoreRequests(); assertThat(children.isEmpty(), is(true)); }
@Test public void shouldMoveNodesThroughMultipleMoveRequests() { graph.move(validPath).into(validIdProperty1, validIdProperty2).and().move(validUuid).into(validPathString); assertThat(numberOfExecutions, is(2)); assertNextRequestIsMove(Location.create(validPath), Location.create(validIdProperty1, validIdProperty2)); assertNextRequestIsMove(Location.create(validUuid), Location.create(createPath(validPathString))); assertNoMoreRequests(); }
@Test public void shouldReadNode() { Location child1 = Location.create(createPath(validPath, "x")); Location child2 = Location.create(createPath(validPath, "y")); Location child3 = Location.create(createPath(validPath, "z")); setChildrenToReadOn(Location.create(validPath), child1, child2, child3); setPropertiesToReadOn(Location.create(validPath), validIdProperty1, validIdProperty2); Node node = graph.getNodeAt(validPath); assertThat(node, is(notNullValue())); assertThat(node.getChildren(), hasItems(child1, child2)); assertThat(node.getProperties(), hasItems(validIdProperty1, validIdProperty2)); assertThat(node.getLocation(), is(Location.create(validPath))); assertThat(node.getGraph(), is(sameInstance(graph))); assertThat(node.getPropertiesByName().get(validIdProperty1.getName()), is(validIdProperty1)); assertThat(node.getPropertiesByName().get(validIdProperty2.getName()), is(validIdProperty2)); assertThat(numberOfExecutions, is(1)); assertNextRequestReadNode(Location.create(validPath)); assertNoMoreRequests(); }
@Test public void shouldMoveAndRenameNodesThroughMultipleMoveRequests() { graph.move(validPath).as(validName).into(validIdProperty1, validIdProperty2).and().move(validUuid).into(validPathString); assertThat(numberOfExecutions, is(2)); assertNextRequestIsMove(Location.create(validPath), Location.create(validIdProperty1, validIdProperty2)); assertNextRequestIsMove(Location.create(validUuid), Location.create(createPath(validPathString))); assertNoMoreRequests(); }
@Test public void shouldGetChildrenInBlockAfterPreviousSibling() { Path pathX = createPath(validPath, "x"); Path pathY = createPath(validPath, "y"); Path pathZ = createPath(validPath, "z"); Location child1 = Location.create(pathX); Location child2 = Location.create(pathY); Location child3 = Location.create(pathZ); setChildrenToReadOn(Location.create(validPath), child1, child2, child3); List<Location> children = graph.getChildren().inBlockOf(2).startingAfter(pathX); assertThat(numberOfExecutions, is(1)); assertNextRequestReadNextBlockOfChildren(Location.create(pathX), 2, child2, child3); assertNoMoreRequests(); assertThat(children, hasItems(child2, child3)); children = graph.getChildren().inBlockOf(3).startingAfter(pathX); assertThat(numberOfExecutions, is(1)); assertNextRequestReadNextBlockOfChildren(Location.create(pathX), 3, child2, child3); assertNoMoreRequests(); assertThat(children, hasItems(child2, child3)); children = graph.getChildren().inBlockOf(2).startingAfter(pathY); assertThat(numberOfExecutions, is(1)); assertNextRequestReadNextBlockOfChildren(Location.create(pathY), 2, child3); assertNoMoreRequests(); assertThat(children, hasItems(child3)); }
assertThat(numberOfExecutions, is(1)); assertNextRequestIsMove(Location.create(validPath), Location.create(validIdProperty1, validIdProperty2)); assertNoMoreRequests(); assertNoMoreRequests(); assertNoMoreRequests(); assertNextRequestIsMove(Location.create(validPath), Location.create(validIdProperty1, validIdProperty2)); assertNextRequestIsMove(Location.create(validUuid), Location.create(validPath)); assertNoMoreRequests();