diff --git a/spring-ai-rag/src/test/java/org/springframework/ai/rag/QueryTests.java b/spring-ai-rag/src/test/java/org/springframework/ai/rag/QueryTests.java index b97c054180b..55251171c00 100644 --- a/spring-ai-rag/src/test/java/org/springframework/ai/rag/QueryTests.java +++ b/spring-ai-rag/src/test/java/org/springframework/ai/rag/QueryTests.java @@ -19,6 +19,7 @@ import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.assertj.core.api.AssertionsForClassTypes.assertThat; /** * Unit tests for {@link Query}. @@ -39,4 +40,42 @@ void whenTextIsEmptyThenThrow() { .hasMessageContaining("text cannot be null or empty"); } + @Test + void whenTextIsBlankThenThrow() { + assertThatThrownBy(() -> new Query(" ")).isInstanceOf(IllegalArgumentException.class) + .hasMessageContaining("text cannot be null or empty"); + } + + @Test + void whenTextIsTabsAndSpacesThenThrow() { + assertThatThrownBy(() -> new Query("\t\n \r")).isInstanceOf(IllegalArgumentException.class) + .hasMessageContaining("text cannot be null or empty"); + } + + @Test + void whenMultipleQueriesWithSameTextThenEqual() { + String text = "Same query text"; + Query query1 = new Query(text); + Query query2 = new Query(text); + + assertThat(query1).isEqualTo(query2); + assertThat(query1.hashCode()).isEqualTo(query2.hashCode()); + } + + @Test + void whenQueriesWithDifferentTextThenNotEqual() { + Query query1 = new Query("First query"); + Query query2 = new Query("Second query"); + + assertThat(query1).isNotEqualTo(query2); + assertThat(query1.hashCode()).isNotEqualTo(query2.hashCode()); + } + + @Test + void whenCompareQueryToNullThenNotEqual() { + Query query = new Query("Test query"); + + assertThat(query).isNotEqualTo(null); + } + }