Skip to content

Commit 5d1227f

Browse files
committed
tests to verify new annotations
1 parent 7273cf4 commit 5d1227f

File tree

7 files changed

+375
-0
lines changed

7 files changed

+375
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
/* Hibernate, Relational Persistence for Idiomatic Java
2+
*
3+
* SPDX-License-Identifier: Apache-2.0
4+
* Copyright: Red Hat Inc. and Hibernate Authors
5+
*/
6+
package org.hibernate.reactive.annotations.tests;
7+
8+
import java.util.Set;
9+
import java.util.concurrent.CompletionStage;
10+
11+
import org.hibernate.reactive.BaseReactiveTest;
12+
import org.hibernate.reactive.annotations.DisableFor;
13+
import org.hibernate.reactive.annotations.EnableFor;
14+
15+
import org.junit.jupiter.api.Test;
16+
17+
import io.vertx.junit5.VertxTestContext;
18+
19+
import static org.hibernate.reactive.containers.DatabaseConfiguration.DBType.DB2;
20+
import static org.hibernate.reactive.containers.DatabaseConfiguration.DBType.MYSQL;
21+
import static org.junit.jupiter.api.Assertions.assertEquals;
22+
23+
@DisableFor( value = MYSQL, reason = "Reason #1")
24+
@DisableFor( value = DB2, reason = "Reason #2")
25+
public class DisableForClassTest extends BaseReactiveTest {
26+
27+
@Override
28+
protected Set<Class<?>> annotatedEntities() {
29+
return Set.of( GuineaPig.class );
30+
}
31+
32+
private CompletionStage<Void> populateDB() {
33+
return getSessionFactory()
34+
.withTransaction( s -> s.persist( new GuineaPig( 5, "Aloi" ) ) );
35+
}
36+
37+
@Test
38+
public void testSkipDB2andMYSQL_Class(VertxTestContext context) {
39+
final GuineaPig expectedPig = new GuineaPig( 5, "Aloi" );
40+
test(
41+
context,
42+
populateDB()
43+
.thenCompose( v -> openSession() )
44+
.thenCompose( session -> session.find( GuineaPig.class, expectedPig.getId() )
45+
.thenAccept( actualPig -> assertEquals( 5, actualPig.getId() ) )
46+
)
47+
);
48+
}
49+
50+
@Test
51+
@EnableFor( value = DB2 )
52+
public void testDisableOnlyMYSQL_Class(VertxTestContext context) {
53+
final GuineaPig expectedPig = new GuineaPig( 5, "Aloi" );
54+
test(
55+
context,
56+
populateDB()
57+
.thenCompose( v -> openSession() )
58+
.thenCompose( session -> session.find( GuineaPig.class, expectedPig.getId() )
59+
.thenAccept( actualPig -> assertEquals( 5, actualPig.getId() ) )
60+
)
61+
);
62+
}
63+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
/* Hibernate, Relational Persistence for Idiomatic Java
2+
*
3+
* SPDX-License-Identifier: Apache-2.0
4+
* Copyright: Red Hat Inc. and Hibernate Authors
5+
*/
6+
package org.hibernate.reactive.annotations.tests;
7+
8+
import java.util.Set;
9+
import java.util.concurrent.CompletionStage;
10+
11+
import org.hibernate.reactive.BaseReactiveTest;
12+
import org.hibernate.reactive.annotations.DisableFor;
13+
import org.hibernate.reactive.annotations.DisableForGroup;
14+
15+
import org.junit.jupiter.api.Test;
16+
17+
import io.vertx.junit5.VertxTestContext;
18+
19+
import static org.hibernate.reactive.containers.DatabaseConfiguration.DBType.DB2;
20+
import static org.hibernate.reactive.containers.DatabaseConfiguration.DBType.MYSQL;
21+
import static org.junit.jupiter.api.Assertions.assertEquals;
22+
23+
@DisableForGroup(value = {
24+
@DisableFor( value = MYSQL, reason = "Reason #1"),
25+
@DisableFor( value = DB2, reason = "Reason #2")
26+
})
27+
public class DisableForGroupClassTest extends BaseReactiveTest {
28+
29+
@Override
30+
protected Set<Class<?>> annotatedEntities() {
31+
return Set.of( GuineaPig.class );
32+
}
33+
34+
private CompletionStage<Void> populateDB() {
35+
return getSessionFactory()
36+
.withTransaction( s -> s.persist( new GuineaPig( 5, "Aloi" ) ) );
37+
}
38+
39+
@Test
40+
public void testFind_SkipDB2andMYSQL_Class(VertxTestContext context) {
41+
final GuineaPig expectedPig = new GuineaPig( 5, "Aloi" );
42+
test(
43+
context,
44+
populateDB()
45+
.thenCompose( v -> openSession() )
46+
.thenCompose( session -> session.find( GuineaPig.class, expectedPig.getId() )
47+
.thenAccept( actualPig -> assertEquals( 5, actualPig.getId() ) )
48+
)
49+
);
50+
}
51+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
/* Hibernate, Relational Persistence for Idiomatic Java
2+
*
3+
* SPDX-License-Identifier: Apache-2.0
4+
* Copyright: Red Hat Inc. and Hibernate Authors
5+
*/
6+
package org.hibernate.reactive.annotations.tests;
7+
8+
import java.util.Set;
9+
import java.util.concurrent.CompletionStage;
10+
11+
import org.hibernate.reactive.BaseReactiveTest;
12+
import org.hibernate.reactive.annotations.DisableFor;
13+
14+
import org.junit.jupiter.api.Test;
15+
16+
import io.vertx.junit5.VertxTestContext;
17+
18+
import static org.hibernate.reactive.containers.DatabaseConfiguration.DBType.DB2;
19+
import static org.hibernate.reactive.containers.DatabaseConfiguration.DBType.MYSQL;
20+
import static org.junit.jupiter.api.Assertions.assertEquals;
21+
22+
public class DisableForMethodTest extends BaseReactiveTest {
23+
24+
@Override
25+
protected Set<Class<?>> annotatedEntities() {
26+
return Set.of( GuineaPig.class );
27+
}
28+
29+
private CompletionStage<Void> populateDB() {
30+
return getSessionFactory()
31+
.withTransaction( s -> s.persist( new GuineaPig( 5, "Aloi" ) ) );
32+
}
33+
34+
@DisableFor( value = MYSQL, reason = "Reason #1")
35+
@DisableFor( value = DB2, reason = "Reason #2")
36+
@Test
37+
public void testFind_SkipDB2andMYSQL_Class(VertxTestContext context) {
38+
final GuineaPig expectedPig = new GuineaPig( 5, "Aloi" );
39+
test(
40+
context,
41+
populateDB()
42+
.thenCompose( v -> openSession() )
43+
.thenCompose( session -> session.find( GuineaPig.class, expectedPig.getId() )
44+
.thenAccept( actualPig -> assertEquals( 5, actualPig.getId() ) )
45+
)
46+
);
47+
}
48+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
/* Hibernate, Relational Persistence for Idiomatic Java
2+
*
3+
* SPDX-License-Identifier: Apache-2.0
4+
* Copyright: Red Hat Inc. and Hibernate Authors
5+
*/
6+
package org.hibernate.reactive.annotations.tests;
7+
8+
import java.util.Set;
9+
import java.util.concurrent.CompletionStage;
10+
11+
import org.hibernate.reactive.BaseReactiveTest;
12+
import org.hibernate.reactive.annotations.EnableFor;
13+
14+
import org.junit.jupiter.api.Test;
15+
16+
import io.vertx.junit5.VertxTestContext;
17+
18+
import static org.hibernate.reactive.containers.DatabaseConfiguration.DBType.DB2;
19+
import static org.hibernate.reactive.containers.DatabaseConfiguration.DBType.MYSQL;
20+
import static org.junit.jupiter.api.Assertions.assertEquals;
21+
22+
@EnableFor( value = MYSQL )
23+
@EnableFor( value = DB2 )
24+
public class EnableForClassTest extends BaseReactiveTest {
25+
26+
@Override
27+
protected Set<Class<?>> annotatedEntities() {
28+
return Set.of( GuineaPig.class );
29+
}
30+
31+
private CompletionStage<Void> populateDB() {
32+
return getSessionFactory()
33+
.withTransaction( s -> s.persist( new GuineaPig( 5, "Aloi" ) ) );
34+
}
35+
36+
@Test
37+
public void testFind_RunDB2andMYSQL_Class(VertxTestContext context) {
38+
final GuineaPig expectedPig = new GuineaPig( 5, "Aloi" );
39+
test(
40+
context,
41+
populateDB()
42+
.thenCompose( v -> openSession() )
43+
.thenCompose( session -> session.find( GuineaPig.class, expectedPig.getId() )
44+
.thenAccept( actualPig -> assertEquals( 5, actualPig.getId() ) )
45+
)
46+
);
47+
}
48+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
/* Hibernate, Relational Persistence for Idiomatic Java
2+
*
3+
* SPDX-License-Identifier: Apache-2.0
4+
* Copyright: Red Hat Inc. and Hibernate Authors
5+
*/
6+
package org.hibernate.reactive.annotations.tests;
7+
8+
import java.util.Set;
9+
import java.util.concurrent.CompletionStage;
10+
11+
import org.hibernate.reactive.BaseReactiveTest;
12+
import org.hibernate.reactive.annotations.EnableFor;
13+
import org.hibernate.reactive.annotations.EnableForGroup;
14+
15+
import org.junit.jupiter.api.Test;
16+
17+
import io.vertx.junit5.VertxTestContext;
18+
19+
import static org.hibernate.reactive.containers.DatabaseConfiguration.DBType.DB2;
20+
import static org.hibernate.reactive.containers.DatabaseConfiguration.DBType.MYSQL;
21+
import static org.junit.jupiter.api.Assertions.assertEquals;
22+
23+
@EnableForGroup(value = {
24+
@EnableFor( value = MYSQL ),
25+
@EnableFor( value = DB2 )
26+
})
27+
public class EnableForGroupClassTest extends BaseReactiveTest {
28+
29+
@Override
30+
protected Set<Class<?>> annotatedEntities() {
31+
return Set.of( GuineaPig.class );
32+
}
33+
34+
private CompletionStage<Void> populateDB() {
35+
return getSessionFactory()
36+
.withTransaction( s -> s.persist( new GuineaPig( 5, "Aloi" ) ) );
37+
}
38+
39+
@Test
40+
public void testFind_RunDB2andMYSQL_Class(VertxTestContext context) {
41+
final GuineaPig expectedPig = new GuineaPig( 5, "Aloi" );
42+
test(
43+
context,
44+
populateDB()
45+
.thenCompose( v -> openSession() )
46+
.thenCompose( session -> session.find( GuineaPig.class, expectedPig.getId() )
47+
.thenAccept( actualPig -> assertEquals( 5, actualPig.getId() ) )
48+
)
49+
);
50+
}
51+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
/* Hibernate, Relational Persistence for Idiomatic Java
2+
*
3+
* SPDX-License-Identifier: Apache-2.0
4+
* Copyright: Red Hat Inc. and Hibernate Authors
5+
*/
6+
package org.hibernate.reactive.annotations.tests;
7+
8+
import java.util.Set;
9+
import java.util.concurrent.CompletionStage;
10+
11+
import org.hibernate.reactive.BaseReactiveTest;
12+
import org.hibernate.reactive.annotations.EnableFor;
13+
14+
import org.junit.jupiter.api.Test;
15+
16+
import io.vertx.junit5.VertxTestContext;
17+
18+
import static org.hibernate.reactive.containers.DatabaseConfiguration.DBType.DB2;
19+
import static org.hibernate.reactive.containers.DatabaseConfiguration.DBType.MYSQL;
20+
import static org.junit.jupiter.api.Assertions.assertEquals;
21+
22+
public class EnableForMethodTest extends BaseReactiveTest {
23+
24+
@Override
25+
protected Set<Class<?>> annotatedEntities() {
26+
return Set.of( GuineaPig.class );
27+
}
28+
29+
private CompletionStage<Void> populateDB() {
30+
return getSessionFactory()
31+
.withTransaction( s -> s.persist( new GuineaPig( 5, "Aloi" ) ) );
32+
}
33+
34+
@Test
35+
@EnableFor( value = DB2 )
36+
@EnableFor( value = MYSQL )
37+
public void testFind_RunDB2andMYSQL_Method(VertxTestContext context) {
38+
final GuineaPig expectedPig = new GuineaPig( 5, "Aloi" );
39+
test(
40+
context,
41+
populateDB()
42+
.thenCompose( v -> openSession() )
43+
.thenCompose( session -> session.find( GuineaPig.class, expectedPig.getId() )
44+
.thenAccept( actualPig -> assertEquals( 5, actualPig.getId() ) )
45+
)
46+
);
47+
}
48+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
/* Hibernate, Relational Persistence for Idiomatic Java
2+
*
3+
* SPDX-License-Identifier: Apache-2.0
4+
* Copyright: Red Hat Inc. and Hibernate Authors
5+
*/
6+
package org.hibernate.reactive.annotations.tests;
7+
8+
import java.util.Objects;
9+
10+
import jakarta.persistence.Entity;
11+
import jakarta.persistence.Id;
12+
import jakarta.persistence.Table;
13+
14+
@Entity(name = "GuineaPig")
15+
@Table(name = "pig")
16+
public class GuineaPig {
17+
@Id
18+
private Integer id;
19+
private String name;
20+
21+
public GuineaPig() {
22+
}
23+
24+
public GuineaPig(Integer id, String name) {
25+
this.id = id;
26+
this.name = name;
27+
}
28+
29+
public Integer getId() {
30+
return id;
31+
}
32+
33+
public void setId(Integer id) {
34+
this.id = id;
35+
}
36+
37+
public String getName() {
38+
return name;
39+
}
40+
41+
public void setName(String name) {
42+
this.name = name;
43+
}
44+
45+
@Override
46+
public String toString() {
47+
return id + ": " + name;
48+
}
49+
50+
@Override
51+
public boolean equals(Object o) {
52+
if ( this == o ) {
53+
return true;
54+
}
55+
if ( o == null || getClass() != o.getClass() ) {
56+
return false;
57+
}
58+
GuineaPig guineaPig = (GuineaPig) o;
59+
return Objects.equals( name, guineaPig.name );
60+
}
61+
62+
@Override
63+
public int hashCode() {
64+
return Objects.hash( name );
65+
}
66+
}

0 commit comments

Comments
 (0)