Skip to content

Commit 7f4dd25

Browse files
author
Jorrit Poelen
committed
sort alternative identifier Zenodo query
1 parent dee8ef6 commit 7f4dd25

File tree

2 files changed

+33
-2
lines changed

2 files changed

+33
-2
lines changed

preston-cmd/src/main/java/bio/guoda/preston/zenodo/ZenodoUtils.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -307,6 +307,8 @@ private static String getQueryForIds(List<String> ids) {
307307
return ids.stream()
308308
.map(JavaScriptAndPythonFriendlyURLEncodingUtil::urlEncode)
309309
.map(id -> "alternate.identifier:%22" + id + "%22")
310+
.distinct()
311+
.sorted()
310312
.collect(Collectors.joining("%20AND%20"));
311313
}
312314

preston-zenodo/src/test/java/bio/guoda/preston/zenodo/ZenodoUtilsTest.java

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,21 @@ public class ZenodoUtilsTest {
2121

2222

2323
@Test
24-
public void queryForExistingRecords() {
24+
public void queryForExistingRecordsDifferentIds() {
25+
ZenodoContext ctx = new ZenodoContext("secret", "https://sandbox.zenodo.org", Arrays.asList("community 1", "community 2"));
26+
IRI queryForExistingDepositions = ZenodoUtils.getQueryForExistingRecords(
27+
ctx,
28+
Arrays.asList("foo:bar", "foo:baz"), ""
29+
);
30+
31+
assertThat(
32+
queryForExistingDepositions.getIRIString(),
33+
is("https://sandbox.zenodo.org/api/records?communities=community%201%2Ccommunity%202&all_versions=false&q=alternate.identifier:%22foo%3Abar%22%20AND%20alternate.identifier:%22foo%3Abaz%22")
34+
);
35+
}
36+
37+
@Test
38+
public void queryForExistingRecordsIdenticalIds() {
2539
ZenodoContext ctx = new ZenodoContext("secret", "https://sandbox.zenodo.org", Arrays.asList("community 1", "community 2"));
2640
IRI queryForExistingDepositions = ZenodoUtils.getQueryForExistingRecords(
2741
ctx,
@@ -30,7 +44,22 @@ public void queryForExistingRecords() {
3044

3145
assertThat(
3246
queryForExistingDepositions.getIRIString(),
33-
is("https://sandbox.zenodo.org/api/records?communities=community%201%2Ccommunity%202&all_versions=false&q=alternate.identifier:%22foo%3Abar%22%20AND%20alternate.identifier:%22foo%3Abar%22")
47+
is("https://sandbox.zenodo.org/api/records?communities=community%201%2Ccommunity%202&all_versions=false&q=alternate.identifier:%22foo%3Abar%22")
48+
);
49+
}
50+
51+
@Test
52+
public void queryForExistingRecordsMatchingPrefix() {
53+
ZenodoContext ctx = new ZenodoContext("secret", "https://sandbox.zenodo.org", Arrays.asList("community 1", "community 2"));
54+
IRI queryForExistingDepositions = ZenodoUtils.getQueryForExistingRecords(
55+
ctx,
56+
Arrays.asList("foo:bar", "foo:bar:1234"),
57+
""
58+
);
59+
60+
assertThat(
61+
queryForExistingDepositions.getIRIString(),
62+
is("https://sandbox.zenodo.org/api/records?communities=community%201%2Ccommunity%202&all_versions=false&q=alternate.identifier:%22foo%3Abar%22")
3463
);
3564
}
3665

0 commit comments

Comments
 (0)