Skip to content

Commit 9c57b8d

Browse files
committed
add test for multiple and nested mapping.
1 parent 8a33dcb commit 9c57b8d

File tree

3 files changed

+60
-0
lines changed

3 files changed

+60
-0
lines changed

src/test/java/org/objectquery/hibernate/TestPersistentSelectMapQuery.java

+36
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import org.junit.Test;
1212
import org.objectquery.SelectMapQuery;
1313
import org.objectquery.generic.GenericSelectQuery;
14+
import org.objectquery.generic.ObjectQueryException;
1415
import org.objectquery.hibernate.domain.Person;
1516
import org.objectquery.hibernate.domain.PersonDTO;
1617

@@ -34,6 +35,41 @@ public void testSimpleSelectMap() {
3435
assertThat(res.get(0).getName(), CoreMatchers.is("tom"));
3536
}
3637

38+
@Test
39+
public void testSimpleSelectMapNoFilter() {
40+
SelectMapQuery<Person, PersonDTO> query = new GenericSelectQuery<Person, PersonDTO>(Person.class, PersonDTO.class);
41+
query.prj(query.target().getName(), query.mapper().getName());
42+
43+
List<PersonDTO> res = HibernateObjectQuery.execute(query, session);
44+
assertThat(res.size(), CoreMatchers.is(3));
45+
for (PersonDTO personDTO : res) {
46+
assertThat(personDTO.getName(), CoreMatchers.notNullValue());
47+
}
48+
}
49+
50+
@Test
51+
public void testSimpleSelectMapTwoEntries() {
52+
SelectMapQuery<Person, PersonDTO> query = new GenericSelectQuery<Person, PersonDTO>(Person.class, PersonDTO.class);
53+
query.eq(query.target().getName(), "tom");
54+
query.prj(query.target().getName(), query.mapper().getName());
55+
query.prj(query.target().getDog().getName(), query.mapper().getSurname());
56+
57+
List<PersonDTO> res = HibernateObjectQuery.execute(query, session);
58+
assertThat(res.size(), CoreMatchers.is(1));
59+
assertThat(res.get(0).getName(), CoreMatchers.is("tom"));
60+
assertThat(res.get(0).getSurname(), CoreMatchers.is("cerberus"));
61+
}
62+
63+
@Test(expected = ObjectQueryException.class)
64+
public void testSimpleSelectMapDeep() {
65+
SelectMapQuery<Person, PersonDTO> query = new GenericSelectQuery<Person, PersonDTO>(Person.class, PersonDTO.class);
66+
query.eq(query.target().getName(), "tom");
67+
query.prj(query.target().getName(), query.mapper().getName());
68+
query.prj(query.target().getHome().getAddress(), query.mapper().getAddressDTO().getStreet());
69+
70+
HibernateObjectQuery.execute(query, session);
71+
}
72+
3773
@After
3874
public void afterTest() {
3975
if (session != null) {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package org.objectquery.hibernate.domain;
2+
3+
public class AddressDTO {
4+
5+
private String street;
6+
7+
public String getStreet() {
8+
return street;
9+
}
10+
11+
public void setStreet(String street) {
12+
this.street = street;
13+
}
14+
15+
}

src/test/java/org/objectquery/hibernate/domain/PersonDTO.java

+9
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ public class PersonDTO {
44

55
private String name;
66
private String surname;
7+
private AddressDTO addressDTO;
78

89
public String getName() {
910
return name;
@@ -21,4 +22,12 @@ public void setSurname(String surname) {
2122
this.surname = surname;
2223
}
2324

25+
public AddressDTO getAddressDTO() {
26+
return addressDTO;
27+
}
28+
29+
public void setAddressDTO(AddressDTO addressDTO) {
30+
this.addressDTO = addressDTO;
31+
}
32+
2433
}

0 commit comments

Comments
 (0)