Skip to content

Commit b95f822

Browse files
authored
test: Add unit tests for Query class validation and equality behavior (spring-projects#4036)
Signed-off-by: Alex Klimenko <[email protected]>
1 parent 9487817 commit b95f822

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

spring-ai-rag/src/test/java/org/springframework/ai/rag/QueryTests.java

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import org.junit.jupiter.api.Test;
2020

2121
import static org.assertj.core.api.Assertions.assertThatThrownBy;
22+
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
2223

2324
/**
2425
* Unit tests for {@link Query}.
@@ -39,4 +40,42 @@ void whenTextIsEmptyThenThrow() {
3940
.hasMessageContaining("text cannot be null or empty");
4041
}
4142

43+
@Test
44+
void whenTextIsBlankThenThrow() {
45+
assertThatThrownBy(() -> new Query(" ")).isInstanceOf(IllegalArgumentException.class)
46+
.hasMessageContaining("text cannot be null or empty");
47+
}
48+
49+
@Test
50+
void whenTextIsTabsAndSpacesThenThrow() {
51+
assertThatThrownBy(() -> new Query("\t\n \r")).isInstanceOf(IllegalArgumentException.class)
52+
.hasMessageContaining("text cannot be null or empty");
53+
}
54+
55+
@Test
56+
void whenMultipleQueriesWithSameTextThenEqual() {
57+
String text = "Same query text";
58+
Query query1 = new Query(text);
59+
Query query2 = new Query(text);
60+
61+
assertThat(query1).isEqualTo(query2);
62+
assertThat(query1.hashCode()).isEqualTo(query2.hashCode());
63+
}
64+
65+
@Test
66+
void whenQueriesWithDifferentTextThenNotEqual() {
67+
Query query1 = new Query("First query");
68+
Query query2 = new Query("Second query");
69+
70+
assertThat(query1).isNotEqualTo(query2);
71+
assertThat(query1.hashCode()).isNotEqualTo(query2.hashCode());
72+
}
73+
74+
@Test
75+
void whenCompareQueryToNullThenNotEqual() {
76+
Query query = new Query("Test query");
77+
78+
assertThat(query).isNotEqualTo(null);
79+
}
80+
4281
}

0 commit comments

Comments
 (0)