planner/sync-service/memory_test.go

89 lines
1.9 KiB
Go
Raw Normal View History

2024-09-08 10:09:54 +02:00
package main
2024-08-16 14:25:06 +02:00
import (
"testing"
2024-08-23 08:19:04 +02:00
"time"
2024-08-16 14:25:06 +02:00
)
2024-08-23 08:19:04 +02:00
func TestMemoryItem(t *testing.T) {
2024-08-16 14:25:06 +02:00
t.Parallel()
2024-09-08 10:09:54 +02:00
mem := NewMemory()
2024-08-18 19:34:27 +02:00
t.Log("start empty")
2024-08-23 10:52:17 +02:00
actItems, actErr := mem.Updated(time.Time{})
2024-08-16 14:25:06 +02:00
if actErr != nil {
t.Errorf("exp nil, got %v", actErr)
}
2024-08-23 08:19:04 +02:00
if len(actItems) != 0 {
t.Errorf("exp 0, got %d", len(actItems))
2024-08-16 14:25:06 +02:00
}
2024-08-18 19:34:27 +02:00
t.Log("add one")
2024-09-08 10:09:54 +02:00
t1 := NewSyncable("test")
2024-08-23 10:52:17 +02:00
if actErr := mem.Update(t1); actErr != nil {
2024-08-18 19:34:27 +02:00
t.Errorf("exp nil, got %v", actErr)
}
2024-08-23 10:52:17 +02:00
actItems, actErr = mem.Updated(time.Time{})
2024-08-18 19:34:27 +02:00
if actErr != nil {
t.Errorf("exp nil, got %v", actErr)
}
2024-08-23 08:19:04 +02:00
if len(actItems) != 1 {
t.Errorf("exp 1, gor %d", len(actItems))
}
2024-08-28 07:21:02 +02:00
if actItems[0].ID != t1.ID {
t.Errorf("exp %v, got %v", actItems[0].ID, t1.ID)
2024-08-18 19:34:27 +02:00
}
2024-08-23 08:19:04 +02:00
before := time.Now()
2024-08-18 19:34:27 +02:00
t.Log("add second")
2024-09-08 10:09:54 +02:00
t2 := NewSyncable("test 2")
2024-08-23 10:52:17 +02:00
if actErr := mem.Update(t2); actErr != nil {
2024-08-18 19:34:27 +02:00
t.Errorf("exp nil, got %v", actErr)
}
2024-08-23 10:52:17 +02:00
actItems, actErr = mem.Updated(time.Time{})
2024-08-18 19:34:27 +02:00
if actErr != nil {
t.Errorf("exp nil, got %v", actErr)
}
2024-08-23 08:19:04 +02:00
if len(actItems) != 2 {
t.Errorf("exp 2, gor %d", len(actItems))
2024-08-18 19:34:27 +02:00
}
2024-08-28 07:21:02 +02:00
if actItems[0].ID != t1.ID {
t.Errorf("exp %v, got %v", actItems[0].ID, t1.ID)
2024-08-23 08:19:04 +02:00
}
2024-08-28 07:21:02 +02:00
if actItems[1].ID != t2.ID {
t.Errorf("exp %v, got %v", actItems[1].ID, t2.ID)
2024-08-24 11:46:27 +02:00
}
2024-08-23 08:19:04 +02:00
2024-08-23 10:52:17 +02:00
actItems, actErr = mem.Updated(before)
2024-08-18 19:34:27 +02:00
if actErr != nil {
t.Errorf("exp nil, got %v", actErr)
}
2024-08-23 08:19:04 +02:00
if len(actItems) != 1 {
t.Errorf("exp 1, gor %d", len(actItems))
2024-08-18 19:34:27 +02:00
}
2024-08-28 07:21:02 +02:00
if actItems[0].ID != t2.ID {
t.Errorf("exp %v, got %v", actItems[0].ID, t2.ID)
2024-08-23 08:19:04 +02:00
}
2024-08-28 07:21:02 +02:00
t.Log("update first")
t1.Updated = time.Now()
if actErr := mem.Update(t1); actErr != nil {
2024-08-24 11:46:27 +02:00
t.Errorf("exp nil, got %v", actErr)
}
2024-08-28 07:21:02 +02:00
actItems, actErr = mem.Updated(before)
2024-08-24 11:46:27 +02:00
if actErr != nil {
t.Errorf("exp nil, got %v", actErr)
}
2024-08-28 07:21:02 +02:00
if len(actItems) != 2 {
2024-08-24 11:46:27 +02:00
t.Errorf("exp 2, gor %d", len(actItems))
}
2024-08-28 07:21:02 +02:00
if actItems[0].ID != t1.ID {
t.Errorf("exp %v, got %v", actItems[0].ID, t1.ID)
2024-08-24 11:46:27 +02:00
}
2024-08-28 07:21:02 +02:00
if actItems[1].ID != t2.ID {
t.Errorf("exp %v, got %v", actItems[1].ID, t2.ID)
2024-08-24 11:46:27 +02:00
}
2024-08-16 14:25:06 +02:00
}