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

     1  package syncx
     2  
     3  import (
     4  	"testing"
     5  	"time"
     6  
     7  	"github.com/stretchr/testify/assert"
     8  )
     9  
    10  func TestAtomicDuration(t *testing.T) {
    11  	d := ForAtomicDuration(time.Duration(100))
    12  	assert.Equal(t, time.Duration(100), d.Load())
    13  	d.Set(time.Duration(200))
    14  	assert.Equal(t, time.Duration(200), d.Load())
    15  	assert.True(t, d.CompareAndSwap(time.Duration(200), time.Duration(300)))
    16  	assert.Equal(t, time.Duration(300), d.Load())
    17  	assert.False(t, d.CompareAndSwap(time.Duration(200), time.Duration(400)))
    18  	assert.Equal(t, time.Duration(300), d.Load())
    19  }