Skip to content

Commit

Permalink
added resource ITs for merging services
Browse files Browse the repository at this point in the history
  • Loading branch information
marcos-lg committed May 5, 2021
1 parent b9526c6 commit 1ea35d6
Show file tree
Hide file tree
Showing 5 changed files with 69 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
import org.gbif.registry.search.test.EsManageServer;
import org.gbif.registry.service.collections.duplicates.CollectionDuplicatesService;
import org.gbif.registry.service.collections.duplicates.DuplicatesService;
import org.gbif.registry.service.collections.merge.CollectionMergeService;
import org.gbif.registry.service.collections.merge.MergeService;
import org.gbif.registry.ws.client.collections.CollectionClient;
import org.gbif.ws.client.filter.SimplePrincipalProvider;

Expand All @@ -38,6 +40,8 @@ public class CollectionResourceIT extends PrimaryCollectionEntityResourceIT<Coll

@MockBean private CollectionDuplicatesService collectionDuplicatesService;

@MockBean private CollectionMergeService collectionMergeService;

@Autowired
public CollectionResourceIT(
SimplePrincipalProvider simplePrincipalProvider,
Expand Down Expand Up @@ -101,7 +105,7 @@ public void listDeletedTest() {
assertEquals(views.size(), result.getResults().size());
}

// TODO: merge, suggestions
// TODO: suggestions

@Override
protected PrimaryCollectionEntityService<Collection> getMockPrimaryEntityService() {
Expand All @@ -113,6 +117,11 @@ protected DuplicatesService getMockDuplicatesService() {
return collectionDuplicatesService;
}

@Override
protected MergeService<Collection> getMockMergeService() {
return collectionMergeService;
}

protected CollectionClient getClient() {
return (CollectionClient) baseClient;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.gbif.registry.ws.it.collections.resource;

import org.gbif.api.model.collections.Institution;
import org.gbif.api.model.collections.merge.ConvertToCollectionParams;
import org.gbif.api.model.collections.request.InstitutionSearchRequest;
import org.gbif.api.model.common.paging.Pageable;
import org.gbif.api.model.common.paging.PagingRequest;
Expand All @@ -13,6 +14,8 @@
import org.gbif.registry.search.test.EsManageServer;
import org.gbif.registry.service.collections.duplicates.DuplicatesService;
import org.gbif.registry.service.collections.duplicates.InstitutionDuplicatesService;
import org.gbif.registry.service.collections.merge.InstitutionMergeService;
import org.gbif.registry.service.collections.merge.MergeService;
import org.gbif.registry.ws.client.collections.InstitutionClient;
import org.gbif.ws.client.filter.SimplePrincipalProvider;

Expand All @@ -36,6 +39,8 @@ public class InstitutionResourceIT extends PrimaryCollectionEntityResourceIT<Ins

@MockBean private InstitutionDuplicatesService institutionDuplicatesService;

@MockBean private InstitutionMergeService institutionMergeService;

@Autowired
public InstitutionResourceIT(
SimplePrincipalProvider simplePrincipalProvider,
Expand Down Expand Up @@ -102,7 +107,21 @@ public void listDeletedTest() {
assertEquals(institutions.size(), result.getResults().size());
}

// TODO: merge, suggestions
@Test
public void convertToCollectionTest() {
UUID convertedCollectionKey = UUID.randomUUID();
when(institutionMergeService.convertToCollection(any(UUID.class), any(UUID.class), anyString()))
.thenReturn(convertedCollectionKey);

ConvertToCollectionParams params = new ConvertToCollectionParams();
params.setInstitutionForNewCollectionKey(UUID.randomUUID());
params.setNameForNewInstitution("name");

assertEquals(
convertedCollectionKey, getClient().convertToCollection(UUID.randomUUID(), params));
}

// TODO: suggestions

@Override
protected PrimaryCollectionEntityService<Institution> getMockPrimaryEntityService() {
Expand All @@ -114,6 +133,11 @@ protected DuplicatesService getMockDuplicatesService() {
return institutionDuplicatesService;
}

@Override
protected MergeService<Institution> getMockMergeService() {
return institutionMergeService;
}

protected InstitutionClient getClient() {
return (InstitutionClient) baseClient;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import org.gbif.api.model.collections.duplicates.Duplicate;
import org.gbif.api.model.collections.duplicates.DuplicatesRequest;
import org.gbif.api.model.collections.duplicates.DuplicatesResult;
import org.gbif.api.model.collections.merge.MergeParams;
import org.gbif.api.model.registry.Commentable;
import org.gbif.api.model.registry.Identifiable;
import org.gbif.api.model.registry.LenientEquals;
Expand All @@ -34,6 +35,7 @@
import org.gbif.registry.persistence.mapper.collections.params.DuplicatesSearchParams;
import org.gbif.registry.search.test.EsManageServer;
import org.gbif.registry.service.collections.duplicates.DuplicatesService;
import org.gbif.registry.service.collections.merge.MergeService;
import org.gbif.registry.ws.client.collections.BaseCollectionEntityClient;
import org.gbif.registry.ws.client.collections.PrimaryCollectionEntityClient;
import org.gbif.ws.client.filter.SimplePrincipalProvider;
Expand Down Expand Up @@ -185,11 +187,23 @@ public void possibleDuplicatesTest() {
assertEquals(result.getDuplicates().size(), clientResult.getDuplicates().size());
}

@Test
public void mergeTest() {
doNothing().when(getMockMergeService()).merge(any(UUID.class), any(UUID.class));

MergeParams mergeParams = new MergeParams();
mergeParams.setReplacementEntityKey(UUID.randomUUID());
assertDoesNotThrow(
() -> getPrimaryCollectionEntityClient().merge(UUID.randomUUID(), mergeParams));
}

protected PrimaryCollectionEntityClient<T> getPrimaryCollectionEntityClient() {
return (PrimaryCollectionEntityClient<T>) baseClient;
}

protected abstract PrimaryCollectionEntityService<T> getMockPrimaryEntityService();

protected abstract DuplicatesService getMockDuplicatesService();

protected abstract MergeService<T> getMockMergeService();
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,19 @@
package org.gbif.registry.ws.client.collections;

import org.gbif.api.model.collections.Institution;
import org.gbif.api.model.collections.merge.ConvertToCollectionParams;
import org.gbif.api.model.collections.request.InstitutionSearchRequest;
import org.gbif.api.model.common.paging.Pageable;
import org.gbif.api.model.common.paging.PagingResponse;
import org.gbif.api.model.registry.search.collections.KeyCodeNameResult;

import java.util.List;
import java.util.UUID;

import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
Expand All @@ -50,4 +54,13 @@ public interface InstitutionClient extends PrimaryCollectionEntityClient<Institu
produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
List<KeyCodeNameResult> suggest(@RequestParam(value = "q", required = false) String q);

@RequestMapping(
method = RequestMethod.POST,
value = "{key}/convertToCollection",
produces = MediaType.APPLICATION_JSON_VALUE,
consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
UUID convertToCollection(
@PathVariable("key") UUID entityKey, @RequestBody ConvertToCollectionParams params);
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import org.gbif.api.model.collections.Person;
import org.gbif.api.model.collections.duplicates.DuplicatesRequest;
import org.gbif.api.model.collections.duplicates.DuplicatesResult;
import org.gbif.api.model.collections.merge.MergeParams;
import org.gbif.api.model.registry.Identifiable;
import org.gbif.api.model.registry.MachineTaggable;
import org.gbif.api.model.registry.Taggable;
Expand Down Expand Up @@ -83,4 +84,10 @@ void deleteOccurrenceMapping(
produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
DuplicatesResult findPossibleDuplicates(@SpringQueryMap DuplicatesRequest request);

@RequestMapping(
method = RequestMethod.POST,
value = "{key}/merge",
consumes = MediaType.APPLICATION_JSON_VALUE)
void merge(@PathVariable("key") UUID entityKey, @RequestBody MergeParams params);
}

0 comments on commit 1ea35d6

Please sign in to comment.