import java.util.Map;
import java.util.Optional;
import java.util.function.Predicate;
+import java.util.function.UnaryOperator;
import org.onap.aaiclient.client.graphinventory.GraphInventoryCommonObjectMapperProvider;
import org.onap.aaiclient.client.graphinventory.GraphInventoryObjectName;
import org.onap.aaiclient.client.graphinventory.GraphInventoryObjectType;
return this.getAll(Optional.of(type));
}
+ public List<Wrapper> getByType(GraphInventoryObjectName type, UnaryOperator<Uri> func) {
+
+ return this.getAll(Optional.of(type), func);
+ }
+
public List<Wrapper> getAll() {
return this.getAll(Optional.empty());
protected List<Wrapper> getAll(final Optional<GraphInventoryObjectName> type) {
+ return getAll(type, UnaryOperator.identity());
+ }
+
+ protected List<Wrapper> getAll(final Optional<GraphInventoryObjectName> type, UnaryOperator<Uri> func) {
List<Uri> relatedLinks;
if (type.isPresent()) {
relatedLinks = this.getRelatedUris(type.get());
}
ArrayList<Wrapper> result = new ArrayList<>();
for (Uri link : relatedLinks) {
- result.add(this.get(link));
+ result.add(this.get(func.apply(link)));
}
return result;
}
package org.onap.aaiclient.client.aai.entities;
import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.doReturn;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.List;
import org.junit.Test;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mockito;
import org.onap.aaiclient.client.aai.AAIObjectType;
import org.onap.aaiclient.client.aai.entities.uri.AAIResourceUri;
import org.onap.aaiclient.client.aai.entities.uri.AAIUriFactory;
}
+ @Test
+ public void getByTypeTest() throws IOException {
+ final String content = new String(Files.readAllBytes(Paths.get(AAI_JSON_FILE_LOCATION + "e2e-complex.json")));
+
+ AAIResultWrapper wrapper = new AAIResultWrapper(content);
+ Relationships relationships = wrapper.getRelationships().get();
+
+ Relationships spy = Mockito.spy(relationships);
+ ArgumentCaptor<AAIResourceUri> argument = ArgumentCaptor.forClass(AAIResourceUri.class);
+ doReturn(new AAIResultWrapper("{}")).when(spy).get(argument.capture());
+
+ spy.getByType(AAIObjectType.VCE, uri -> uri.nodesOnly(true));
+
+ assertTrue(argument.getAllValues().stream().allMatch(item -> item.build().toString().contains("nodes-only")));
+
+ argument = ArgumentCaptor.forClass(AAIResourceUri.class);
+
+ doReturn(new AAIResultWrapper("{}")).when(spy).get(argument.capture());
+ spy.getByType(AAIObjectType.VCE);
+
+ assertTrue(argument.getAllValues().stream().allMatch(item -> !item.build().toString().contains("?")));
+
+ }
}