Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plugins/org.eclipse.osee.orcs.rest.test/META-INF/MANIFEST.MF3
-rw-r--r--plugins/org.eclipse.osee.orcs.rest.test/src/org/eclipse/osee/orcs/rest/internal/InternalTestSuite.java4
-rw-r--r--plugins/org.eclipse.osee.orcs.rest.test/src/org/eclipse/osee/orcs/rest/internal/search/ArtifactSearch_V1Test.java80
-rw-r--r--plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/ArtifactsResource.java10
-rw-r--r--plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/BranchResource.java7
-rw-r--r--plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/BranchesResource.java8
-rw-r--r--plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/search/artifact/ArtifactSearch_V1.java71
7 files changed, 140 insertions, 43 deletions
diff --git a/plugins/org.eclipse.osee.orcs.rest.test/META-INF/MANIFEST.MF b/plugins/org.eclipse.osee.orcs.rest.test/META-INF/MANIFEST.MF
index ad19a92c519..66ad4d5e907 100644
--- a/plugins/org.eclipse.osee.orcs.rest.test/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.osee.orcs.rest.test/META-INF/MANIFEST.MF
@@ -11,4 +11,5 @@ Require-Bundle: org.junit,
org.hamcrest.core,
org.objenesis
Import-Package: org.eclipse.osee.executor.admin,
- org.eclipse.osee.framework.jdk.core.type
+ org.eclipse.osee.framework.jdk.core.type,
+ org.eclipse.osee.orcs.db.mock
diff --git a/plugins/org.eclipse.osee.orcs.rest.test/src/org/eclipse/osee/orcs/rest/internal/InternalTestSuite.java b/plugins/org.eclipse.osee.orcs.rest.test/src/org/eclipse/osee/orcs/rest/internal/InternalTestSuite.java
index 4f6eeb91f0b..35475df7f38 100644
--- a/plugins/org.eclipse.osee.orcs.rest.test/src/org/eclipse/osee/orcs/rest/internal/InternalTestSuite.java
+++ b/plugins/org.eclipse.osee.orcs.rest.test/src/org/eclipse/osee/orcs/rest/internal/InternalTestSuite.java
@@ -10,6 +10,7 @@
*******************************************************************************/
package org.eclipse.osee.orcs.rest.internal;
+import org.eclipse.osee.orcs.rest.internal.search.ArtifactSearch_V1Test;
import org.eclipse.osee.orcs.rest.internal.search.dsl.SearchDslTest;
import org.eclipse.osee.orcs.rest.internal.search.predicate.AttributeTypePredicateHandlerTest;
import org.eclipse.osee.orcs.rest.internal.search.predicate.ExistsTypePredicateHandlerTest;
@@ -31,7 +32,8 @@ import org.junit.runners.Suite;
IdsPredicateHandlerTest.class,
GuidsPredicateHandlerTest.class,
IsOfTypePredicateHandlerTest.class,
- TypeEqualsPredicateHandlerTest.class})
+ TypeEqualsPredicateHandlerTest.class,
+ ArtifactSearch_V1Test.class})
public class InternalTestSuite {
// Test Suite
}
diff --git a/plugins/org.eclipse.osee.orcs.rest.test/src/org/eclipse/osee/orcs/rest/internal/search/ArtifactSearch_V1Test.java b/plugins/org.eclipse.osee.orcs.rest.test/src/org/eclipse/osee/orcs/rest/internal/search/ArtifactSearch_V1Test.java
new file mode 100644
index 00000000000..bf6fe97b993
--- /dev/null
+++ b/plugins/org.eclipse.osee.orcs.rest.test/src/org/eclipse/osee/orcs/rest/internal/search/ArtifactSearch_V1Test.java
@@ -0,0 +1,80 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Boeing.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Boeing - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.osee.orcs.rest.internal.search;
+
+import static org.mockito.Mockito.when;
+import java.util.Arrays;
+import java.util.Collection;
+import javax.ws.rs.core.Request;
+import javax.ws.rs.core.UriInfo;
+import org.eclipse.osee.framework.core.data.IAttributeType;
+import org.eclipse.osee.framework.core.data.IOseeBranch;
+import org.eclipse.osee.framework.core.enums.CoreBranches;
+import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
+import org.eclipse.osee.orcs.OrcsApi;
+import org.eclipse.osee.orcs.rest.internal.search.artifact.ArtifactSearch_V1;
+import org.eclipse.osee.orcs.rest.internal.search.artifact.PredicateHandler;
+import org.eclipse.osee.orcs.rest.internal.search.artifact.predicate.PredicateHandlerUtil;
+import org.eclipse.osee.orcs.rest.model.search.artifact.Predicate;
+import org.eclipse.osee.orcs.rest.model.search.artifact.SearchMethod;
+import org.eclipse.osee.orcs.rest.model.search.artifact.SearchRequest;
+import org.eclipse.osee.orcs.rest.model.search.artifact.SearchResponse;
+import org.eclipse.osee.orcs.search.QueryBuilder;
+import org.eclipse.osee.orcs.search.QueryFactory;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+/**
+ * @author Megumi Telles
+ */
+public class ArtifactSearch_V1Test {
+
+ // @formatter:off
+ @Mock private OrcsApi orcsApi;
+ @Mock private PredicateHandler handler;
+ @Mock private QueryFactory queryFactory;
+ @Mock private QueryBuilder builder;
+ @Mock private UriInfo uriInfo;
+ @Mock private Request request;
+ @Captor private ArgumentCaptor<IOseeBranch> fromBranch;
+ // @formatter:on
+
+ private static final IOseeBranch BRANCH = CoreBranches.COMMON;
+ private final java.util.List<String> types = Arrays.asList("1000000000000070");
+ private ArtifactSearch_V1 search;
+
+ @Before
+ public void setup() {
+ MockitoAnnotations.initMocks(this);
+ search = new ArtifactSearch_V1(uriInfo, request, BRANCH.getUuid(), orcsApi);
+ }
+
+ @Test
+ public void testSearchRequestNull() throws OseeCoreException {
+ when(orcsApi.getQueryFactory(null)).thenReturn(queryFactory);
+ when(queryFactory.fromBranch(BRANCH)).thenReturn(builder);
+
+ Collection<IAttributeType> attrTypes = PredicateHandlerUtil.getIAttributeTypes(types);
+ Predicate predicate = new Predicate(SearchMethod.ATTRIBUTE_TYPE, types, Arrays.asList("AtsAdmin"));
+ when(builder.and(attrTypes, predicate.getValues().iterator().next(), predicate.getOptions())).thenReturn(builder);
+
+ SearchRequest params = new SearchRequest(BRANCH.getUuid(), Arrays.asList(predicate), null, 0, false);
+ SearchResponse response = search.getSearchWithMatrixParams(params);
+
+ Assert.assertEquals(response.getSearchRequest(), params);
+ }
+
+}
diff --git a/plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/ArtifactsResource.java b/plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/ArtifactsResource.java
index 936ae4c0b81..3d17b8cfe82 100644
--- a/plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/ArtifactsResource.java
+++ b/plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/ArtifactsResource.java
@@ -22,6 +22,7 @@ import org.eclipse.osee.framework.core.data.IOseeBranch;
import org.eclipse.osee.framework.core.data.TokenFactory;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.jdk.core.type.ResultSet;
+import org.eclipse.osee.orcs.OrcsApi;
import org.eclipse.osee.orcs.data.ArtifactReadable;
import org.eclipse.osee.orcs.rest.internal.search.artifact.ArtifactSearch_V1;
import org.eclipse.osee.orcs.search.QueryFactory;
@@ -40,15 +41,18 @@ public class ArtifactsResource {
private final Long branchUuid;
- public ArtifactsResource(UriInfo uriInfo, Request request, Long branchUuid) {
+ private final OrcsApi orcsApi;
+
+ public ArtifactsResource(UriInfo uriInfo, Request request, Long branchUuid, OrcsApi orcsApi) {
this.uriInfo = uriInfo;
this.request = request;
this.branchUuid = branchUuid;
+ this.orcsApi = orcsApi;
}
@Path("search/v1")
public ArtifactSearch_V1 getSearch() {
- return new ArtifactSearch_V1(uriInfo, request, branchUuid);
+ return new ArtifactSearch_V1(uriInfo, request, branchUuid, orcsApi);
}
@Path("{uuid}")
@@ -60,7 +64,7 @@ public class ArtifactsResource {
@Produces(MediaType.TEXT_HTML)
public String getAsHtml() throws OseeCoreException {
IOseeBranch branch = TokenFactory.createBranch(branchUuid, "");
- QueryFactory factory = OrcsApplication.getOrcsApi().getQueryFactory(null);
+ QueryFactory factory = orcsApi.getQueryFactory(null);
ResultSet<ArtifactReadable> results =
factory.fromBranch(branch).andNameEquals(DEFAULT_HIERARCHY_ROOT_NAME).getResults();
ArtifactReadable rootArtifact = results.getExactlyOne();
diff --git a/plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/BranchResource.java b/plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/BranchResource.java
index 59c36f818ce..79961cbf6b4 100644
--- a/plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/BranchResource.java
+++ b/plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/BranchResource.java
@@ -19,6 +19,7 @@ import javax.ws.rs.core.Request;
import javax.ws.rs.core.UriInfo;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.jdk.core.type.ResultSet;
+import org.eclipse.osee.orcs.OrcsApi;
import org.eclipse.osee.orcs.data.BranchReadable;
import org.eclipse.osee.orcs.search.BranchQuery;
@@ -33,16 +34,18 @@ public class BranchResource {
Request request;
Long branchUuid;
+ OrcsApi orcsApi;
- public BranchResource(UriInfo uriInfo, Request request, Long branchUuid) {
+ public BranchResource(UriInfo uriInfo, Request request, Long branchUuid, OrcsApi orcsApi) {
this.uriInfo = uriInfo;
this.request = request;
this.branchUuid = branchUuid;
+ this.orcsApi = orcsApi;
}
@Path("artifact")
public ArtifactsResource getArtifacts() {
- return new ArtifactsResource(uriInfo, request, branchUuid);
+ return new ArtifactsResource(uriInfo, request, branchUuid, orcsApi);
}
@Path("txs")
diff --git a/plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/BranchesResource.java b/plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/BranchesResource.java
index 11c4e968680..23d57b1586a 100644
--- a/plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/BranchesResource.java
+++ b/plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/BranchesResource.java
@@ -21,6 +21,7 @@ import javax.ws.rs.core.UriInfo;
import org.eclipse.osee.framework.core.enums.BranchType;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.jdk.core.type.ResultSet;
+import org.eclipse.osee.orcs.OrcsApi;
import org.eclipse.osee.orcs.data.BranchReadable;
import org.eclipse.osee.orcs.search.BranchQuery;
@@ -37,15 +38,18 @@ public class BranchesResource {
@Context
Request request;
+ OrcsApi orcsApi;
+
@Path("{uuid}")
public BranchResource getBranch(@PathParam("uuid") Long id) {
- return new BranchResource(uriInfo, request, id);
+ this.orcsApi = OrcsApplication.getOrcsApi();
+ return new BranchResource(uriInfo, request, id, orcsApi);
}
@GET
@Produces(MediaType.TEXT_HTML)
public String getAsHtml() throws OseeCoreException {
- BranchQuery query = OrcsApplication.getOrcsApi().getQueryFactory(null).branchQuery();
+ BranchQuery query = orcsApi.getQueryFactory(null).branchQuery();
ResultSet<BranchReadable> results = query.andIsOfType(BranchType.BASELINE, BranchType.WORKING).getResults();
HtmlWriter writer = new HtmlWriter(uriInfo);
diff --git a/plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/search/artifact/ArtifactSearch_V1.java b/plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/search/artifact/ArtifactSearch_V1.java
index 6920707a155..81c188ad409 100644
--- a/plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/search/artifact/ArtifactSearch_V1.java
+++ b/plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/search/artifact/ArtifactSearch_V1.java
@@ -21,10 +21,10 @@ import javax.ws.rs.core.UriInfo;
import org.eclipse.osee.framework.jdk.core.type.MatchLocation;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
import org.eclipse.osee.framework.jdk.core.type.ResultSet;
+import org.eclipse.osee.orcs.OrcsApi;
import org.eclipse.osee.orcs.data.ArtifactReadable;
import org.eclipse.osee.orcs.data.AttributeReadable;
import org.eclipse.osee.orcs.data.HasLocalId;
-import org.eclipse.osee.orcs.rest.internal.OrcsApplication;
import org.eclipse.osee.orcs.rest.internal.search.artifact.dsl.DslFactory;
import org.eclipse.osee.orcs.rest.internal.search.artifact.dsl.SearchQueryBuilder;
import org.eclipse.osee.orcs.rest.model.search.artifact.RequestType;
@@ -42,9 +42,11 @@ import org.eclipse.osee.orcs.search.QueryFactory;
public class ArtifactSearch_V1 extends ArtifactSearch {
private final SearchQueryBuilder searchQueryBuilder;
+ private final OrcsApi orcsApi;
- public ArtifactSearch_V1(UriInfo uriInfo, Request request, Long branchUuid) {
+ public ArtifactSearch_V1(UriInfo uriInfo, Request request, Long branchUuid, OrcsApi orcsApi) {
super(uriInfo, request, branchUuid);
+ this.orcsApi = orcsApi;
searchQueryBuilder = DslFactory.createQueryBuilder();
}
@@ -58,7 +60,7 @@ public class ArtifactSearch_V1 extends ArtifactSearch {
private SearchResponse search(SearchRequest params) throws OseeCoreException {
long startTime = System.currentTimeMillis();
- QueryFactory qFactory = OrcsApplication.getOrcsApi().getQueryFactory(null); // Fix this
+ QueryFactory qFactory = orcsApi.getQueryFactory(null); // Fix this
QueryBuilder builder = searchQueryBuilder.build(qFactory, params);
@@ -70,39 +72,40 @@ public class ArtifactSearch_V1 extends ArtifactSearch {
SearchResponse result = new SearchResponse();
RequestType request = params.getRequestType();
- List<Integer> localIds = new LinkedList<Integer>();
- switch (request) {
- case COUNT:
- int total = builder.getCount();
- result.setTotal(total);
- break;
- case IDS:
- for (HasLocalId<Integer> art : builder.getResultsAsLocalIds()) {
- localIds.add(art.getLocalId());
- }
- result.setIds(localIds);
- result.setTotal(localIds.size());
- break;
- case MATCHES:
- ResultSet<Match<ArtifactReadable, AttributeReadable<?>>> matches = builder.getMatches();
- List<SearchMatch> searchMatches = new LinkedList<SearchMatch>();
- for (Match<ArtifactReadable, AttributeReadable<?>> match : matches) {
- int artId = match.getItem().getLocalId();
- localIds.add(artId);
- for (AttributeReadable<?> attribute : match.getElements()) {
- int attrId = attribute.getLocalId();
- List<MatchLocation> locations = match.getLocation(attribute);
- searchMatches.add(new SearchMatch(artId, attrId, locations));
+ if (request != null) {
+ List<Integer> localIds = new LinkedList<Integer>();
+ switch (request) {
+ case COUNT:
+ int total = builder.getCount();
+ result.setTotal(total);
+ break;
+ case IDS:
+ for (HasLocalId<Integer> art : builder.getResultsAsLocalIds()) {
+ localIds.add(art.getLocalId());
}
- }
- result.setIds(localIds);
- result.setMatches(searchMatches);
- result.setTotal(searchMatches.size());
- break;
- default:
- throw new UnsupportedOperationException();
+ result.setIds(localIds);
+ result.setTotal(localIds.size());
+ break;
+ case MATCHES:
+ ResultSet<Match<ArtifactReadable, AttributeReadable<?>>> matches = builder.getMatches();
+ List<SearchMatch> searchMatches = new LinkedList<SearchMatch>();
+ for (Match<ArtifactReadable, AttributeReadable<?>> match : matches) {
+ int artId = match.getItem().getLocalId();
+ localIds.add(artId);
+ for (AttributeReadable<?> attribute : match.getElements()) {
+ int attrId = attribute.getLocalId();
+ List<MatchLocation> locations = match.getLocation(attribute);
+ searchMatches.add(new SearchMatch(artId, attrId, locations));
+ }
+ }
+ result.setIds(localIds);
+ result.setMatches(searchMatches);
+ result.setTotal(searchMatches.size());
+ break;
+ default:
+ throw new UnsupportedOperationException();
+ }
}
-
result.setSearchRequest(params);
result.setSearchTime(System.currentTimeMillis() - startTime);
return result;

Back to the top