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

Function TestPreferenceManager_ConflictKeepLatest

pkg/memory/preference_test.go:185–221  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

183}
184
185func TestPreferenceManager_ConflictKeepLatest(t *testing.T) {
186 config := DefaultPreferenceManagerConfig()
187 config.ConflictStrategy = ConflictKeepLatest
188 manager := NewPreferenceManager(config)
189
190 // 添加第一个偏好
191 pref1 := &Preference{
192 UserID: "user-1",
193 Category: CategoryUI,
194 Key: "theme",
195 Value: "dark",
196 Strength: 0.8,
197 Confidence: 0.9,
198 }
199 if err := manager.AddPreference(context.Background(), pref1); err != nil {
200 t.Fatalf("AddPreference failed: %v", err)
201 }
202
203 // 添加冲突的偏好(相同 category 和 key)
204 pref2 := &Preference{
205 UserID: "user-1",
206 Category: CategoryUI,
207 Key: "theme",
208 Value: "light",
209 Strength: 0.6,
210 Confidence: 0.7,
211 }
212 if err := manager.AddPreference(context.Background(), pref2); err != nil {
213 t.Fatalf("AddPreference failed: %v", err)
214 }
215
216 // 验证保留了最新的值
217 result, _ := manager.GetPreference(context.Background(), "user-1", CategoryUI, "theme")
218 if result.Value != "light" {
219 t.Errorf("Value = %s, want 'light'", result.Value)
220 }
221}
222
223func TestPreferenceManager_ConflictKeepStronger(t *testing.T) {
224 config := DefaultPreferenceManagerConfig()

Callers

nothing calls this directly

Calls 4

AddPreferenceMethod · 0.95
GetPreferenceMethod · 0.95
NewPreferenceManagerFunction · 0.85

Tested by

no test coverage detected