@@ -692,4 +692,48 @@ public void testSaveTaskInternal() throws A2AServerException {
692692 assertEquals ("test-context" , taskManagerWithoutId .getContextId ());
693693 assertSame (savedTask , taskManagerWithoutId .getTask ());
694694 }
695+
696+ @ Test
697+ public void testUpdateWithMessage () throws A2AServerException {
698+ Message initialMessage = new Message .Builder ()
699+ .role (Message .Role .USER )
700+ .parts (Collections .singletonList (new TextPart ("initial message" )))
701+ .messageId ("initial-msg-id" )
702+ .build ();
703+
704+ TaskManager taskManagerWithInitialMessage = new TaskManager (null , null , taskStore , initialMessage );
705+
706+ Message taskMessage = new Message .Builder ()
707+ .role (Message .Role .AGENT )
708+ .parts (Collections .singletonList (new TextPart ("task message" )))
709+ .messageId ("task-msg-id" )
710+ .build ();
711+
712+ TaskStatusUpdateEvent event = new TaskStatusUpdateEvent .Builder ()
713+ .taskId ("new-task-id" )
714+ .contextId ("some-context" )
715+ .status (new TaskStatus (TaskState .SUBMITTED , taskMessage , null ))
716+ .isFinal (false )
717+ .build ();
718+
719+ Task saved = taskManagerWithInitialMessage .saveTaskEvent (event );
720+
721+ Message updateMessage = new Message .Builder ()
722+ .role (Message .Role .USER )
723+ .parts (Collections .singletonList (new TextPart ("update message" )))
724+ .messageId ("update-msg-id" )
725+ .build ();
726+
727+ Task updated = taskManagerWithInitialMessage .updateWithMessage (updateMessage , saved );
728+
729+ // There should now be a history containing the initialMessage, task message and update message
730+ assertNotNull (updated .getHistory ());
731+ assertEquals (3 , updated .getHistory ().size ());
732+ assertEquals ("initial message" , ((TextPart ) updated .getHistory ().get (0 ).getParts ().get (0 )).getText ());
733+
734+ // The message in the current state should be null
735+ assertNull (updated .getStatus ().message ());
736+ assertEquals ("task message" , ((TextPart ) updated .getHistory ().get (1 ).getParts ().get (0 )).getText ());
737+ assertEquals ("update message" , ((TextPart ) updated .getHistory ().get (2 ).getParts ().get (0 )).getText ());
738+ }
695739}
0 commit comments