(t *testing.T)
| 137 | } |
| 138 | |
| 139 | func TestServer_HandleRequest_TasksGet(t *testing.T) { |
| 140 | // 创建 Actor 系统 |
| 141 | system := actor.NewSystem("test-a2a") |
| 142 | defer system.Shutdown() |
| 143 | |
| 144 | // 创建 A2A 服务器 |
| 145 | taskStore := NewInMemoryTaskStore() |
| 146 | server := NewServer(system, taskStore) |
| 147 | |
| 148 | agentID := "test-agent" |
| 149 | |
| 150 | // 创建一个任务 |
| 151 | task := NewTask("task-1", "context-1") |
| 152 | task.AddMessage(Message{ |
| 153 | MessageID: "msg-1", |
| 154 | Role: "user", |
| 155 | Parts: []Part{{Kind: "text", Text: "Hello"}}, |
| 156 | }) |
| 157 | task.UpdateStatus(TaskStateCompleted, nil) |
| 158 | require.NoError(t, taskStore.Save(agentID, task)) |
| 159 | |
| 160 | // 构造 tasks/get 请求 |
| 161 | params := TasksGetParams{ |
| 162 | TaskID: task.ID, |
| 163 | } |
| 164 | paramsJSON, _ := json.Marshal(params) |
| 165 | |
| 166 | req := &JSONRPCRequest{ |
| 167 | JSONRPC: "2.0", |
| 168 | ID: "req-1", |
| 169 | Method: "tasks/get", |
| 170 | Params: json.RawMessage(paramsJSON), |
| 171 | } |
| 172 | |
| 173 | // 处理请求 |
| 174 | ctx := context.Background() |
| 175 | resp := server.HandleRequest(ctx, agentID, req) |
| 176 | |
| 177 | // 验证响应 |
| 178 | require.NotNil(t, resp) |
| 179 | assert.Nil(t, resp.Error) |
| 180 | assert.NotNil(t, resp.Result) |
| 181 | |
| 182 | // 验证返回的任务 |
| 183 | var result TasksGetResult |
| 184 | resultBytes, _ := json.Marshal(resp.Result) |
| 185 | err := json.Unmarshal(resultBytes, &result) |
| 186 | require.NoError(t, err) |
| 187 | assert.Equal(t, task.ID, result.Task.ID) |
| 188 | assert.Equal(t, TaskStateCompleted, result.Task.Status.State) |
| 189 | } |
| 190 | |
| 191 | func TestServer_HandleRequest_TasksCancel(t *testing.T) { |
| 192 | // 创建 Actor 系统 |
nothing calls this directly
no test coverage detected