8
8
9
9
import java .util .List ;
10
10
import javax .persistence .Entity ;
11
+ import javax .persistence .GeneratedValue ;
12
+ import javax .persistence .GenerationType ;
11
13
import javax .persistence .Id ;
12
14
13
15
import org .hibernate .spatial .dialect .postgis .PostgisPG95Dialect ;
14
16
15
17
import org .hibernate .testing .RequiresDialect ;
16
18
import org .hibernate .testing .junit4 .BaseCoreFunctionalTestCase ;
19
+ import org .junit .After ;
17
20
import org .junit .Test ;
18
21
19
22
import org .geolatte .geom .C2D ;
30
33
import static org .junit .Assert .assertEquals ;
31
34
32
35
/**
36
+ * Integration tests for Postgis
37
+ *
33
38
* @author Vlad Mihalcea, Karel Maesen
34
39
*/
35
40
@ RequiresDialect (PostgisPG95Dialect .class )
36
- public class PostgisBufferTest extends BaseCoreFunctionalTestCase {
41
+ public class PostgisTest extends BaseCoreFunctionalTestCase {
37
42
38
43
public static CoordinateReferenceSystem <C2D > crs = CoordinateReferenceSystems .PROJECTED_2D_METER ;
39
44
@@ -49,23 +54,23 @@ protected Class<?>[] getAnnotatedClasses() {
49
54
};
50
55
}
51
56
52
- @ Test
53
- public void test () {
54
- Long addressId = doInHibernate ( this ::sessionFactory , session -> {
55
- Event event = new Event ();
56
- event .setId ( 1L );
57
- event .setName ( "Hibernate ORM presentation" );
58
- Point <C2D > pnt = point ( crs , c ( 10 , 5 ) );
59
- event .setLocation ( pnt );
60
- session .persist ( event );
61
- return event .getId ();
57
+ @ After
58
+ public void cleanUp () {
59
+ doInHibernate ( this ::sessionFactory , session -> {
60
+ session .createQuery ( "delete from Event" ).executeUpdate ();
62
61
} );
62
+ }
63
+
64
+
65
+ @ Test
66
+ public void testBuffer () {
67
+ Long addressId = insertEvent ( c ( 10 , 5 ) );
63
68
64
69
doInHibernate ( this ::sessionFactory , session -> {
65
70
List <Event > events = session .createQuery (
66
71
"select e " +
67
72
"from Event e " +
68
- "where buffer(:window, 100) is not null " , Event .class )
73
+ "where within( e.location, buffer(:window, 100)) = true " , Event .class )
69
74
.setParameter ( "window" , window )
70
75
.getResultList ();
71
76
@@ -74,10 +79,39 @@ public void test() {
74
79
} );
75
80
}
76
81
82
+ @ Test
83
+ public void testMakeEnvelope () {
84
+ Long addressId = insertEvent ( c ( 10 , 5 ) );
85
+
86
+ doInHibernate ( this ::sessionFactory , session -> {
87
+ List <Event > events = session .createQuery (
88
+ "select e " +
89
+ "from Event e " +
90
+ "where within(e.location, makeenvelope(0, 0, 11, 11, -1 )) = true" , Event .class )
91
+ .getResultList ();
92
+
93
+ assertEquals ( 1 , events .size () );
94
+
95
+ } );
96
+
97
+ }
98
+
99
+ private Long insertEvent (C2D position ) {
100
+ return doInHibernate ( this ::sessionFactory , session -> {
101
+ Event event = new Event ();
102
+ event .setName ( "Hibernate ORM presentation" );
103
+ Point <C2D > pnt = point ( crs , position );
104
+ event .setLocation ( pnt );
105
+ session .persist ( event );
106
+ return event .getId ();
107
+ } );
108
+ }
109
+
77
110
@ Entity (name = "Event" )
78
111
public static class Event {
79
112
80
113
@ Id
114
+ @ GeneratedValue (strategy = GenerationType .IDENTITY )
81
115
private Long id ;
82
116
83
117
private String name ;
0 commit comments