github.com/lingyao2333/mo-zero@v1.4.1/core/syncx/refresource_test.go (about)

     1  package syncx
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  )
     8  
     9  func TestRefCleaner(t *testing.T) {
    10  	var count int
    11  	clean := func() {
    12  		count += 1
    13  	}
    14  
    15  	cleaner := NewRefResource(clean)
    16  	err := cleaner.Use()
    17  	assert.Nil(t, err)
    18  	err = cleaner.Use()
    19  	assert.Nil(t, err)
    20  	cleaner.Clean()
    21  	cleaner.Clean()
    22  	assert.Equal(t, 1, count)
    23  	cleaner.Clean()
    24  	cleaner.Clean()
    25  	assert.Equal(t, 1, count)
    26  	assert.Equal(t, ErrUseOfCleaned, cleaner.Use())
    27  }