mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-18 07:23:08 +00:00
Merge pull request #9203 from philipprumpf/issue-9202
CrossRefImport: ignore empty responses rather than generating empty phantom ImportRecords
This commit is contained in:
@@ -162,8 +162,10 @@ public class CrossRefImportMetadataSourceServiceImpl extends AbstractImportMetad
|
|||||||
Iterator<JsonNode> nodes = jsonNode.at("/message/items").iterator();
|
Iterator<JsonNode> nodes = jsonNode.at("/message/items").iterator();
|
||||||
while (nodes.hasNext()) {
|
while (nodes.hasNext()) {
|
||||||
JsonNode node = nodes.next();
|
JsonNode node = nodes.next();
|
||||||
|
if (!node.isMissingNode()) {
|
||||||
results.add(transformSourceRecords(node.toString()));
|
results.add(transformSourceRecords(node.toString()));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -196,7 +198,9 @@ public class CrossRefImportMetadataSourceServiceImpl extends AbstractImportMetad
|
|||||||
String responseString = liveImportClient.executeHttpGetRequest(1000, uriBuilder.toString(), params);
|
String responseString = liveImportClient.executeHttpGetRequest(1000, uriBuilder.toString(), params);
|
||||||
JsonNode jsonNode = convertStringJsonToJsonNode(responseString);
|
JsonNode jsonNode = convertStringJsonToJsonNode(responseString);
|
||||||
JsonNode messageNode = jsonNode.at("/message");
|
JsonNode messageNode = jsonNode.at("/message");
|
||||||
|
if (!messageNode.isMissingNode()) {
|
||||||
results.add(transformSourceRecords(messageNode.toString()));
|
results.add(transformSourceRecords(messageNode.toString()));
|
||||||
|
}
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -250,8 +254,10 @@ public class CrossRefImportMetadataSourceServiceImpl extends AbstractImportMetad
|
|||||||
Iterator<JsonNode> nodes = jsonNode.at("/message/items").iterator();
|
Iterator<JsonNode> nodes = jsonNode.at("/message/items").iterator();
|
||||||
while (nodes.hasNext()) {
|
while (nodes.hasNext()) {
|
||||||
JsonNode node = nodes.next();
|
JsonNode node = nodes.next();
|
||||||
|
if (!node.isMissingNode()) {
|
||||||
results.add(transformSourceRecords(node.toString()));
|
results.add(transformSourceRecords(node.toString()));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -48,6 +48,24 @@ public class CrossRefImportMetadataSourceServiceIT extends AbstractLiveImportInt
|
|||||||
@Autowired
|
@Autowired
|
||||||
private CrossRefImportMetadataSourceServiceImpl crossRefServiceImpl;
|
private CrossRefImportMetadataSourceServiceImpl crossRefServiceImpl;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void crossRefImportMetadataGetNoRecordsTest() throws Exception {
|
||||||
|
context.turnOffAuthorisationSystem();
|
||||||
|
CloseableHttpClient originalHttpClient = liveImportClientImpl.getHttpClient();
|
||||||
|
CloseableHttpClient httpClient = Mockito.mock(CloseableHttpClient.class);
|
||||||
|
try {
|
||||||
|
liveImportClientImpl.setHttpClient(httpClient);
|
||||||
|
CloseableHttpResponse response = mockResponse("" , 404, "Not Found");
|
||||||
|
when(httpClient.execute(ArgumentMatchers.any())).thenReturn(response);
|
||||||
|
|
||||||
|
context.restoreAuthSystemState();
|
||||||
|
Collection<ImportRecord> recordsImported = crossRefServiceImpl.getRecords("test query", 0, 2);
|
||||||
|
assertEquals(0, recordsImported.size());
|
||||||
|
} finally {
|
||||||
|
liveImportClientImpl.setHttpClient(originalHttpClient);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void crossRefImportMetadataGetRecordsTest() throws Exception {
|
public void crossRefImportMetadataGetRecordsTest() throws Exception {
|
||||||
context.turnOffAuthorisationSystem();
|
context.turnOffAuthorisationSystem();
|
||||||
|
Reference in New Issue
Block a user