MCPcopy Create free account
hub / github.com/astercloud/aster / TestInMemoryService_GetEvents

Function TestInMemoryService_GetEvents

pkg/session/inmemory_test.go:341–431  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

339}
340
341func TestInMemoryService_GetEvents(t *testing.T) {
342 ctx := context.Background()
343 service := NewInMemoryService()
344
345 sess, _ := service.Create(ctx, &CreateRequest{
346 AppName: "test-app",
347 UserID: "user-1",
348 AgentID: "agent-1",
349 })
350
351 // 准备测试数据
352 for i := range 10 {
353 event := &Event{
354 ID: "evt-" + string(rune('0'+i)),
355 Timestamp: time.Now(),
356 InvocationID: "inv-1",
357 AgentID: "agent-1",
358 Branch: "root",
359 Author: "user",
360 Content: types.Message{
361 Role: types.RoleUser,
362 Content: "Message",
363 },
364 }
365 if err := service.AppendEvent(ctx, sess.ID(), event); err != nil {
366 t.Fatalf("AppendEvent failed: %v", err)
367 }
368 }
369
370 t.Run("获取所有事件", func(t *testing.T) {
371 events, err := service.GetEvents(ctx, sess.ID(), nil)
372 require.NoError(t, err)
373 assert.Len(t, events, 10)
374 })
375
376 t.Run("限制返回数量", func(t *testing.T) {
377 events, err := service.GetEvents(ctx, sess.ID(), &EventFilter{
378 Limit: 5,
379 })
380 require.NoError(t, err)
381 assert.Len(t, events, 5)
382 })
383
384 t.Run("按 InvocationID 过滤", func(t *testing.T) {
385 // 添加不同 InvocationID 的事件
386 if err := service.AppendEvent(ctx, sess.ID(), &Event{
387 ID: "evt-special",
388 Timestamp: time.Now(),
389 InvocationID: "inv-special",
390 AgentID: "agent-1",
391 Branch: "root",
392 Author: "user",
393 }); err != nil {
394 t.Fatalf("AppendEvent failed: %v", err)
395 }
396
397 // EventFilter不支持InvocationID,获取所有事件后手动过滤
398 events, err := service.GetEvents(ctx, sess.ID(), nil)

Callers

nothing calls this directly

Calls 7

CreateMethod · 0.95
AppendEventMethod · 0.95
GetEventsMethod · 0.95
NewInMemoryServiceFunction · 0.85
IDMethod · 0.65
LenMethod · 0.65
RunMethod · 0.45

Tested by

no test coverage detected