Skip to content

Commit 0508dd9

Browse files
ali kamaliparazit-IR
authored andcommitted
Add Criteria test for nested speakers
Signed-off-by: Mohammadali Jalalkamali <m.ali.jalalkamali@gmail.com>
1 parent 0306873 commit 0508dd9

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

elasticsearch/example/src/test/java/example/springdata/elasticsearch/conference/ElasticsearchOperationsTest.java

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,12 @@
1717

1818
import static org.assertj.core.api.Assertions.*;
1919

20+
import example.springdata.elasticsearch.speaker.Speaker;
21+
import example.springdata.elasticsearch.talk.Talk;
22+
2023
import java.text.ParseException;
2124
import java.text.SimpleDateFormat;
25+
import java.util.List;
2226

2327
import org.junit.jupiter.api.Test;
2428
import org.springframework.beans.factory.annotation.Autowired;
@@ -103,4 +107,38 @@ void geoSpatialSearch() {
103107

104108
assertThat(result).hasSize(2);
105109
}
110+
111+
@Test
112+
void criteriaQueryOnNestedSpeakers() {
113+
114+
String speakerName = "Ali";
115+
var speaker = Speaker.builder()
116+
.name(speakerName)
117+
.position("Developer")
118+
.build();
119+
120+
var talkWithSpeaker = Talk.builder()
121+
.id("1")
122+
.title("Spring & Elasticsearch")
123+
.speakers(List.of(speaker))
124+
.build();
125+
126+
var talkWithoutSpeaker = Talk.builder()
127+
.id("2")
128+
.title("No Speakers Here")
129+
.build();
130+
131+
operations.save(talkWithSpeaker);
132+
operations.save(talkWithoutSpeaker);
133+
134+
var criteria = new Criteria("speakers.name").is(speakerName);
135+
var query = new CriteriaQuery(criteria);
136+
137+
var result = operations.search(query, Talk.class);
138+
139+
assertThat(result).hasSize(1);
140+
assertThat(result.getSearchHits().get(0).getContent()
141+
.getSpeakers().get(0).getName())
142+
.isEqualTo(speakerName);
143+
}
106144
}

0 commit comments

Comments
 (0)