Files
server/decaymap/decaymap_test.go
Jannis Mattheis 2674f729eb fix: use decay map
2026-04-11 18:53:48 +02:00

42 lines
902 B
Go

package decaymap
import (
"testing"
"time"
"github.com/stretchr/testify/assert"
)
func TestDecayMap(t *testing.T) {
epoch := time.Now()
dm := NewDecayMap[string, string](epoch, 10*time.Second)
dm.Set(epoch.Add(1*time.Second), "11", "value11")
dm.Set(epoch.Add(2*time.Second), "12", "value12")
dm.Set(epoch.Add(3*time.Second), "13", "value13")
value, ok := dm.Pop("11")
assert.True(t, ok)
assert.Equal(t, "value11", value)
_, ok = dm.Pop("11")
assert.False(t, ok)
dm.Set(epoch.Add(11*time.Second), "21", "value21")
dm.Set(epoch.Add(12*time.Second), "22", "value22")
dm.Set(epoch.Add(13*time.Second), "23", "value23")
value, ok = dm.Pop("21")
assert.True(t, ok)
assert.Equal(t, "value21", value)
value, ok = dm.Pop("12")
assert.True(t, ok)
assert.Equal(t, "value12", value)
dm.Set(epoch.Add(21*time.Second), "31", "value31")
_, ok = dm.Pop("13")
assert.False(t, ok)
}