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

Function TestInMemoryStore_BasicCRUD

pkg/memory/logic/store_test.go:13–66  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

11)
12
13func TestInMemoryStore_BasicCRUD(t *testing.T) {
14 store := NewInMemoryStore()
15 defer func() { _ = store.Close() }()
16
17 ctx := context.Background()
18 namespace := "user:123"
19
20 // 创建 Memory
21 mem := &LogicMemory{
22 ID: "mem-1",
23 Namespace: namespace,
24 Scope: ScopeUser,
25 Type: "preference",
26 Key: "writing_tone",
27 Value: map[string]any{"tone": "casual"},
28 Description: "用户偏好口语化表达",
29 Provenance: &memory.MemoryProvenance{
30 SourceType: memory.SourceUserInput,
31 Confidence: 0.8,
32 },
33 }
34
35 // Save
36 err := store.Save(ctx, mem)
37 require.NoError(t, err)
38
39 // Get
40 retrieved, err := store.Get(ctx, namespace, "writing_tone")
41 require.NoError(t, err)
42 assert.Equal(t, "mem-1", retrieved.ID)
43 assert.Equal(t, namespace, retrieved.Namespace)
44 assert.Equal(t, "preference", retrieved.Type)
45 assert.Equal(t, "用户偏好口语化表达", retrieved.Description)
46 assert.NotZero(t, retrieved.CreatedAt)
47 assert.NotZero(t, retrieved.UpdatedAt)
48
49 // Update
50 mem.Description = "用户偏好简洁口语"
51 mem.Provenance.Confidence = 0.9
52 err = store.Save(ctx, mem)
53 require.NoError(t, err)
54
55 updated, err := store.Get(ctx, namespace, "writing_tone")
56 require.NoError(t, err)
57 assert.Equal(t, "用户偏好简洁口语", updated.Description)
58 assert.Equal(t, 0.9, updated.Provenance.Confidence)
59
60 // Delete
61 err = store.Delete(ctx, namespace, "writing_tone")
62 require.NoError(t, err)
63
64 _, err = store.Get(ctx, namespace, "writing_tone")
65 assert.ErrorIs(t, err, ErrMemoryNotFound)
66}
67
68func TestInMemoryStore_List(t *testing.T) {
69 store := NewInMemoryStore()

Callers

nothing calls this directly

Calls 5

CloseMethod · 0.95
SaveMethod · 0.95
GetMethod · 0.95
DeleteMethod · 0.95
NewInMemoryStoreFunction · 0.70

Tested by

no test coverage detected