Skip to content

Commit 5ca10cc

Browse files
misselvexukabir
authored andcommitted
Fix testTaskWithMessageDoesNotUseInitialMessage issues .
1 parent cf2303b commit 5ca10cc

File tree

1 file changed

+31
-16
lines changed

1 file changed

+31
-16
lines changed

server-common/src/test/java/io/a2a/server/tasks/TaskManagerTest.java

Lines changed: 31 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
11
package io.a2a.server.tasks;
22

3+
import java.util.Collections;
4+
import java.util.HashMap;
5+
import java.util.List;
6+
37
import static org.junit.jupiter.api.Assertions.assertEquals;
4-
import static org.junit.jupiter.api.Assertions.assertNotSame;
58
import static org.junit.jupiter.api.Assertions.assertNotNull;
9+
import static org.junit.jupiter.api.Assertions.assertNotSame;
610
import static org.junit.jupiter.api.Assertions.assertNull;
711
import static org.junit.jupiter.api.Assertions.assertSame;
812
import static org.junit.jupiter.api.Assertions.assertThrows;
913
import static org.junit.jupiter.api.Assertions.assertTrue;
10-
11-
import java.util.Collections;
12-
import java.util.HashMap;
13-
import java.util.List;
14+
import org.junit.jupiter.api.BeforeEach;
15+
import org.junit.jupiter.api.Test;
1416

1517
import io.a2a.spec.A2AServerException;
1618
import io.a2a.spec.Artifact;
@@ -22,8 +24,6 @@
2224
import io.a2a.spec.TaskStatusUpdateEvent;
2325
import io.a2a.spec.TextPart;
2426
import io.a2a.util.Utils;
25-
import org.junit.jupiter.api.BeforeEach;
26-
import org.junit.jupiter.api.Test;
2727

2828
public class TaskManagerTest {
2929
private static final String TASK_JSON = """
@@ -209,7 +209,7 @@ public void testTaskArtifactUpdateEventAppendTrueWithExistingArtifact() throws A
209209
.append(true)
210210
.build();
211211

212-
Task updatedTask = taskManager.saveTaskEvent(event);
212+
Task updatedTask = taskManager.saveTaskEvent(event);
213213

214214
assertEquals(1, updatedTask.getArtifacts().size());
215215
Artifact updatedArtifact = updatedTask.getArtifacts().get(0);
@@ -421,17 +421,26 @@ public void testTaskWithMessageDoesNotUseInitialMessage() throws A2AServerExcept
421421
.messageId("task-msg-id")
422422
.build();
423423

424-
Task taskWithMessage = new Task.Builder()
425-
.id("new-task-id")
424+
// Use TaskStatusUpdateEvent to trigger the creation of a task, which will check if the initialMessage is used.
425+
TaskStatusUpdateEvent event = new TaskStatusUpdateEvent.Builder()
426+
.taskId("new-task-id")
426427
.contextId("some-context")
427428
.status(new TaskStatus(TaskState.SUBMITTED, taskMessage, null))
429+
.isFinal(false)
428430
.build();
429431

430-
Task saved = taskManagerWithInitialMessage.saveTaskEvent(taskWithMessage);
432+
Task saved = taskManagerWithInitialMessage.saveTaskEvent(event);
431433
Task retrieved = taskManagerWithInitialMessage.getTask();
432434

433-
// Check that the task does not have the initial message in its history
434-
assertNull(retrieved.getHistory());
435+
// There should now be a history containing the initialMessage
436+
// But the current message (taskMessage) should be in the state, not in the history
437+
assertNotNull(retrieved.getHistory());
438+
assertEquals(1, retrieved.getHistory().size());
439+
assertEquals("initial message", ((TextPart) retrieved.getHistory().get(0).getParts().get(0)).getText());
440+
441+
// The message in the current state should be taskMessage
442+
assertNotNull(retrieved.getStatus().message());
443+
assertEquals("task message", ((TextPart) retrieved.getStatus().message().getParts().get(0)).getText());
435444
}
436445

437446
@Test
@@ -510,8 +519,14 @@ public void testMultipleArtifactsWithDifferentArtifactIds() throws A2AServerExce
510519
assertEquals(2, updatedTask.getArtifacts().size());
511520

512521
// Verify both artifacts are present
513-
List<Artifact> artifacts = updatedTask.getArtifacts();
514-
assertTrue(artifacts.stream().anyMatch(a -> "artifact-id-1".equals(a.artifactId()) && "content 1".equals(((TextPart) a.parts().get(0)).getText())), "Artifact 1 should be present");
515-
assertTrue(artifacts.stream().anyMatch(a -> "artifact-id-2".equals(a.artifactId()) && "content 2".equals(((TextPart) a.parts().get(0)).getText())), "Artifact 2 should be present");
522+
List<Artifact> artifacts = updatedTask.getArtifacts();
523+
assertTrue(artifacts.stream()
524+
.anyMatch(a -> "artifact-id-1".equals(a.artifactId())
525+
&& "content 1".equals(((TextPart) a.parts().get(0)).getText()))
526+
, "Artifact 1 should be present");
527+
assertTrue(artifacts.stream()
528+
.anyMatch(a -> "artifact-id-2".equals(a.artifactId())
529+
&& "content 2".equals(((TextPart) a.parts().get(0)).getText()))
530+
, "Artifact 2 should be present");
516531
}
517532
}

0 commit comments

Comments
 (0)