]> gerrit.simantics Code Review - simantics/platform.git/blob - tests/org.simantics.db.tests/src/org/simantics/db/tests/api/write/claim/WriteWithMultipleInverses.java
Added missing org.simantics.db.{tests,testing} plug-ins.
[simantics/platform.git] / tests / org.simantics.db.tests / src / org / simantics / db / tests / api / write / claim / WriteWithMultipleInverses.java
1 package org.simantics.db.tests.api.write.claim;
2
3 import java.util.ArrayList;
4 import java.util.Collection;
5
6 import org.junit.Test;
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;
15
16 public class WriteWithMultipleInverses extends ExistingDatabaseTest {
17
18         @Test
19         @Fails
20         public void test() throws Exception{
21
22                 final Collection<Resource> predicates = getSession().syncRequest(new WriteResultRequest<Collection<Resource>>() {
23                     @Override
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);
35                         }
36                         return result;
37                     }
38                 });
39                 
40                 checkException();
41                 
42                 try {
43         getSession().syncRequest(new WriteQuery(this) {
44                 
45             @Override
46             public void run(WriteGraph g) throws Throwable {
47
48                 for(Resource predicate : predicates)
49                         g.claim(predicate, predicate, predicate);
50                 
51             }
52             
53         });
54         
55                 } catch (DatabaseException e) {
56                         return;
57                 }
58         
59                 fail("Write should throw.");
60                 
61         }
62
63 }