mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-08 02:24:18 +00:00
[CST-5246] Added integration tests for search topics by source
This commit is contained in:
@@ -107,8 +107,7 @@ public class NBEventServiceImpl implements NBEventService {
|
|||||||
solrQuery.setRows(0);
|
solrQuery.setRows(0);
|
||||||
solrQuery.setQuery("*:*");
|
solrQuery.setQuery("*:*");
|
||||||
solrQuery.setFacet(true);
|
solrQuery.setFacet(true);
|
||||||
// we would like to get eventually topic that has no longer active nb events
|
solrQuery.setFacetMinCount(1);
|
||||||
solrQuery.setFacetMinCount(0);
|
|
||||||
solrQuery.addFacetField(TOPIC);
|
solrQuery.addFacetField(TOPIC);
|
||||||
QueryResponse response;
|
QueryResponse response;
|
||||||
try {
|
try {
|
||||||
@@ -125,8 +124,7 @@ public class NBEventServiceImpl implements NBEventService {
|
|||||||
solrQuery.setRows(0);
|
solrQuery.setRows(0);
|
||||||
solrQuery.setQuery("*:*");
|
solrQuery.setQuery("*:*");
|
||||||
solrQuery.setFacet(true);
|
solrQuery.setFacet(true);
|
||||||
// we would like to get eventually topic that has no longer active nb events
|
solrQuery.setFacetMinCount(1);
|
||||||
solrQuery.setFacetMinCount(0);
|
|
||||||
solrQuery.addFacetField(TOPIC);
|
solrQuery.addFacetField(TOPIC);
|
||||||
solrQuery.addFilterQuery("source:" + source);
|
solrQuery.addFilterQuery("source:" + source);
|
||||||
QueryResponse response;
|
QueryResponse response;
|
||||||
@@ -164,8 +162,7 @@ public class NBEventServiceImpl implements NBEventService {
|
|||||||
solrQuery.setRows(0);
|
solrQuery.setRows(0);
|
||||||
solrQuery.setQuery(TOPIC + ":" + topicId.replaceAll("!", "/"));
|
solrQuery.setQuery(TOPIC + ":" + topicId.replaceAll("!", "/"));
|
||||||
solrQuery.setFacet(true);
|
solrQuery.setFacet(true);
|
||||||
// we would like to get eventually topic that has no longer active nb events
|
solrQuery.setFacetMinCount(1);
|
||||||
solrQuery.setFacetMinCount(0);
|
|
||||||
solrQuery.addFacetField(TOPIC);
|
solrQuery.addFacetField(TOPIC);
|
||||||
QueryResponse response;
|
QueryResponse response;
|
||||||
try {
|
try {
|
||||||
@@ -194,16 +191,20 @@ public class NBEventServiceImpl implements NBEventService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<NBTopic> findAllTopicsBySource(String source, long offset, long count) {
|
public List<NBTopic> findAllTopicsBySource(String source, long offset, long count) {
|
||||||
|
|
||||||
|
if (source != null && isNotSupportedSource(source)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
SolrQuery solrQuery = new SolrQuery();
|
SolrQuery solrQuery = new SolrQuery();
|
||||||
solrQuery.setRows(0);
|
solrQuery.setRows(0);
|
||||||
solrQuery.setQuery("*:*");
|
solrQuery.setQuery("*:*");
|
||||||
solrQuery.setFacet(true);
|
solrQuery.setFacet(true);
|
||||||
// we would like to get eventually topic that has no longer active nb events
|
solrQuery.setFacetMinCount(1);
|
||||||
solrQuery.setFacetMinCount(0);
|
|
||||||
solrQuery.setFacetLimit((int) (offset + count));
|
solrQuery.setFacetLimit((int) (offset + count));
|
||||||
solrQuery.addFacetField(TOPIC);
|
solrQuery.addFacetField(TOPIC);
|
||||||
if (source != null) {
|
if (source != null) {
|
||||||
solrQuery.addFilterQuery("source:" + source);
|
solrQuery.addFilterQuery(SOURCE + ":" + source);
|
||||||
}
|
}
|
||||||
QueryResponse response;
|
QueryResponse response;
|
||||||
List<NBTopic> nbTopics = null;
|
List<NBTopic> nbTopics = null;
|
||||||
@@ -236,7 +237,7 @@ public class NBEventServiceImpl implements NBEventService {
|
|||||||
UpdateRequest updateRequest = new UpdateRequest();
|
UpdateRequest updateRequest = new UpdateRequest();
|
||||||
String topic = dto.getTopic();
|
String topic = dto.getTopic();
|
||||||
|
|
||||||
if (!ArrayUtils.contains(getSupportedSources(), dto.getSource())) {
|
if (isNotSupportedSource(dto.getSource())) {
|
||||||
throw new IllegalArgumentException("The source of the given event is not supported: " + dto.getSource());
|
throw new IllegalArgumentException("The source of the given event is not supported: " + dto.getSource());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -374,7 +375,7 @@ public class NBEventServiceImpl implements NBEventService {
|
|||||||
@Override
|
@Override
|
||||||
public NBSource findSource(String sourceName) {
|
public NBSource findSource(String sourceName) {
|
||||||
|
|
||||||
if (!ArrayUtils.contains(getSupportedSources(), sourceName)) {
|
if (isNotSupportedSource(sourceName)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -382,7 +383,7 @@ public class NBEventServiceImpl implements NBEventService {
|
|||||||
solrQuery.setRows(0);
|
solrQuery.setRows(0);
|
||||||
solrQuery.addFilterQuery(SOURCE + ":" + sourceName);
|
solrQuery.addFilterQuery(SOURCE + ":" + sourceName);
|
||||||
solrQuery.setFacet(true);
|
solrQuery.setFacet(true);
|
||||||
solrQuery.setFacetMinCount(0);
|
solrQuery.setFacetMinCount(1);
|
||||||
solrQuery.addFacetField(SOURCE);
|
solrQuery.addFacetField(SOURCE);
|
||||||
|
|
||||||
QueryResponse response;
|
QueryResponse response;
|
||||||
@@ -424,6 +425,10 @@ public class NBEventServiceImpl implements NBEventService {
|
|||||||
return getSupportedSources().length;
|
return getSupportedSources().length;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean isNotSupportedSource(String source) {
|
||||||
|
return !ArrayUtils.contains(getSupportedSources(), source);
|
||||||
|
}
|
||||||
|
|
||||||
private String[] getSupportedSources() {
|
private String[] getSupportedSources() {
|
||||||
return configurationService.getArrayProperty("nbevent.sources", new String[] { NBEvent.OPENAIRE_SOURCE });
|
return configurationService.getArrayProperty("nbevent.sources", new String[] { NBEvent.OPENAIRE_SOURCE });
|
||||||
}
|
}
|
||||||
|
@@ -11,6 +11,7 @@ import java.util.List;
|
|||||||
|
|
||||||
import org.dspace.app.nbevent.NBTopic;
|
import org.dspace.app.nbevent.NBTopic;
|
||||||
import org.dspace.app.nbevent.service.NBEventService;
|
import org.dspace.app.nbevent.service.NBEventService;
|
||||||
|
import org.dspace.app.rest.Parameter;
|
||||||
import org.dspace.app.rest.SearchRestMethod;
|
import org.dspace.app.rest.SearchRestMethod;
|
||||||
import org.dspace.app.rest.model.NBTopicRest;
|
import org.dspace.app.rest.model.NBTopicRest;
|
||||||
import org.dspace.core.Context;
|
import org.dspace.core.Context;
|
||||||
@@ -55,7 +56,8 @@ public class NBTopicRestRepository extends DSpaceRestRepository<NBTopicRest, Str
|
|||||||
|
|
||||||
@SearchRestMethod(name = "bySource")
|
@SearchRestMethod(name = "bySource")
|
||||||
@PreAuthorize("hasAuthority('ADMIN')")
|
@PreAuthorize("hasAuthority('ADMIN')")
|
||||||
public Page<NBTopicRest> findBySource(Context context, String source, Pageable pageable) {
|
public Page<NBTopicRest> findBySource(Context context,
|
||||||
|
@Parameter(value = "source", required = true) String source, Pageable pageable) {
|
||||||
List<NBTopic> nbTopics = nbEventService.findAllTopicsBySource(source,
|
List<NBTopic> nbTopics = nbEventService.findAllTopicsBySource(source,
|
||||||
pageable.getOffset(), pageable.getPageSize());
|
pageable.getOffset(), pageable.getPageSize());
|
||||||
long count = nbEventService.countTopicsBySource(source);
|
long count = nbEventService.countTopicsBySource(source);
|
||||||
|
@@ -20,9 +20,10 @@ import org.dspace.builder.CollectionBuilder;
|
|||||||
import org.dspace.builder.CommunityBuilder;
|
import org.dspace.builder.CommunityBuilder;
|
||||||
import org.dspace.builder.NBEventBuilder;
|
import org.dspace.builder.NBEventBuilder;
|
||||||
import org.dspace.content.Collection;
|
import org.dspace.content.Collection;
|
||||||
import org.dspace.content.NBEvent;
|
import org.dspace.services.ConfigurationService;
|
||||||
import org.hamcrest.Matchers;
|
import org.hamcrest.Matchers;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Integration tests for {@link NBTopicRestRepository}.
|
* Integration tests for {@link NBTopicRestRepository}.
|
||||||
@@ -32,6 +33,9 @@ import org.junit.Test;
|
|||||||
*/
|
*/
|
||||||
public class NBTopicRestRepositoryIT extends AbstractControllerIntegrationTest {
|
public class NBTopicRestRepositoryIT extends AbstractControllerIntegrationTest {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ConfigurationService configurationService;
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void findAllTest() throws Exception {
|
public void findAllTest() throws Exception {
|
||||||
context.turnOffAuthorisationSystem();
|
context.turnOffAuthorisationSystem();
|
||||||
@@ -39,16 +43,16 @@ public class NBTopicRestRepositoryIT extends AbstractControllerIntegrationTest {
|
|||||||
.withName("Parent Community")
|
.withName("Parent Community")
|
||||||
.build();
|
.build();
|
||||||
Collection col1 = CollectionBuilder.createCollection(context, parentCommunity).withName("Collection 1").build();
|
Collection col1 = CollectionBuilder.createCollection(context, parentCommunity).withName("Collection 1").build();
|
||||||
NBEvent event1 = NBEventBuilder.createTarget(context, col1, "Science and Freedom")
|
NBEventBuilder.createTarget(context, col1, "Science and Freedom")
|
||||||
.withTopic("ENRICH/MISSING/PID")
|
.withTopic("ENRICH/MISSING/PID")
|
||||||
.withMessage("{\"pids[0].type\":\"doi\",\"pids[0].value\":\"10.2307/2144300\"}").build();
|
.withMessage("{\"pids[0].type\":\"doi\",\"pids[0].value\":\"10.2307/2144300\"}").build();
|
||||||
NBEvent event2 = NBEventBuilder.createTarget(context, col1, "Science and Freedom 2")
|
NBEventBuilder.createTarget(context, col1, "Science and Freedom 2")
|
||||||
.withTopic("ENRICH/MISSING/PID")
|
.withTopic("ENRICH/MISSING/PID")
|
||||||
.withMessage("{\"pids[0].type\":\"doi\",\"pids[0].value\":\"10.2307/2144301\"}").build();
|
.withMessage("{\"pids[0].type\":\"doi\",\"pids[0].value\":\"10.2307/2144301\"}").build();
|
||||||
NBEvent event3 = NBEventBuilder.createTarget(context, col1, "Science and Freedom 3")
|
NBEventBuilder.createTarget(context, col1, "Science and Freedom 3")
|
||||||
.withTopic("ENRICH/MORE/PID")
|
.withTopic("ENRICH/MORE/PID")
|
||||||
.withMessage("{\"pids[0].type\":\"pmid\",\"pids[0].value\":\"10.2307/2144302\"}").build();
|
.withMessage("{\"pids[0].type\":\"pmid\",\"pids[0].value\":\"10.2307/2144302\"}").build();
|
||||||
NBEvent event4 = NBEventBuilder.createTarget(context, col1, "Science and Freedom 4")
|
NBEventBuilder.createTarget(context, col1, "Science and Freedom 4")
|
||||||
.withTopic("ENRICH/MISSING/ABSTRACT")
|
.withTopic("ENRICH/MISSING/ABSTRACT")
|
||||||
.withMessage(
|
.withMessage(
|
||||||
"{\"abstracts[0]\": \"Descrizione delle caratteristiche...\"}")
|
"{\"abstracts[0]\": \"Descrizione delle caratteristiche...\"}")
|
||||||
@@ -84,16 +88,16 @@ public class NBTopicRestRepositoryIT extends AbstractControllerIntegrationTest {
|
|||||||
.build();
|
.build();
|
||||||
//create collection
|
//create collection
|
||||||
Collection col1 = CollectionBuilder.createCollection(context, parentCommunity).withName("Collection 1").build();
|
Collection col1 = CollectionBuilder.createCollection(context, parentCommunity).withName("Collection 1").build();
|
||||||
NBEvent event1 = NBEventBuilder.createTarget(context, col1, "Science and Freedom")
|
NBEventBuilder.createTarget(context, col1, "Science and Freedom")
|
||||||
.withTopic("ENRICH/MISSING/PID")
|
.withTopic("ENRICH/MISSING/PID")
|
||||||
.withMessage("{\"pids[0].type\":\"doi\",\"pids[0].value\":\"10.2307/2144300\"}").build();
|
.withMessage("{\"pids[0].type\":\"doi\",\"pids[0].value\":\"10.2307/2144300\"}").build();
|
||||||
NBEvent event2 = NBEventBuilder.createTarget(context, col1, "Science and Freedom 2")
|
NBEventBuilder.createTarget(context, col1, "Science and Freedom 2")
|
||||||
.withTopic("ENRICH/MISSING/PID")
|
.withTopic("ENRICH/MISSING/PID")
|
||||||
.withMessage("{\"pids[0].type\":\"doi\",\"pids[0].value\":\"10.2307/2144301\"}").build();
|
.withMessage("{\"pids[0].type\":\"doi\",\"pids[0].value\":\"10.2307/2144301\"}").build();
|
||||||
NBEvent event3 = NBEventBuilder.createTarget(context, col1, "Science and Freedom 3")
|
NBEventBuilder.createTarget(context, col1, "Science and Freedom 3")
|
||||||
.withTopic("ENRICH/MORE/PID")
|
.withTopic("ENRICH/MORE/PID")
|
||||||
.withMessage("{\"pids[0].type\":\"pmid\",\"pids[0].value\":\"10.2307/2144302\"}").build();
|
.withMessage("{\"pids[0].type\":\"pmid\",\"pids[0].value\":\"10.2307/2144302\"}").build();
|
||||||
NBEvent event4 = NBEventBuilder.createTarget(context, col1, "Science and Freedom 4")
|
NBEventBuilder.createTarget(context, col1, "Science and Freedom 4")
|
||||||
.withTopic("ENRICH/MISSING/ABSTRACT")
|
.withTopic("ENRICH/MISSING/ABSTRACT")
|
||||||
.withMessage(
|
.withMessage(
|
||||||
"{\"abstracts[0]\": \"Descrizione delle caratteristiche...\"}")
|
"{\"abstracts[0]\": \"Descrizione delle caratteristiche...\"}")
|
||||||
@@ -119,16 +123,16 @@ public class NBTopicRestRepositoryIT extends AbstractControllerIntegrationTest {
|
|||||||
.withName("Parent Community")
|
.withName("Parent Community")
|
||||||
.build();
|
.build();
|
||||||
Collection col1 = CollectionBuilder.createCollection(context, parentCommunity).withName("Collection 1").build();
|
Collection col1 = CollectionBuilder.createCollection(context, parentCommunity).withName("Collection 1").build();
|
||||||
NBEvent event1 = NBEventBuilder.createTarget(context, col1, "Science and Freedom")
|
NBEventBuilder.createTarget(context, col1, "Science and Freedom")
|
||||||
.withTopic("ENRICH/MISSING/PID")
|
.withTopic("ENRICH/MISSING/PID")
|
||||||
.withMessage("{\"pids[0].type\":\"doi\",\"pids[0].value\":\"10.2307/2144300\"}").build();
|
.withMessage("{\"pids[0].type\":\"doi\",\"pids[0].value\":\"10.2307/2144300\"}").build();
|
||||||
NBEvent event2 = NBEventBuilder.createTarget(context, col1, "Science and Freedom 2")
|
NBEventBuilder.createTarget(context, col1, "Science and Freedom 2")
|
||||||
.withTopic("ENRICH/MISSING/PID")
|
.withTopic("ENRICH/MISSING/PID")
|
||||||
.withMessage("{\"pids[0].type\":\"doi\",\"pids[0].value\":\"10.2307/2144301\"}").build();
|
.withMessage("{\"pids[0].type\":\"doi\",\"pids[0].value\":\"10.2307/2144301\"}").build();
|
||||||
NBEvent event3 = NBEventBuilder.createTarget(context, col1, "Science and Freedom 3")
|
NBEventBuilder.createTarget(context, col1, "Science and Freedom 3")
|
||||||
.withTopic("ENRICH/MORE/PID")
|
.withTopic("ENRICH/MORE/PID")
|
||||||
.withMessage("{\"pids[0].type\":\"pmid\",\"pids[0].value\":\"10.2307/2144302\"}").build();
|
.withMessage("{\"pids[0].type\":\"pmid\",\"pids[0].value\":\"10.2307/2144302\"}").build();
|
||||||
NBEvent event4 = NBEventBuilder.createTarget(context, col1, "Science and Freedom 4")
|
NBEventBuilder.createTarget(context, col1, "Science and Freedom 4")
|
||||||
.withTopic("ENRICH/MISSING/ABSTRACT")
|
.withTopic("ENRICH/MISSING/ABSTRACT")
|
||||||
.withMessage(
|
.withMessage(
|
||||||
"{\"abstracts[0]\": \"Descrizione delle caratteristiche...\"}")
|
"{\"abstracts[0]\": \"Descrizione delle caratteristiche...\"}")
|
||||||
@@ -148,7 +152,7 @@ public class NBTopicRestRepositoryIT extends AbstractControllerIntegrationTest {
|
|||||||
.withName("Parent Community")
|
.withName("Parent Community")
|
||||||
.build();
|
.build();
|
||||||
Collection col1 = CollectionBuilder.createCollection(context, parentCommunity).withName("Collection 1").build();
|
Collection col1 = CollectionBuilder.createCollection(context, parentCommunity).withName("Collection 1").build();
|
||||||
NBEvent event1 = NBEventBuilder.createTarget(context, col1, "Science and Freedom")
|
NBEventBuilder.createTarget(context, col1, "Science and Freedom")
|
||||||
.withTopic("ENRICH/MISSING/PID").build();
|
.withTopic("ENRICH/MISSING/PID").build();
|
||||||
context.restoreAuthSystemState();
|
context.restoreAuthSystemState();
|
||||||
getClient().perform(get("/api/integration/nbtopics/ENRICH!MISSING!PID")).andExpect(status().isUnauthorized());
|
getClient().perform(get("/api/integration/nbtopics/ENRICH!MISSING!PID")).andExpect(status().isUnauthorized());
|
||||||
@@ -163,7 +167,7 @@ public class NBTopicRestRepositoryIT extends AbstractControllerIntegrationTest {
|
|||||||
.withName("Parent Community")
|
.withName("Parent Community")
|
||||||
.build();
|
.build();
|
||||||
Collection col1 = CollectionBuilder.createCollection(context, parentCommunity).withName("Collection 1").build();
|
Collection col1 = CollectionBuilder.createCollection(context, parentCommunity).withName("Collection 1").build();
|
||||||
NBEvent event1 = NBEventBuilder.createTarget(context, col1, "Science and Freedom")
|
NBEventBuilder.createTarget(context, col1, "Science and Freedom")
|
||||||
.withTopic("ENRICH/MISSING/PID").build();
|
.withTopic("ENRICH/MISSING/PID").build();
|
||||||
context.restoreAuthSystemState();
|
context.restoreAuthSystemState();
|
||||||
String authToken = getAuthToken(eperson.getEmail(), password);
|
String authToken = getAuthToken(eperson.getEmail(), password);
|
||||||
@@ -173,4 +177,97 @@ public class NBTopicRestRepositoryIT extends AbstractControllerIntegrationTest {
|
|||||||
.andExpect(status().isForbidden());
|
.andExpect(status().isForbidden());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void findBySourceTest() throws Exception {
|
||||||
|
context.turnOffAuthorisationSystem();
|
||||||
|
configurationService.setProperty("nbevent.sources",
|
||||||
|
new String[] { "openaire", "test-source", "test-source-2" });
|
||||||
|
parentCommunity = CommunityBuilder.createCommunity(context)
|
||||||
|
.withName("Parent Community")
|
||||||
|
.build();
|
||||||
|
Collection col1 = CollectionBuilder.createCollection(context, parentCommunity).withName("Collection 1").build();
|
||||||
|
NBEventBuilder.createTarget(context, col1, "Science and Freedom")
|
||||||
|
.withTopic("ENRICH/MISSING/PID")
|
||||||
|
.withMessage("{\"pids[0].type\":\"doi\",\"pids[0].value\":\"10.2307/2144300\"}").build();
|
||||||
|
NBEventBuilder.createTarget(context, col1, "Science and Freedom 2")
|
||||||
|
.withTopic("ENRICH/MISSING/PID")
|
||||||
|
.withMessage("{\"pids[0].type\":\"doi\",\"pids[0].value\":\"10.2307/2144301\"}").build();
|
||||||
|
NBEventBuilder.createTarget(context, col1, "Science and Freedom 3")
|
||||||
|
.withTopic("ENRICH/MORE/PID")
|
||||||
|
.withMessage("{\"pids[0].type\":\"pmid\",\"pids[0].value\":\"10.2307/2144302\"}").build();
|
||||||
|
NBEventBuilder.createTarget(context, col1, "Science and Freedom 4")
|
||||||
|
.withTopic("ENRICH/MISSING/ABSTRACT")
|
||||||
|
.withMessage(
|
||||||
|
"{\"abstracts[0]\": \"Descrizione delle caratteristiche...\"}")
|
||||||
|
.build();
|
||||||
|
NBEventBuilder.createTarget(context, col1, "Science and Freedom 5")
|
||||||
|
.withTopic("TEST/TOPIC")
|
||||||
|
.withSource("test-source")
|
||||||
|
.build();
|
||||||
|
NBEventBuilder.createTarget(context, col1, "Science and Freedom 6")
|
||||||
|
.withTopic("TEST/TOPIC")
|
||||||
|
.withSource("test-source")
|
||||||
|
.build();
|
||||||
|
NBEventBuilder.createTarget(context, col1, "Science and Freedom 7")
|
||||||
|
.withTopic("TEST/TOPIC/2")
|
||||||
|
.withSource("test-source")
|
||||||
|
.build();
|
||||||
|
context.restoreAuthSystemState();
|
||||||
|
String authToken = getAuthToken(admin.getEmail(), password);
|
||||||
|
getClient(authToken).perform(get("/api/integration/nbtopics/search/bySource")
|
||||||
|
.param("source", "openaire"))
|
||||||
|
.andExpect(status().isOk())
|
||||||
|
.andExpect(content().contentType(contentType))
|
||||||
|
.andExpect(jsonPath("$._embedded.nbtopics",
|
||||||
|
Matchers.containsInAnyOrder(NBTopicMatcher.matchNBTopicEntry("ENRICH/MISSING/PID", 2),
|
||||||
|
NBTopicMatcher.matchNBTopicEntry("ENRICH/MISSING/ABSTRACT", 1),
|
||||||
|
NBTopicMatcher.matchNBTopicEntry("ENRICH/MORE/PID", 1))))
|
||||||
|
.andExpect(jsonPath("$.page.size", is(20))).andExpect(jsonPath("$.page.totalElements", is(3)));
|
||||||
|
getClient(authToken).perform(get("/api/integration/nbtopics/search/bySource")
|
||||||
|
.param("source", "test-source"))
|
||||||
|
.andExpect(status().isOk())
|
||||||
|
.andExpect(content().contentType(contentType))
|
||||||
|
.andExpect(jsonPath("$._embedded.nbtopics",
|
||||||
|
Matchers.containsInAnyOrder(NBTopicMatcher.matchNBTopicEntry("TEST/TOPIC/2", 1),
|
||||||
|
NBTopicMatcher.matchNBTopicEntry("TEST/TOPIC", 2))))
|
||||||
|
.andExpect(jsonPath("$.page.size", is(20))).andExpect(jsonPath("$.page.totalElements", is(2)));
|
||||||
|
getClient(authToken).perform(get("/api/integration/nbtopics/search/bySource")
|
||||||
|
.param("source", "test-source-2"))
|
||||||
|
.andExpect(status().isOk())
|
||||||
|
.andExpect(content().contentType(contentType))
|
||||||
|
.andExpect(jsonPath("$._embedded.nbtopics").doesNotExist())
|
||||||
|
.andExpect(jsonPath("$.page.size", is(20))).andExpect(jsonPath("$.page.totalElements", is(0)));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void findBySourceUnauthorizedTest() throws Exception {
|
||||||
|
context.turnOffAuthorisationSystem();
|
||||||
|
parentCommunity = CommunityBuilder.createCommunity(context)
|
||||||
|
.withName("Parent Community")
|
||||||
|
.build();
|
||||||
|
Collection col1 = CollectionBuilder.createCollection(context, parentCommunity).withName("Collection 1").build();
|
||||||
|
NBEventBuilder.createTarget(context, col1, "Science and Freedom")
|
||||||
|
.withTopic("ENRICH/MISSING/PID").build();
|
||||||
|
context.restoreAuthSystemState();
|
||||||
|
getClient().perform(get("/api/integration/nbtopics/search/bySource")
|
||||||
|
.param("source", "openaire"))
|
||||||
|
.andExpect(status().isUnauthorized());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void findBySourceForbiddenTest() throws Exception {
|
||||||
|
context.turnOffAuthorisationSystem();
|
||||||
|
parentCommunity = CommunityBuilder.createCommunity(context)
|
||||||
|
.withName("Parent Community")
|
||||||
|
.build();
|
||||||
|
Collection col1 = CollectionBuilder.createCollection(context, parentCommunity).withName("Collection 1").build();
|
||||||
|
NBEventBuilder.createTarget(context, col1, "Science and Freedom")
|
||||||
|
.withTopic("ENRICH/MISSING/PID").build();
|
||||||
|
context.restoreAuthSystemState();
|
||||||
|
String authToken = getAuthToken(eperson.getEmail(), password);
|
||||||
|
getClient(authToken).perform(get("/api/integration/nbtopics/search/bySource")
|
||||||
|
.param("source", "openaire"))
|
||||||
|
.andExpect(status().isForbidden());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user