mirror of
https://github.com/go-micro/go-micro.git
synced 2024-11-24 08:02:32 +02:00
05a299b76c
* Add simple in-memory cache * Support configuring cache expiration duration * Support preinitializing cache with items * Register cache
44 lines
883 B
Go
44 lines
883 B
Go
package cache
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestOptions(t *testing.T) {
|
|
testData := map[string]struct {
|
|
set bool
|
|
expiration time.Duration
|
|
items map[string]Item
|
|
}{
|
|
"DefaultOptions": {false, DefaultExpiration, map[string]Item{}},
|
|
"ModifiedOptions": {true, time.Second, map[string]Item{"test": {"hello go-micro", 0}}},
|
|
}
|
|
|
|
for k, d := range testData {
|
|
t.Run(k, func(t *testing.T) {
|
|
var opts Options
|
|
|
|
if d.set {
|
|
opts = NewOptions(
|
|
Expiration(d.expiration),
|
|
Items(d.items),
|
|
)
|
|
} else {
|
|
opts = NewOptions()
|
|
}
|
|
|
|
// test options
|
|
for _, o := range []Options{opts} {
|
|
if o.Expiration != d.expiration {
|
|
t.Fatalf("Expected expiration '%v', got '%v'", d.expiration, o.Expiration)
|
|
}
|
|
|
|
if o.Items["test"] != d.items["test"] {
|
|
t.Fatalf("Expected items %#v, got %#v", d.items, o.Items)
|
|
}
|
|
}
|
|
})
|
|
}
|
|
}
|