github.com/yaoapp/kun@v0.9.0/any/sync_test.go (about)

     1  package any
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/assert"
     8  )
     9  
    10  func TestSyncMake(t *testing.T) {
    11  	v := MakeSync()
    12  	assert.Empty(t, v.String())
    13  }
    14  
    15  func TestSyncOf(t *testing.T) {
    16  	v := SyncOf("hello")
    17  	assert.Equal(t, "hello", v.String())
    18  }
    19  
    20  func TestSyncSet(t *testing.T) {
    21  	v := SyncOf("hello")
    22  	assert.Equal(t, "hello", v.CString())
    23  
    24  	v.Set(1)
    25  	assert.Equal(t, 1, v.Get())
    26  	assert.Equal(t, "1", v.CString())
    27  }
    28  
    29  func TestSyncGet(t *testing.T) {
    30  
    31  	v := SyncOf("hello")
    32  	assert.Equal(t, "hello", v.Get())
    33  	assert.Equal(t, "hello", v.Val())
    34  	assert.Equal(t, "hello", v.Interface())
    35  
    36  	v.Set(1)
    37  	assert.Equal(t, 1, v.Get())
    38  	assert.Equal(t, 1, v.Val())
    39  	assert.Equal(t, 1, v.Interface())
    40  }
    41  
    42  func TestSyncString(t *testing.T) {
    43  	v := SyncOf("hello")
    44  	assert.Equal(t, "hello", v.String())
    45  	v.Set(1)
    46  	assert.Panics(t, func() {
    47  		fmt.Printf(v.String())
    48  	})
    49  }
    50  
    51  func TestSyncCString(t *testing.T) {
    52  	v := SyncOf("hello")
    53  	assert.Equal(t, "hello", v.CString())
    54  	v.Set(1)
    55  	assert.Equal(t, "1", v.CString())
    56  }