mirror of
https://github.com/gotify/server.git
synced 2026-05-06 21:42:07 +08:00
42 lines
902 B
Go
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)
|
|
}
|