forked from D-Net/dnet-hadoop
Merge pull request '#9839: include claimed affiliation relationships' (#476) from claim-orgs into beta
Reviewed-on: D-Net/dnet-hadoop#476
This commit is contained in:
commit
46dbb62598
|
@ -519,6 +519,28 @@ public class MigrateDbEntitiesApplication extends AbstractMigrationApplication i
|
||||||
r1 = setRelationSemantic(r1, RESULT_RESULT, PUBLICATION_DATASET, IS_RELATED_TO);
|
r1 = setRelationSemantic(r1, RESULT_RESULT, PUBLICATION_DATASET, IS_RELATED_TO);
|
||||||
r2 = setRelationSemantic(r2, RESULT_RESULT, PUBLICATION_DATASET, IS_RELATED_TO);
|
r2 = setRelationSemantic(r2, RESULT_RESULT, PUBLICATION_DATASET, IS_RELATED_TO);
|
||||||
break;
|
break;
|
||||||
|
case "resultOrganization_affiliation_isAuthorInstitutionOf":
|
||||||
|
if (!"organization".equals(sourceType)) {
|
||||||
|
throw new IllegalStateException(
|
||||||
|
String
|
||||||
|
.format(
|
||||||
|
"invalid claim, sourceId: %s, targetId: %s, semantics: %s", sourceId, targetId,
|
||||||
|
semantics));
|
||||||
|
}
|
||||||
|
r1 = setRelationSemantic(r1, RESULT_ORGANIZATION, AFFILIATION, IS_AUTHOR_INSTITUTION_OF);
|
||||||
|
r2 = setRelationSemantic(r2, RESULT_ORGANIZATION, AFFILIATION, HAS_AUTHOR_INSTITUTION);
|
||||||
|
break;
|
||||||
|
case "resultOrganization_affiliation_hasAuthorInstitution":
|
||||||
|
if (!"organization".equals(targetType)) {
|
||||||
|
throw new IllegalStateException(
|
||||||
|
String
|
||||||
|
.format(
|
||||||
|
"invalid claim, sourceId: %s, targetId: %s, semantics: %s", sourceId, targetId,
|
||||||
|
semantics));
|
||||||
|
}
|
||||||
|
r1 = setRelationSemantic(r1, RESULT_ORGANIZATION, AFFILIATION, HAS_AUTHOR_INSTITUTION);
|
||||||
|
r2 = setRelationSemantic(r2, RESULT_ORGANIZATION, AFFILIATION, IS_AUTHOR_INSTITUTION_OF);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
throw new IllegalArgumentException("claim semantics not managed: " + semantics);
|
throw new IllegalArgumentException("claim semantics not managed: " + semantics);
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,6 +16,8 @@ import java.util.Objects;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import eu.dnetlib.dhp.schema.common.ModelSupport;
|
||||||
|
import eu.dnetlib.dhp.schema.common.RelationInverse;
|
||||||
import org.apache.commons.io.IOUtils;
|
import org.apache.commons.io.IOUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
@ -364,6 +366,39 @@ class MigrateDbEntitiesApplicationTest {
|
||||||
assertValidId(r1.getCollectedfrom().get(0).getKey());
|
assertValidId(r1.getCollectedfrom().get(0).getKey());
|
||||||
assertValidId(r2.getCollectedfrom().get(0).getKey());
|
assertValidId(r2.getCollectedfrom().get(0).getKey());
|
||||||
}
|
}
|
||||||
|
@Test
|
||||||
|
void testProcessClaims_affiliation() throws Exception {
|
||||||
|
final List<TypedField> fields = prepareMocks("claimsrel_resultset_affiliation.json");
|
||||||
|
|
||||||
|
final List<Oaf> list = app.processClaims(rs);
|
||||||
|
|
||||||
|
assertEquals(2, list.size());
|
||||||
|
verifyMocks(fields);
|
||||||
|
|
||||||
|
assertTrue(list.get(0) instanceof Relation);
|
||||||
|
assertTrue(list.get(1) instanceof Relation);
|
||||||
|
|
||||||
|
final Relation r1 = (Relation) list.get(0);
|
||||||
|
final Relation r2 = (Relation) list.get(1);
|
||||||
|
|
||||||
|
assertValidId(r1.getSource());
|
||||||
|
assertValidId(r1.getTarget());
|
||||||
|
assertValidId(r2.getSource());
|
||||||
|
assertValidId(r2.getTarget());
|
||||||
|
assertNotNull(r1.getDataInfo());
|
||||||
|
assertNotNull(r2.getDataInfo());
|
||||||
|
assertNotNull(r1.getDataInfo().getTrust());
|
||||||
|
assertNotNull(r2.getDataInfo().getTrust());
|
||||||
|
assertEquals(r1.getSource(), r2.getTarget());
|
||||||
|
assertEquals(r2.getSource(), r1.getTarget());
|
||||||
|
assertTrue(StringUtils.isNotBlank(r1.getRelClass()));
|
||||||
|
assertTrue(StringUtils.isNotBlank(r2.getRelClass()));
|
||||||
|
assertTrue(StringUtils.isNotBlank(r1.getRelType()));
|
||||||
|
assertTrue(StringUtils.isNotBlank(r2.getRelType()));
|
||||||
|
|
||||||
|
assertValidId(r1.getCollectedfrom().get(0).getKey());
|
||||||
|
assertValidId(r2.getCollectedfrom().get(0).getKey());
|
||||||
|
}
|
||||||
|
|
||||||
private List<TypedField> prepareMocks(final String jsonFile) throws IOException, SQLException {
|
private List<TypedField> prepareMocks(final String jsonFile) throws IOException, SQLException {
|
||||||
final String json = IOUtils.toString(getClass().getResourceAsStream(jsonFile));
|
final String json = IOUtils.toString(getClass().getResourceAsStream(jsonFile));
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"field": "source_type",
|
||||||
|
"type": "string",
|
||||||
|
"value": "organization"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"field": "source_id",
|
||||||
|
"type": "string",
|
||||||
|
"value": "openorgs____::b5ca9d4340e26454e367e2908ef3872f"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"field": "target_type",
|
||||||
|
"type": "string",
|
||||||
|
"value": "software"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"field": "target_id",
|
||||||
|
"type": "string",
|
||||||
|
"value": "userclaim___::bde53826d07c8cf47c99222a375cd2e8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"field": "semantics",
|
||||||
|
"type": "string",
|
||||||
|
"value": "resultOrganization_affiliation_isAuthorInstitutionOf"
|
||||||
|
}
|
||||||
|
]
|
Loading…
Reference in New Issue