@@ -152,5 +152,62 @@ void messagesWithNullElementsNotAllowed() {
152152 .isInstanceOf (IllegalArgumentException .class )
153153 .hasMessageContaining ("messages cannot contain null elements" );
154154 }
155+ // refresh test code
156+ @ Test
157+ void refreshAddsMessagesToNewConversation () {
158+ String conversationId = UUID .randomUUID ().toString ();
159+ List <Message > messagesToAdd = List .of (new UserMessage ("Hello" ));
160+ this .chatMemoryRepository .refresh (conversationId , List .of (), messagesToAdd );
161+
162+ assertThat (this .chatMemoryRepository .findByConversationId (conversationId )).isEqualTo (messagesToAdd );
163+ }
164+
165+ @ Test
166+ void refreshAddsMessagesToExistingConversation () {
167+ String conversationId = UUID .randomUUID ().toString ();
168+ Message initialMessage = new UserMessage ("Initial" );
169+ this .chatMemoryRepository .saveAll (conversationId , List .of (initialMessage ));
170+
171+ Message newMessage = new AssistantMessage ("New" );
172+ this .chatMemoryRepository .refresh (conversationId , List .of (), List .of (newMessage ));
173+
174+ assertThat (this .chatMemoryRepository .findByConversationId (conversationId )).containsExactly (initialMessage , newMessage );
175+ }
176+
177+ @ Test
178+ void refreshDeletesMessagesFromExistingConversation () {
179+ String conversationId = UUID .randomUUID ().toString ();
180+ Message messageToKeep = new UserMessage ("Keep" );
181+ Message messageToDelete = new AssistantMessage ("Delete" );
182+ this .chatMemoryRepository .saveAll (conversationId , List .of (messageToKeep , messageToDelete ));
183+
184+ this .chatMemoryRepository .refresh (conversationId , List .of (messageToDelete ), List .of ());
185+
186+ assertThat (this .chatMemoryRepository .findByConversationId (conversationId )).containsExactly (messageToKeep );
187+ }
188+
189+ @ Test
190+ void refreshAddsAndDeletesMessages () {
191+ String conversationId = UUID .randomUUID ().toString ();
192+ Message messageToKeep = new UserMessage ("Keep" );
193+ Message messageToDelete = new AssistantMessage ("Delete" );
194+ this .chatMemoryRepository .saveAll (conversationId , List .of (messageToKeep , messageToDelete ));
195+
196+ Message messageToAdd = new UserMessage ("Add" );
197+ this .chatMemoryRepository .refresh (conversationId , List .of (messageToDelete ), List .of (messageToAdd ));
198+
199+ assertThat (this .chatMemoryRepository .findByConversationId (conversationId )).containsExactlyInAnyOrder (messageToKeep , messageToAdd );
200+ }
201+
202+ @ Test
203+ void refreshWithEmptyChangesDoesNothing () {
204+ String conversationId = UUID .randomUUID ().toString ();
205+ List <Message > initialMessages = List .of (new UserMessage ("Hello" ));
206+ this .chatMemoryRepository .saveAll (conversationId , initialMessages );
207+
208+ this .chatMemoryRepository .refresh (conversationId , List .of (), List .of ());
209+
210+ assertThat (this .chatMemoryRepository .findByConversationId (conversationId )).isEqualTo (initialMessages );
211+ }
155212
156213}
0 commit comments