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 }