Skip to content

Commit 6e2269d

Browse files
committed
Clean up CascadeTest
1 parent bbc6880 commit 6e2269d

File tree

1 file changed

+119
-83
lines changed

1 file changed

+119
-83
lines changed

hibernate-reactive-core/src/test/java/org/hibernate/reactive/CascadeTest.java

Lines changed: 119 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,7 @@
1717

1818
import io.vertx.junit5.Timeout;
1919
import io.vertx.junit5.VertxTestContext;
20-
import jakarta.persistence.CascadeType;
2120
import jakarta.persistence.Entity;
22-
import jakarta.persistence.FetchType;
2321
import jakarta.persistence.GeneratedValue;
2422
import jakarta.persistence.Id;
2523
import jakarta.persistence.ManyToOne;
@@ -35,6 +33,12 @@
3533
import jakarta.persistence.Transient;
3634
import jakarta.persistence.Version;
3735

36+
import static jakarta.persistence.CascadeType.MERGE;
37+
import static jakarta.persistence.CascadeType.PERSIST;
38+
import static jakarta.persistence.CascadeType.REFRESH;
39+
import static jakarta.persistence.CascadeType.REMOVE;
40+
import static jakarta.persistence.FetchType.EAGER;
41+
import static jakarta.persistence.FetchType.LAZY;
3842
import static java.util.concurrent.TimeUnit.MINUTES;
3943
import static org.junit.jupiter.api.Assertions.assertEquals;
4044
import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -55,119 +59,129 @@ protected Configuration constructConfiguration() {
5559

5660
@Test
5761
public void testQuery(VertxTestContext context) {
58-
59-
Node basik = new Node("Child");
60-
basik.parent = new Node("Parent");
61-
basik.elements.add(new Element(basik));
62-
basik.elements.add(new Element(basik));
63-
basik.elements.add(new Element(basik));
64-
65-
test( context,
62+
Node basik = new Node( "Child" );
63+
basik.parent = new Node( "Parent" );
64+
basik.elements.add( new Element( basik ) );
65+
basik.elements.add( new Element( basik ) );
66+
basik.elements.add( new Element( basik ) );
67+
68+
test(
69+
context,
6670
openSession()
67-
.thenCompose(s -> s.persist(basik).thenCompose(v -> s.flush()))
71+
.thenCompose( s -> s.persist( basik ).thenCompose( v -> s.flush() ) )
6872
.thenCompose( v -> openSession() )
69-
.thenCompose( s -> s.createQuery("select distinct n from Node n left join fetch n.elements").getResultList())
73+
.thenCompose( s -> s.createSelectionQuery( "select distinct n from Node n left join fetch n.elements", Node.class ).getResultList() )
7074
.thenAccept( list -> assertEquals( list.size(), 2 ) )
7175
.thenCompose( v -> openSession() )
72-
.thenCompose( s -> s.createQuery("select distinct n, e from Node n join n.elements e").getResultList())
76+
.thenCompose( s -> s.createSelectionQuery( "select distinct n, e from Node n join n.elements e", Object[].class ).getResultList() )
7377
.thenAccept( list -> assertEquals( list.size(), 3 ) )
7478
.thenCompose( v -> openSession() )
75-
.thenCompose( s -> s.createQuery("select distinct n.id, e.id from Node n join n.elements e").getResultList())
79+
.thenCompose( s -> s.createSelectionQuery( "select distinct n.id, e.id from Node n join n.elements e", Object[].class ).getResultList() )
7680
.thenAccept( list -> assertEquals( list.size(), 3 ) )
7781
.thenCompose( v -> openSession() )
78-
.thenCompose( s -> s.createQuery("select max(e.id), min(e.id), sum(e.id) from Node n join n.elements e group by n.id order by n.id").getResultList())
82+
.thenCompose( s -> s.createSelectionQuery( "select max(e.id), min(e.id), sum(e.id) from Node n join n.elements e group by n.id order by n.id", Object[].class ).getResultList() )
7983
.thenAccept( list -> assertEquals( list.size(), 1 ) )
8084
);
8185
}
8286

8387
@Test
8488
public void testCascade(VertxTestContext context) {
85-
86-
Node basik = new Node("Child");
87-
basik.parent = new Node("Parent");
88-
basik.elements.add( new Element(basik) );
89-
basik.elements.add( new Element(basik) );
90-
basik.elements.add( new Element(basik) );
91-
92-
test( context,
89+
Node basik = new Node( "Child" );
90+
basik.parent = new Node( "Parent" );
91+
basik.elements.add( new Element( basik ) );
92+
basik.elements.add( new Element( basik ) );
93+
basik.elements.add( new Element( basik ) );
94+
95+
test(
96+
context,
9397
openSession()
94-
.thenCompose(s -> s.persist(basik)
95-
.thenApply(v -> { assertTrue(basik.prePersisted && !basik.postPersisted); return s; } )
96-
.thenApply(v -> { assertTrue(basik.parent.prePersisted && !basik.parent.postPersisted); return s; } )
97-
.thenCompose(v -> s.flush())
98-
.thenApply(v -> { assertTrue(basik.prePersisted && basik.postPersisted); return s; } )
99-
.thenApply(v -> { assertTrue(basik.parent.prePersisted && basik.parent.postPersisted); return s; } )
98+
.thenCompose( s -> s.persist( basik )
99+
.thenApply( v -> {
100+
assertTrue( basik.prePersisted && !basik.postPersisted );
101+
assertTrue( basik.parent.prePersisted && !basik.parent.postPersisted );
102+
return s;
103+
} )
104+
.thenCompose( v -> s.flush() )
105+
.thenApply( v -> {
106+
assertTrue( basik.prePersisted && basik.postPersisted );
107+
assertTrue( basik.parent.prePersisted && basik.parent.postPersisted );
108+
return s;
109+
} )
100110
)
101111
.thenCompose( v -> openSession() )
102-
.thenCompose(s2 -> s2.find( Node.class, basik.getId() )
112+
.thenCompose( s2 -> s2.find( Node.class, basik.getId() )
103113
.thenCompose( node -> {
104114
assertNotNull( node );
105115
assertTrue( node.loaded );
106-
assertEquals( node.string, basik.string);
116+
assertEquals( node.string, basik.string );
107117
assertEquals( node.version, 0 );
108118
assertEquals( node.elements.size(), basik.elements.size() );
109119

110120
node.string = "Adopted";
111-
node.parent = new Node("New Parent");
121+
node.parent = new Node( "New Parent" );
112122
return s2.flush()
113-
.thenAccept(v -> {
123+
.thenAccept( v -> {
114124
assertNotNull( node );
115125
assertTrue( node.postUpdated && node.preUpdated );
116126
assertFalse( node.postPersisted && node.prePersisted );
117127
assertTrue( node.parent.postPersisted && node.parent.prePersisted );
118128
assertEquals( node.version, 1 );
119-
});
120-
}))
129+
} );
130+
} ) )
121131
.thenCompose( v -> openSession() )
122-
.thenCompose(s2 -> s2.find( Node.class, basik.getId() )
132+
.thenCompose( s2 -> s2.find( Node.class, basik.getId() )
123133
.thenCompose( node -> {
124134
assertNotNull( node );
125135
assertEquals( node.version, 1 );
126-
assertEquals( node.string, "Adopted");
127-
assertTrue(Hibernate.isInitialized(node.elements));
128-
assertFalse(Hibernate.isInitialized(node.parent));
136+
assertEquals( node.string, "Adopted" );
137+
assertTrue( Hibernate.isInitialized( node.elements ) );
138+
assertFalse( Hibernate.isInitialized( node.parent ) );
129139
return s2.fetch( node.parent )
130140
.thenCompose( parent -> {
131141
assertNotNull( parent );
132-
return s2.createQuery("update Node set string = upper(string)").executeUpdate()
133-
.thenCompose(v -> s2.refresh(node))
134-
.thenAccept(v -> {
142+
return s2.createMutationQuery( "update Node set string = upper(string)" )
143+
.executeUpdate()
144+
.thenCompose( v -> s2.refresh( node ) )
145+
.thenAccept( v -> {
135146
assertEquals( node.getString(), "ADOPTED" );
136147
assertEquals( parent.getString(), "NEW PARENT" );
137148
assertTrue( Hibernate.isInitialized( node.elements ) );
138149
assertTrue( Hibernate.isInitialized( parent.elements ) );
139-
});
140-
});
141-
}))
150+
} );
151+
} );
152+
} ) )
142153
.thenCompose( v -> openSession() )
143-
.thenCompose(s3 -> s3.find( Node.class, basik.getId() )
154+
.thenCompose( s3 -> s3.find( Node.class, basik.getId() )
144155
.thenCompose( node -> {
145156
assertFalse( node.postUpdated && node.preUpdated );
146157
assertFalse( node.postPersisted && node.prePersisted );
147158
assertEquals( node.version, 1 );
148-
assertEquals( node.string, "ADOPTED");
159+
assertEquals( node.string, "ADOPTED" );
149160
basik.version = node.version;
150161
basik.string = "Hello World!";
151162
basik.parent.string = "Goodbye World!";
152-
return s3.merge(basik)
163+
return s3.merge( basik )
153164
.thenAccept( b -> {
154-
assertEquals( b.string, "Hello World!");
155-
assertEquals( b.parent.string, "Goodbye World!");
156-
})
157-
.thenCompose(v -> s3.remove(node))
158-
.thenAccept(v -> assertTrue( !node.postRemoved && node.preRemoved ) )
159-
.thenCompose(v -> s3.flush())
160-
.thenAccept(v -> assertTrue( node.postRemoved && node.preRemoved ) );
161-
}))
165+
assertEquals( b.string, "Hello World!" );
166+
assertEquals( b.parent.string, "Goodbye World!" );
167+
} )
168+
.thenCompose( v -> s3.remove( node ) )
169+
.thenAccept( v -> assertTrue( !node.postRemoved && node.preRemoved ) )
170+
.thenCompose( v -> s3.flush() )
171+
.thenAccept( v -> assertTrue( node.postRemoved && node.preRemoved ) );
172+
} ) )
162173
.thenCompose( v -> openSession() )
163-
.thenCompose(s4 -> s4.find( Node.class, basik.getId() )
164-
.thenAccept( Assertions::assertNull))
174+
.thenCompose( s4 -> s4.find( Node.class, basik.getId() )
175+
.thenAccept( Assertions::assertNull ) )
165176
);
166177
}
167178

168-
@Entity(name = "Element") @Table(name="Element")
179+
@Entity(name = "Element")
180+
@Table(name = "Element")
169181
public static class Element {
170-
@Id @GeneratedValue Integer id;
182+
@Id
183+
@GeneratedValue
184+
Integer id;
171185

172186
@ManyToOne
173187
Node node;
@@ -176,42 +190,48 @@ public Element(Node node) {
176190
this.node = node;
177191
}
178192

179-
Element() {}
193+
Element() {
194+
}
180195
}
181196

182-
@Entity(name = "Node") @Table(name="Node")
197+
@Entity(name = "Node")
198+
@Table(name = "Node")
183199
public static class Node {
184200

185-
@Id @GeneratedValue Integer id;
186-
@Version Integer version;
201+
@Id
202+
@GeneratedValue
203+
Integer id;
204+
@Version
205+
Integer version;
187206
String string;
188207

189-
@ManyToOne(fetch = FetchType.LAZY,
190-
cascade = {CascadeType.PERSIST,
191-
CascadeType.REFRESH,
192-
CascadeType.MERGE,
193-
CascadeType.REMOVE})
208+
@ManyToOne(fetch = LAZY, cascade = {PERSIST, REFRESH, MERGE, REMOVE})
194209
Node parent;
195210

196-
@OneToMany(fetch = FetchType.EAGER,
197-
cascade = {CascadeType.PERSIST,
198-
CascadeType.REMOVE},
199-
mappedBy = "node")
211+
@OneToMany(fetch = EAGER, cascade = {PERSIST, REMOVE}, mappedBy = "node")
200212
List<Element> elements = new ArrayList<>();
201213

202-
@Transient boolean prePersisted;
203-
@Transient boolean postPersisted;
204-
@Transient boolean preUpdated;
205-
@Transient boolean postUpdated;
206-
@Transient boolean postRemoved;
207-
@Transient boolean preRemoved;
208-
@Transient boolean loaded;
214+
@Transient
215+
boolean prePersisted;
216+
@Transient
217+
boolean postPersisted;
218+
@Transient
219+
boolean preUpdated;
220+
@Transient
221+
boolean postUpdated;
222+
@Transient
223+
boolean postRemoved;
224+
@Transient
225+
boolean preRemoved;
226+
@Transient
227+
boolean loaded;
209228

210229
public Node(String string) {
211230
this.string = string;
212231
}
213232

214-
Node() {}
233+
Node() {
234+
}
215235

216236
@PrePersist
217237
void prePersist() {
@@ -264,6 +284,22 @@ public void setString(String string) {
264284
this.string = string;
265285
}
266286

287+
public Node getParent() {
288+
return parent;
289+
}
290+
291+
public void setParent(Node parent) {
292+
this.parent = parent;
293+
}
294+
295+
public List<Element> getElements() {
296+
return elements;
297+
}
298+
299+
public void setElements(List<Element> elements) {
300+
this.elements = elements;
301+
}
302+
267303
@Override
268304
public String toString() {
269305
return id + ": " + string;
@@ -278,12 +314,12 @@ public boolean equals(Object o) {
278314
return false;
279315
}
280316
Node node = (Node) o;
281-
return Objects.equals(string, node.string);
317+
return Objects.equals( string, node.string );
282318
}
283319

284320
@Override
285321
public int hashCode() {
286-
return Objects.hash(string);
322+
return Objects.hash( string );
287323
}
288324
}
289325
}

0 commit comments

Comments
 (0)