43 lines
736 B
Go
43 lines
736 B
Go
package ifname
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestTTLCacheExpire(t *testing.T) {
|
|
c := NewTTLCache(1*time.Second, 100)
|
|
|
|
c.now = func() time.Time {
|
|
return time.Unix(0, 0)
|
|
}
|
|
|
|
c.Put("ones", nameMap{1: "one"})
|
|
require.Len(t, c.lru.m, 1)
|
|
|
|
c.now = func() time.Time {
|
|
return time.Unix(1, 0)
|
|
}
|
|
|
|
_, ok, _ := c.Get("ones")
|
|
require.False(t, ok)
|
|
require.Empty(t, c.lru.m)
|
|
require.Equal(t, 0, c.lru.l.Len())
|
|
}
|
|
|
|
func TestTTLCache(t *testing.T) {
|
|
c := NewTTLCache(1*time.Second, 100)
|
|
|
|
c.now = func() time.Time {
|
|
return time.Unix(0, 0)
|
|
}
|
|
|
|
expected := nameMap{1: "one"}
|
|
c.Put("ones", expected)
|
|
|
|
actual, ok, _ := c.Get("ones")
|
|
require.True(t, ok)
|
|
require.Equal(t, expected, actual)
|
|
}
|