Skip to content
Snippets Groups Projects
Commit c63e9347 authored by felmer's avatar felmer
Browse files

SSDM-4647: Search External DMS by code implemented and system test added to SearchExternalDmsTest

SVN: 37984
parent 263567a0
No related branches found
No related tags found
No related merge requests found
......@@ -18,11 +18,12 @@ package ch.ethz.sis.openbis.generic.server.asapi.v3.executor.externaldms;
import ch.ethz.sis.openbis.generic.asapi.v3.dto.externaldms.search.ExternalDmsSearchCriteria;
import ch.ethz.sis.openbis.generic.server.asapi.v3.executor.common.search.ISearchObjectExecutor;
import ch.systemsx.cisd.openbis.generic.shared.dto.ExternalDataManagementSystemPE;
/**
* @author pkupczyk
*/
public interface ISearchExternalDmsExecutor extends ISearchObjectExecutor<ExternalDmsSearchCriteria, Long>
public interface ISearchExternalDmsExecutor extends ISearchObjectExecutor<ExternalDmsSearchCriteria, ExternalDataManagementSystemPE>
{
}
......@@ -16,23 +16,25 @@
package ch.ethz.sis.openbis.generic.server.asapi.v3.executor.externaldms;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import ch.ethz.sis.openbis.generic.asapi.v3.dto.common.search.CodeSearchCriteria;
import ch.ethz.sis.openbis.generic.asapi.v3.dto.common.search.ISearchCriteria;
import ch.ethz.sis.openbis.generic.asapi.v3.dto.externaldms.search.ExternalDmsSearchCriteria;
import ch.ethz.sis.openbis.generic.server.asapi.v3.executor.IOperationContext;
import ch.ethz.sis.openbis.generic.server.asapi.v3.executor.common.search.AbstractSearchObjectExecutor;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DetailedSearchCriteria;
import ch.ethz.sis.openbis.generic.server.asapi.v3.executor.common.search.AbstractSearchObjectManuallyExecutor;
import ch.ethz.sis.openbis.generic.server.asapi.v3.executor.common.search.CodeMatcher;
import ch.ethz.sis.openbis.generic.server.asapi.v3.executor.common.search.Matcher;
import ch.systemsx.cisd.openbis.generic.shared.dto.ExternalDataManagementSystemPE;
/**
* @author pkupczyk
*/
@Component
public class SearchExternalDmsExecutor extends AbstractSearchObjectExecutor<ExternalDmsSearchCriteria, Long> implements
public class SearchExternalDmsExecutor extends AbstractSearchObjectManuallyExecutor<ExternalDmsSearchCriteria, ExternalDataManagementSystemPE> implements
ISearchExternalDmsExecutor
{
......@@ -40,16 +42,27 @@ public class SearchExternalDmsExecutor extends AbstractSearchObjectExecutor<Exte
private IExternalDmsAuthorizationExecutor authorizationExecutor;
@Override
protected List<Long> doSearch(IOperationContext context, DetailedSearchCriteria criteria)
public List<ExternalDataManagementSystemPE> search(IOperationContext context, ExternalDmsSearchCriteria criteria)
{
authorizationExecutor.canSearch(context);
List<ExternalDataManagementSystemPE> list =
daoFactory.getExternalDataManagementSystemDAO().listExternalDataManagementSystems();
List<Long> ids = new ArrayList<>();
for (ExternalDataManagementSystemPE edms : list)
return super.search(context, criteria);
}
@Override
protected List<ExternalDataManagementSystemPE> listAll()
{
return daoFactory.getExternalDataManagementSystemDAO().listExternalDataManagementSystems();
}
@Override
protected Matcher<ExternalDataManagementSystemPE> getMatcher(ISearchCriteria criteria)
{
if (criteria instanceof CodeSearchCriteria)
{
return new CodeMatcher<ExternalDataManagementSystemPE>();
} else
{
ids.add(edms.getId());
throw new IllegalArgumentException("Unknown search criteria: " + criteria.getClass());
}
return ids;
}
}
......@@ -28,16 +28,17 @@ import ch.ethz.sis.openbis.generic.asapi.v3.dto.externaldms.search.ExternalDmsSe
import ch.ethz.sis.openbis.generic.asapi.v3.dto.externaldms.search.SearchExternalDmsOperation;
import ch.ethz.sis.openbis.generic.asapi.v3.dto.externaldms.search.SearchExternalDmsOperationResult;
import ch.ethz.sis.openbis.generic.server.asapi.v3.executor.common.search.ISearchObjectExecutor;
import ch.ethz.sis.openbis.generic.server.asapi.v3.executor.common.search.SearchObjectsOperationExecutor;
import ch.ethz.sis.openbis.generic.server.asapi.v3.executor.common.search.SearchObjectsPEOperationExecutor;
import ch.ethz.sis.openbis.generic.server.asapi.v3.translator.ITranslator;
import ch.ethz.sis.openbis.generic.server.asapi.v3.translator.externaldms.IExternalDmsTranslator;
import ch.systemsx.cisd.openbis.generic.shared.dto.ExternalDataManagementSystemPE;
/**
* @author pkupczyk
*/
@Component
public class SearchExternalDmsOperationExecutor
extends SearchObjectsOperationExecutor<ExternalDms, Long, ExternalDmsSearchCriteria, ExternalDmsFetchOptions>
extends SearchObjectsPEOperationExecutor<ExternalDms, ExternalDataManagementSystemPE, ExternalDmsSearchCriteria, ExternalDmsFetchOptions>
implements ISearchExternalDmsOperationExecutor
{
......@@ -54,7 +55,7 @@ public class SearchExternalDmsOperationExecutor
}
@Override
protected ISearchObjectExecutor<ExternalDmsSearchCriteria, Long> getExecutor()
protected ISearchObjectExecutor<ExternalDmsSearchCriteria, ExternalDataManagementSystemPE> getExecutor()
{
return searchExecutor;
}
......
......@@ -18,7 +18,11 @@ package ch.ethz.sis.openbis.systemtest.asapi.v3;
import static org.hamcrest.CoreMatchers.hasItem;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.testng.Assert.assertEquals;
import java.util.List;
import org.testng.Assert;
import org.testng.annotations.Test;
import ch.ethz.sis.openbis.generic.asapi.v3.dto.common.search.SearchResult;
......@@ -41,4 +45,21 @@ public class SearchExternalDmsTest extends AbstractExternalDmsTest
assertThat(result.getObjects(), hasItem(isSimilarTo(edms1)));
assertThat(result.getObjects(), hasItem(isSimilarTo(edms2)));
}
@Test
public void searchReturnsSpecifiedExternalDataManagementSystem()
{
get(create(externalDms()));
ExternalDms edms2 = get(create(externalDms()));
ExternalDmsSearchCriteria criteria = new ExternalDmsSearchCriteria();
criteria.withCode().thatEquals(edms2.getCode());
ExternalDmsFetchOptions fetchOptions = new ExternalDmsFetchOptions();
List<ExternalDms> result = v3api.searchExternalDataManagementSystems(session, criteria, fetchOptions).getObjects();
assertEquals(result.size(), 1);
assertEquals(result.get(0).getCode(), edms2.getCode());
assertEquals(result.get(0).getAddress(), edms2.getAddress());
assertEquals(result.get(0).getAddressType(), edms2.getAddressType());
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment