-
Notifications
You must be signed in to change notification settings - Fork 14
/
UpdateOperationsOnGetReferenceRunner.java
127 lines (107 loc) · 5.66 KB
/
UpdateOperationsOnGetReferenceRunner.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
package cz.cvut.kbss.jopa.test.runner;
import cz.cvut.kbss.jopa.test.*;
import cz.cvut.kbss.jopa.test.environment.DataAccessor;
import cz.cvut.kbss.jopa.test.environment.Generators;
import cz.cvut.kbss.jopa.test.environment.PersistenceFactory;
import org.junit.Test;
import org.slf4j.Logger;
import java.util.Collections;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import static org.junit.Assert.*;
public abstract class UpdateOperationsOnGetReferenceRunner extends BaseRunner {
protected UpdateOperationsOnGetReferenceRunner(Logger logger, PersistenceFactory persistenceFactory,
DataAccessor dataAccessor) {
super(logger, persistenceFactory, dataAccessor);
}
@Test
public void getReferenceResultCanBeUsedAsAttributeValueInUpdate() {
this.em = getEntityManager("getReferenceResultCanBeUsedAsAttributeValueInUpdate", true);
entityD.setOwlClassA(null);
persist(entityD, entityA);
em.getTransaction().begin();
final OWLClassD d = em.find(OWLClassD.class, entityD.getUri());
d.setOwlClassA(em.getReference(OWLClassA.class, entityA.getUri()));
em.getTransaction().commit();
final OWLClassD result = em.find(OWLClassD.class, entityD.getUri());
assertNotNull(result.getOwlClassA());
assertEquals(entityA.getUri(), result.getOwlClassA().getUri());
}
@Test
public void getReferenceResultDataAttributesCanBeAssignedNewValuesInUpdate() {
this.em = getEntityManager("getReferenceResultDataAttributesCanBeAssignedNewValuesInUpdate", true);
persist(entityM);
em.getTransaction().begin();
final OWLClassM m = em.getReference(OWLClassM.class, entityM.getKey());
final int iVal = Generators.randomInt();
m.setIntAttribute(iVal);
assertEquals(iVal, m.getIntAttribute().intValue());
final long lVal = System.currentTimeMillis();
m.setLongAttribute(lVal);
final Set<Integer> intSet = IntStream.generate(Generators::randomInt).limit(5).boxed()
.collect(Collectors.toSet());
m.setIntegerSet(intSet);
em.getTransaction().commit();
final OWLClassM result = em.find(OWLClassM.class, entityM.getKey());
assertEquals(iVal, result.getIntAttribute().intValue());
assertEquals(lVal, result.getLongAttribute().longValue());
assertEquals(intSet, result.getIntegerSet());
// Ensure other values were not changed
assertEquals(entityM.getBooleanAttribute(), result.getBooleanAttribute());
assertEquals(entityM.getEnumAttribute(), result.getEnumAttribute());
assertEquals(entityM.getDateAttribute(), result.getDateAttribute());
assertEquals(entityM.getDoubleAttribute(), result.getDoubleAttribute());
}
@Test
public void getReferenceResultObjectAttributesCanBeAssignedNewValuesInUpdate() {
this.em = getEntityManager("getReferenceResultObjectAttributesCanBeAssignedNewValuesInUpdate", true);
entityD.setOwlClassA(null);
persist(entityD, entityA);
em.getTransaction().begin();
final OWLClassD d = em.getReference(OWLClassD.class, entityD.getUri());
final OWLClassA a = em.getReference(OWLClassA.class, entityA.getUri());
d.setOwlClassA(a);
em.getTransaction().commit();
final OWLClassD result = em.find(OWLClassD.class, entityD.getUri());
assertEquals(entityA.getUri(), result.getOwlClassA().getUri());
}
@Test
public void getReferenceResultPluralObjectAttributeCanBeUpdated() {
this.em = getEntityManager("getReferenceResultPluralObjectAttributeCanBeUpdated", true);
final OWLClassJ entityJ = new OWLClassJ(Generators.generateUri());
entityJ.setOwlClassA(Collections.singleton(entityA));
persist(entityJ);
em.getTransaction().begin();
final OWLClassJ j = em.getReference(OWLClassJ.class, entityJ.getUri());
final OWLClassA newA = new OWLClassA(Generators.generateUri());
newA.setStringAttribute("newA");
j.getOwlClassA().add(newA);
em.persist(newA);
em.getTransaction().commit();
final OWLClassJ result = em.find(OWLClassJ.class, entityJ.getUri());
assertEquals(j.getOwlClassA().size(), result.getOwlClassA().size());
assertTrue(j.getOwlClassA().stream().anyMatch(a -> a.getUri().equals(entityA.getUri())));
assertTrue(j.getOwlClassA().stream().anyMatch(a -> a.getUri().equals(newA.getUri())));
}
@Test
public void getReferenceResultListAttributeCanBeUpdated() {
this.em = getEntityManager("getReferenceResultListAttributeCanBeUpdated", true);
final OWLClassK entityK = new OWLClassK();
entityK.setReferencedList(Collections.singletonList(entityE));
entityK.setSimpleList(Collections.singletonList(entityE));
persist(entityK, entityE);
em.getTransaction().begin();
final OWLClassK upd = em.getReference(OWLClassK.class, entityK.getUri());
final OWLClassE newE = new OWLClassE();
upd.getReferencedList().add(newE);
upd.getSimpleList().add(newE);
em.persist(newE);
em.getTransaction().commit();
final OWLClassK result = em.find(OWLClassK.class, entityK.getUri());
assertEquals(upd.getReferencedList().size(), result.getReferencedList().size());
assertEquals(upd.getSimpleList().size(), result.getSimpleList().size());
assertTrue(result.getReferencedList().stream().anyMatch(a -> a.getUri().equals(newE.getUri())));
assertTrue(result.getSimpleList().stream().anyMatch(a -> a.getUri().equals(newE.getUri())));
}
}