✅ Add testable examples
This commit is contained in:
parent
d9f6417ca5
commit
6dc48772c0
2 changed files with 34 additions and 1 deletions
31
example_test.go
Normal file
31
example_test.go
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
//nolint:perfsprint // Not that concerned about microoptimizations for test code
|
||||
package ezcache_test
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"codeberg.org/danjones000/ezcache"
|
||||
)
|
||||
|
||||
func Example() {
|
||||
// Create a five minute cache.
|
||||
cache, _ := ezcache.New(func(id uint8) (string, error) {
|
||||
fmt.Println("Fetching new value for", id)
|
||||
return fmt.Sprintf("%d", id), nil
|
||||
}, 5*time.Minute)
|
||||
|
||||
val, _ := cache.Get(5)
|
||||
fmt.Println("Got value", val)
|
||||
val, _ = cache.Get(5)
|
||||
fmt.Println("Got value", val)
|
||||
val, _ = cache.Get(4)
|
||||
fmt.Println("Got value", val)
|
||||
|
||||
// Output:
|
||||
// Fetching new value for 5
|
||||
// Got value 5
|
||||
// Got value 5
|
||||
// Fetching new value for 4
|
||||
// Got value 4
|
||||
}
|
||||
|
|
@ -1,3 +1,4 @@
|
|||
//nolint:perfsprint // Not that concerned about microoptimizations for test code
|
||||
package ezcache_test
|
||||
|
||||
import (
|
||||
|
|
@ -69,7 +70,7 @@ func TestGetExpire(t *testing.T) {
|
|||
assert.True(t, hit)
|
||||
|
||||
hit = false
|
||||
time.Sleep(2)
|
||||
time.Sleep(2 * time.Nanosecond)
|
||||
val, err = cache.Get(4)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, "4", val)
|
||||
|
|
@ -77,6 +78,7 @@ func TestGetExpire(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestGetError(t *testing.T) {
|
||||
//nolint:err113 // It's just a test for an error.
|
||||
cache, _ := ezcache.New(func(k uint8) (byte, error) { return 0, fmt.Errorf("Nope for %d", k) }, 1)
|
||||
|
||||
_, err := cache.Get(4)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue