go-zero/core/syncx/managedresource_test.go

23 lines
423 B
Go
Raw Permalink Normal View History

2020-07-26 17:09:05 +08:00
package syncx
import (
"sync/atomic"
"testing"
"github.com/stretchr/testify/assert"
)
func TestManagedResource(t *testing.T) {
var count int32
resource := NewManagedResource(func() any {
2020-07-26 17:09:05 +08:00
return atomic.AddInt32(&count, 1)
}, func(a, b any) bool {
2020-07-26 17:09:05 +08:00
return a == b
})
assert.Equal(t, resource.Take(), resource.Take())
old := resource.Take()
resource.MarkBroken(old)
assert.NotEqual(t, old, resource.Take())
}