1 package org.simantics.db.tests.api.write.claim;
3 import java.util.ArrayList;
4 import java.util.Collection;
7 import org.simantics.db.Resource;
8 import org.simantics.db.WriteGraph;
9 import org.simantics.db.common.request.WriteResultRequest;
10 import org.simantics.db.exception.DatabaseException;
11 import org.simantics.db.testing.annotation.Fails;
12 import org.simantics.db.testing.base.ExistingDatabaseTest;
13 import org.simantics.db.testing.common.WriteQuery;
14 import org.simantics.layer0.Layer0;
16 public class WriteWithMultipleInverses extends ExistingDatabaseTest {
20 public void test() throws Exception{
22 final Collection<Resource> predicates = getSession().syncRequest(new WriteResultRequest<Collection<Resource>>() {
24 public Collection<Resource> perform(WriteGraph g) throws DatabaseException {
25 Layer0 L0 = Layer0.getInstance(g);
26 Collection<Resource> result = new ArrayList<Resource>();
27 for(int i=0;i<1;i++) {
28 Resource predicate = g.newResource();
29 g.claim(predicate, L0.SubrelationOf, null, L0.IsRelatedTo);
30 g.claim(predicate, L0.InverseOf, null, L0.IsRelatedTo);
31 g.claim(predicate, L0.InverseOf, null, L0.IsWeaklyRelatedTo);
32 g.claim(predicate, L0.InverseOf, null, L0.IsComposedOf);
33 g.claim(predicate, L0.InverseOf, null, L0.IsDependencyOf);
34 result.add(predicate);
43 getSession().syncRequest(new WriteQuery(this) {
46 public void run(WriteGraph g) throws Throwable {
48 for(Resource predicate : predicates)
49 g.claim(predicate, predicate, predicate);
55 } catch (DatabaseException e) {
59 fail("Write should throw.");