Coverage Summary for Class: TestRemoveIdentifierProperty (org.umlg.sqlg.test.mod)
Class |
Method, %
|
Line, %
|
TestRemoveIdentifierProperty |
100%
(3/3)
|
91.7%
(22/24)
|
TestRemoveIdentifierProperty$1 |
100%
(1/1)
|
100%
(3/3)
|
TestRemoveIdentifierProperty$2 |
100%
(1/1)
|
100%
(3/3)
|
Total |
100%
(5/5)
|
93.3%
(28/30)
|
package org.umlg.sqlg.test.mod;
import org.apache.commons.collections4.set.ListOrderedSet;
import org.junit.Assert;
import org.junit.Test;
import org.umlg.sqlg.structure.PropertyDefinition;
import org.umlg.sqlg.structure.PropertyType;
import org.umlg.sqlg.structure.topology.EdgeLabel;
import org.umlg.sqlg.structure.topology.PropertyColumn;
import org.umlg.sqlg.structure.topology.VertexLabel;
import org.umlg.sqlg.test.BaseTest;
import java.util.LinkedHashMap;
import java.util.List;
public class TestRemoveIdentifierProperty extends BaseTest {
@Test
public void testRemoveIdentifierPropertyFromVertexLabel() {
this.sqlgGraph.getTopology().getPublicSchema()
.ensureVertexLabelExist("A", new LinkedHashMap<>() {{
put("id1", PropertyDefinition.of(PropertyType.varChar(10)));
put("id2", PropertyDefinition.of(PropertyType.varChar(10)));
}},
ListOrderedSet.listOrderedSet(List.of("id1", "id2"))
);
this.sqlgGraph.tx().commit();
VertexLabel aVertexLabel = this.sqlgGraph.getTopology().getPublicSchema().getVertexLabel("A").orElseThrow();
PropertyColumn propertyColumn = aVertexLabel.getProperty("id1").orElseThrow();
try {
propertyColumn.remove();
Assert.fail("Identifier properties are not allowed to be remove.");
} catch (IllegalStateException e) {
Assert.assertEquals("Identifier column 'id1' may not be removed.", e.getMessage());
}
this.sqlgGraph.tx().rollback();
}
@Test
public void testRemoveIdentifierPropertyFromEdgeLabel() {
VertexLabel aVertexLabel = this.sqlgGraph.getTopology().getPublicSchema().ensureVertexLabelExist("A");
VertexLabel bVertexLabel = this.sqlgGraph.getTopology().getPublicSchema().ensureVertexLabelExist("B");
aVertexLabel.ensureEdgeLabelExist("ab", bVertexLabel, new LinkedHashMap<>() {{
put("id1", PropertyDefinition.of(PropertyType.varChar(10)));
put("id2", PropertyDefinition.of(PropertyType.varChar(10)));
}},
ListOrderedSet.listOrderedSet(List.of("id1", "id2"))
);
this.sqlgGraph.tx().commit();
EdgeLabel abEdgeLabel = this.sqlgGraph.getTopology().getPublicSchema().getEdgeLabel("ab").orElseThrow();
PropertyColumn propertyColumn = abEdgeLabel.getProperty("id1").orElseThrow();
try {
propertyColumn.remove();
Assert.fail("Identifier properties are not allowed to be remove.");
} catch (IllegalStateException e) {
Assert.assertEquals("Identifier column 'id1' may not be removed.", e.getMessage());
}
this.sqlgGraph.tx().rollback();
}
}