@Test public void shouldReadMultiplePropertiesOnMultipleNodes() { 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"))); Name name1 = createName("name1"); Name name2 = createName("name2"); for (Location location : locations) { Property prop1 = context.getPropertyFactory().create(name1, "1"); Property prop2 = context.getPropertyFactory().create(name2, "2"); setPropertiesToReadOn(location, prop1, prop2); } Map<Location, Map<Name, Property>> propertiesByLocation = graph.getProperties(name1, name2).on(locations); assertThat(numberOfExecutions, is(1)); extractRequestsFromComposite(); for (Location location : locations) { Map<Name, Property> expectedProps = new HashMap<Name, Property>(); for (Property prop : this.properties.get(location)) { expectedProps.put(prop.getName(), prop); } Property prop1 = expectedProps.get(name1); Property prop2 = expectedProps.get(name2); assertNextRequestReadProperty(location, prop1); assertNextRequestReadProperty(location, prop2); assertThat(propertiesByLocation.get(location).get(name1), is(prop1)); assertThat(propertiesByLocation.get(location).get(name2), is(prop2)); } 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 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(); }