github.com/pharosnet/flyline@v1.0.2/value_test.go (about)

     1  package flyline
     2  
     3  import "testing"
     4  
     5  func TestValue_Scan_Basic(t *testing.T) {
     6  	var err error = nil
     7  	vInt := int64(1)
     8  	i := int64(0)
     9  	err = ValueScan(vInt, &i)
    10  	t.Logf("int64: %v, %v", i == vInt, err)
    11  	vBool := true
    12  	b := false
    13  	err = ValueScan(vBool, &b)
    14  	t.Logf("bool: %v, %v", b == vBool, err)
    15  }
    16  
    17  func TestValue_Scan_Slice(t *testing.T) {
    18  	var err error = nil
    19  	v := []int64{1, 2, 3, 4}
    20  	s := make([]int64, 0, 4)
    21  	err = ValueScan(v, &s)
    22  	t.Logf("slice: src = %v, dest = %v, err = %v", v, s, err)
    23  }
    24  
    25  type P struct {
    26  	V int64
    27  }
    28  
    29  func TestValue_Scan_Interface(t *testing.T) {
    30  	var err error = nil
    31  	v1 := &P{1}
    32  	s1 := P{}
    33  	err = ValueScan(v1, &s1)
    34  	t.Logf("slice: src = %v, dest = %v, err = %v", v1, s1, err)
    35  
    36  	v2 := P{1}
    37  	s2 := new(P)
    38  	err = ValueScan(v2, s2)
    39  	t.Logf("slice: src = %v, dest = %v, err = %v", v2, s2, err)
    40  
    41  }