package syncx import ( "sync/atomic" "testing" "github.com/stretchr/testify/assert" ) func TestManagedResource(t *testing.T) { var count int32 resource := NewManagedResource(func() interface{} { return atomic.AddInt32(&count, 1) }, func(a, b interface{}) bool { return a == b }) assert.Equal(t, resource.Take(), resource.Take()) old := resource.Take() resource.MarkBroken(old) assert.NotEqual(t, old, resource.Take()) }