Skip to content

Commit d572eca

Browse files
authored
Merge pull request #1815 from fedinskiy/movie-sample-tests
Add tests for movie-search sample
2 parents 3616dbd + d951085 commit d572eca

File tree

4 files changed

+118
-37
lines changed

4 files changed

+118
-37
lines changed

samples/movie-similarity-search/pom.xml

Lines changed: 80 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -15,24 +15,12 @@
1515
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
1616
<quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id>
1717
<quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
18-
<quarkus.platform.version>3.20.0</quarkus.platform.version>
18+
<quarkus.platform.version>3.27.0</quarkus.platform.version>
1919
<skipITs>true</skipITs>
20+
<skipTests>true</skipTests>
2021
<surefire-plugin.version>3.2.5</surefire-plugin.version>
21-
<quarkus-langchain4j.version>1.2.0</quarkus-langchain4j.version>
2222
</properties>
2323

24-
<dependencyManagement>
25-
<dependencies>
26-
<dependency>
27-
<groupId>${quarkus.platform.group-id}</groupId>
28-
<artifactId>${quarkus.platform.artifact-id}</artifactId>
29-
<version>${quarkus.platform.version}</version>
30-
<type>pom</type>
31-
<scope>import</scope>
32-
</dependency>
33-
</dependencies>
34-
</dependencyManagement>
35-
3624
<dependencies>
3725
<dependency>
3826
<groupId>io.quarkus</groupId>
@@ -47,31 +35,15 @@
4735
<artifactId>quarkus-jdbc-postgresql</artifactId>
4836
</dependency>
4937
<dependency>
50-
<groupId>io.quarkiverse.langchain4j</groupId>
51-
<artifactId>quarkus-langchain4j-openai</artifactId>
52-
<version>${quarkus-langchain4j.version}</version>
53-
</dependency>
54-
<dependency>
55-
<groupId>io.quarkiverse.langchain4j</groupId>
56-
<artifactId>quarkus-langchain4j-pgvector</artifactId>
57-
<version>${quarkus-langchain4j.version}</version>
58-
</dependency>
59-
60-
61-
<!-- Minimal dependencies to constrain the build -->
62-
<dependency>
63-
<groupId>io.quarkiverse.langchain4j</groupId>
64-
<artifactId>quarkus-langchain4j-openai-deployment</artifactId>
65-
<version>${quarkus-langchain4j.version}</version>
38+
<groupId>io.quarkus</groupId>
39+
<artifactId>quarkus-junit5</artifactId>
6640
<scope>test</scope>
67-
<type>pom</type>
68-
<exclusions>
69-
<exclusion>
70-
<groupId>*</groupId>
71-
<artifactId>*</artifactId>
72-
</exclusion>
73-
</exclusions>
7441
</dependency>
42+
<dependency>
43+
<groupId>io.rest-assured</groupId>
44+
<artifactId>rest-assured</artifactId>
45+
<scope>test</scope>
46+
</dependency>
7547
</dependencies>
7648

7749
<build>
@@ -106,6 +78,76 @@
10678
</build>
10779

10880
<profiles>
81+
<profile>
82+
<id>default-project-deps</id>
83+
<activation>
84+
<property>
85+
<name>!platform-deps</name>
86+
</property>
87+
</activation>
88+
<properties>
89+
<quarkus-langchain4j.version>1.2.0</quarkus-langchain4j.version>
90+
</properties>
91+
<dependencyManagement>
92+
<dependencies>
93+
<dependency>
94+
<groupId>${quarkus.platform.group-id}</groupId>
95+
<artifactId>${quarkus.platform.artifact-id}</artifactId>
96+
<version>${quarkus.platform.version}</version>
97+
<type>pom</type>
98+
<scope>import</scope>
99+
</dependency>
100+
</dependencies>
101+
</dependencyManagement>
102+
<dependencies>
103+
<dependency>
104+
<groupId>io.quarkiverse.langchain4j</groupId>
105+
<artifactId>quarkus-langchain4j-openai</artifactId>
106+
<version>${quarkus-langchain4j.version}</version>
107+
</dependency>
108+
<dependency>
109+
<groupId>io.quarkiverse.langchain4j</groupId>
110+
<artifactId>quarkus-langchain4j-pgvector</artifactId>
111+
<version>${quarkus-langchain4j.version}</version>
112+
</dependency>
113+
</dependencies>
114+
</profile>
115+
<profile>
116+
<id>platform-deps</id>
117+
<activation>
118+
<property>
119+
<name>platform-deps</name>
120+
</property>
121+
</activation>
122+
<dependencyManagement>
123+
<dependencies>
124+
<dependency>
125+
<groupId>${quarkus.platform.group-id}</groupId>
126+
<artifactId>${quarkus.platform.artifact-id}</artifactId>
127+
<version>${quarkus.platform.version}</version>
128+
<type>pom</type>
129+
<scope>import</scope>
130+
</dependency>
131+
<dependency>
132+
<groupId>${quarkus.platform.group-id}</groupId>
133+
<artifactId>quarkus-langchain4j-bom</artifactId>
134+
<version>${quarkus.platform.version}</version>
135+
<type>pom</type>
136+
<scope>import</scope>
137+
</dependency>
138+
</dependencies>
139+
</dependencyManagement>
140+
<dependencies>
141+
<dependency>
142+
<groupId>io.quarkiverse.langchain4j</groupId>
143+
<artifactId>quarkus-langchain4j-openai</artifactId>
144+
</dependency>
145+
<dependency>
146+
<groupId>io.quarkiverse.langchain4j</groupId>
147+
<artifactId>quarkus-langchain4j-pgvector</artifactId>
148+
</dependency>
149+
</dependencies>
150+
</profile>
109151
<profile>
110152
<id>native</id>
111153
<activation>
@@ -137,6 +179,7 @@
137179
</plugins>
138180
</build>
139181
<properties>
182+
<skipITs>false</skipITs>
140183
<quarkus.package.type>native</quarkus.package.type>
141184
</properties>
142185
</profile>
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package io.quarkiverse.langchain4j.sample.tests;
2+
3+
import io.quarkus.test.junit.QuarkusIntegrationTest;
4+
import org.junit.jupiter.api.Disabled;
5+
6+
@QuarkusIntegrationTest
7+
@Disabled("https://github.com/quarkiverse/quarkus-langchain4j/issues/1814")
8+
public class MovieIT extends MovieTest {
9+
10+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package io.quarkiverse.langchain4j.sample.tests;
2+
3+
import io.quarkus.test.junit.QuarkusTest;
4+
import io.restassured.response.Response;
5+
import io.restassured.response.ResponseBody;
6+
import org.junit.jupiter.api.Assertions;
7+
import org.junit.jupiter.api.Test;
8+
9+
import static io.restassured.RestAssured.given;
10+
11+
@QuarkusTest
12+
public class MovieTest {
13+
14+
@Test
15+
public void recommendations() {
16+
Response movie = given().get("movies/by-title/Shawshank");
17+
Assertions.assertEquals(200, movie.statusCode());
18+
long id = movie.jsonPath().getLong("[0].id");
19+
Assertions.assertEquals(1, id);
20+
21+
Response recommended = given().get("movies/similar/1");
22+
Assertions.assertEquals(200, recommended.statusCode());
23+
ResponseBody body = recommended.body();
24+
Assertions.assertTrue(body.asString().contains("Green Mile"),
25+
"The recommendations don't contain the expected movie 'Green Mile': " + body.prettyPrint());
26+
}
27+
}

samples/pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
<module>fraud-detection</module>
2222
<module>mcp-tools</module>
2323
<module>mcp-sse-client-server</module>
24+
<module>movie-similarity-search</module>
2425
<module>secure-mcp-sse-client-server</module>
2526
<module>secure-mcp-cmd-client-server</module>
2627
<module>review-triage</module>

0 commit comments

Comments
 (0)