Skip to content

Commit d3cda46

Browse files
authored
Peer review subject types dissertation to dissertation thesis (#7006)
* Deactivated records should get 409 on GET requests * On Peer reviews, the subject type 'DISSERTATION' should be stored as the V3 version 'DISSERTATION_THESIS' * Fix NPE
1 parent 293f4f5 commit d3cda46

3 files changed

Lines changed: 47 additions & 0 deletions

File tree

orcid-core/src/main/java/org/orcid/core/adapter/converter/PeerReviewSubjectTypeConverter.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ public WorkType convertFrom(String source, Type<WorkType> destinationType) {
1717
try {
1818
return WorkType.valueOf(source);
1919
} catch (IllegalArgumentException e) {
20+
if(org.orcid.jaxb.model.common.WorkType.DISSERTATION_THESIS.name().equals(source)) {
21+
return WorkType.DISSERTATION;
22+
}
2023
return WorkType.OTHER;
2124
}
2225
}

orcid-core/src/main/java/org/orcid/core/adapter/impl/MapperFacadeFactory.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -940,6 +940,13 @@ public void mapAtoB(PeerReview a, PeerReviewEntity b, MappingContext context) {
940940
b.setSubjectTranslatedNameLanguageCode((a.getSubjectName() == null || a.getSubjectName().getTranslatedTitle() == null) ? null
941941
: a.getSubjectName().getTranslatedTitle().getLanguageCode());
942942
b.setSubjectContainerName(a.getSubjectContainerName() == null ? null : a.getSubjectContainerName().getContent());
943+
if(WorkType.DISSERTATION.equals(a.getSubjectType())) {
944+
b.setSubjectType(org.orcid.jaxb.model.common.WorkType.DISSERTATION_THESIS.name());
945+
} else {
946+
if(a.getSubjectType() != null) {
947+
b.setSubjectType(a.getSubjectType().name());
948+
}
949+
}
943950
}
944951
});
945952

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package org.orcid.core.adapter.converter;
2+
3+
import static org.junit.Assert.assertEquals;
4+
5+
import org.junit.Test;
6+
import org.junit.runner.RunWith;
7+
import org.orcid.jaxb.model.record_v2.WorkType;
8+
import org.orcid.test.OrcidJUnit4ClassRunner;
9+
import org.springframework.test.context.ContextConfiguration;
10+
11+
@RunWith(OrcidJUnit4ClassRunner.class)
12+
@ContextConfiguration(locations = { "classpath:test-orcid-core-context.xml" })
13+
public class PeerReviewSubjectTypeConverterTest {
14+
15+
private PeerReviewSubjectTypeConverter peerReviewSubjectTypeConverter = new PeerReviewSubjectTypeConverter();
16+
17+
@Test
18+
public void testConvertTo() {
19+
for(WorkType t : WorkType.values()) {
20+
assertEquals(t.name(), peerReviewSubjectTypeConverter.convertTo(t, null));
21+
}
22+
}
23+
24+
@Test
25+
public void testConvertFrom() {
26+
for(WorkType t : WorkType.values()) {
27+
assertEquals(t, peerReviewSubjectTypeConverter.convertFrom(t.name(), null));
28+
}
29+
30+
assertEquals(WorkType.DISSERTATION, peerReviewSubjectTypeConverter.convertFrom(org.orcid.jaxb.model.common.WorkType.DISSERTATION_THESIS.name(), null));
31+
assertEquals(WorkType.OTHER, peerReviewSubjectTypeConverter.convertFrom(org.orcid.jaxb.model.common.WorkType.ANNOTATION.name(), null));
32+
assertEquals(WorkType.OTHER, peerReviewSubjectTypeConverter.convertFrom(org.orcid.jaxb.model.common.WorkType.DATA_MANAGEMENT_PLAN.name(), null));
33+
assertEquals(WorkType.OTHER, peerReviewSubjectTypeConverter.convertFrom(org.orcid.jaxb.model.common.WorkType.PHYSICAL_OBJECT.name(), null));
34+
assertEquals(WorkType.OTHER, peerReviewSubjectTypeConverter.convertFrom(org.orcid.jaxb.model.common.WorkType.PREPRINT.name(), null));
35+
assertEquals(WorkType.OTHER, peerReviewSubjectTypeConverter.convertFrom(org.orcid.jaxb.model.common.WorkType.SOFTWARE.name(), null));
36+
}
37+
}

0 commit comments

Comments
 (0)