Skip to content

Commit 0832d84

Browse files
authored
Merge pull request #185 from kit-data-manager/fix-48-entities-must-not-be-root
fix: RootDataEntity identifier is not allowed for other entities.
2 parents 913dc4f + 1267fbc commit 0832d84

File tree

3 files changed

+17
-5
lines changed

3 files changed

+17
-5
lines changed

src/main/java/edu/kit/datamanager/ro_crate/entities/AbstractEntity.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import com.fasterxml.jackson.databind.node.ArrayNode;
99
import com.fasterxml.jackson.databind.node.ObjectNode;
1010

11+
import edu.kit.datamanager.ro_crate.entities.data.RootDataEntity;
1112
import edu.kit.datamanager.ro_crate.entities.serializers.ObjectNodeSerializer;
1213
import edu.kit.datamanager.ro_crate.entities.validation.EntityValidation;
1314
import edu.kit.datamanager.ro_crate.entities.validation.JsonSchemaValidation;
@@ -363,7 +364,7 @@ protected String getId() {
363364
* @return the generic builder.
364365
*/
365366
public T setId(String id) {
366-
if (id != null) {
367+
if (id != null && !id.equals(RootDataEntity.ID)) {
367368
if (IdentifierUtils.isValidUri(id)) {
368369
this.id = id;
369370
} else {

src/main/java/edu/kit/datamanager/ro_crate/entities/data/RootDataEntity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
*/
1010
public class RootDataEntity extends DataSetEntity {
1111

12-
private static final String ID = "./";
12+
public static final String ID = "./";
1313

1414
public RootDataEntity(AbstractDataSetBuilder<?> entityBuilder) {
1515
super(entityBuilder);

src/test/java/edu/kit/datamanager/ro_crate/entities/data/DataSetEntityTest.java

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,36 @@
22

33
import com.fasterxml.jackson.databind.ObjectMapper;
44
import com.fasterxml.jackson.databind.node.ObjectNode;
5-
import static org.junit.jupiter.api.Assertions.assertEquals;
6-
import static org.junit.jupiter.api.Assertions.assertTrue;
75

86
import java.io.IOException;
97

108
import edu.kit.datamanager.ro_crate.HelpFunctions;
119
import edu.kit.datamanager.ro_crate.objectmapper.MyObjectMapper;
1210
import java.net.URI;
1311
import java.nio.file.Paths;
14-
import static org.junit.jupiter.api.Assertions.assertNotNull;
12+
import java.util.Objects;
1513

1614
import org.junit.jupiter.api.Test;
1715

16+
import static org.junit.jupiter.api.Assertions.*;
17+
1818
/**
1919
* @author Nikola Tzotchev on 5.2.2022 г.
2020
* @version 1
2121
*/
2222
public class DataSetEntityTest {
2323

24+
@Test
25+
void testImpossibleRootId() {
26+
DataSetEntity e = new DataSetEntity.DataSetBuilder()
27+
.setId("./")
28+
.addProperty("not_root", true)
29+
.build();
30+
assertNotNull(e.getId());
31+
assertFalse(e.getId().isBlank());
32+
assertNotEquals(RootDataEntity.ID, e.getId());
33+
}
34+
2435
@Test
2536
void testSimpleDirDeserialization() throws IOException {
2637

0 commit comments

Comments
 (0)