github.com/go-spring/spring-base@v1.1.3/cast/unit_test.go (about)

     1  /*
     2   * Copyright 2012-2019 the original author or authors.
     3   *
     4   * Licensed under the Apache License, Version 2.0 (the "License");
     5   * you may not use this file except in compliance with the License.
     6   * You may obtain a copy of the License at
     7   *
     8   *      https://www.apache.org/licenses/LICENSE-2.0
     9   *
    10   * Unless required by applicable law or agreed to in writing, software
    11   * distributed under the License is distributed on an "AS IS" BASIS,
    12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13   * See the License for the specific language governing permissions and
    14   * limitations under the License.
    15   */
    16  
    17  package cast_test
    18  
    19  import (
    20  	"errors"
    21  	"testing"
    22  
    23  	"github.com/go-spring/spring-base/assert"
    24  	"github.com/go-spring/spring-base/cast"
    25  )
    26  
    27  func TestToUint(t *testing.T) {
    28  
    29  	assert.Equal(t, cast.ToUint(nil), uint(0))
    30  
    31  	assert.Equal(t, cast.ToUint(int(3)), uint(3))
    32  	assert.Equal(t, cast.ToUint(int8(3)), uint(3))
    33  	assert.Equal(t, cast.ToUint(int16(3)), uint(3))
    34  	assert.Equal(t, cast.ToUint(int32(3)), uint(3))
    35  	assert.Equal(t, cast.ToUint(int64(3)), uint(3))
    36  	assert.Equal(t, cast.ToUint(cast.IntPtr(3)), uint(3))
    37  	assert.Equal(t, cast.ToUint(cast.Int8Ptr(3)), uint(3))
    38  	assert.Equal(t, cast.ToUint(cast.Int16Ptr(3)), uint(3))
    39  	assert.Equal(t, cast.ToUint(cast.Int32Ptr(3)), uint(3))
    40  	assert.Equal(t, cast.ToUint(cast.Int64Ptr(3)), uint(3))
    41  
    42  	assert.Equal(t, cast.ToUint8(uint(3)), uint8(3))
    43  	assert.Equal(t, cast.ToUint8(uint8(3)), uint8(3))
    44  	assert.Equal(t, cast.ToUint8(uint16(3)), uint8(3))
    45  	assert.Equal(t, cast.ToUint8(uint32(3)), uint8(3))
    46  	assert.Equal(t, cast.ToUint8(uint64(3)), uint8(3))
    47  	assert.Equal(t, cast.ToUint8(cast.UintPtr(3)), uint8(3))
    48  	assert.Equal(t, cast.ToUint8(cast.Uint8Ptr(3)), uint8(3))
    49  	assert.Equal(t, cast.ToUint8(cast.Uint16Ptr(3)), uint8(3))
    50  	assert.Equal(t, cast.ToUint8(cast.Uint32Ptr(3)), uint8(3))
    51  	assert.Equal(t, cast.ToUint8(cast.Uint64Ptr(3)), uint8(3))
    52  
    53  	assert.Equal(t, cast.ToUint16(float32(3)), uint16(3))
    54  	assert.Equal(t, cast.ToUint16(float64(3)), uint16(3))
    55  	assert.Equal(t, cast.ToUint16(cast.Float32Ptr(3)), uint16(3))
    56  	assert.Equal(t, cast.ToUint16(cast.Float64Ptr(3)), uint16(3))
    57  
    58  	assert.Equal(t, cast.ToUint32("3"), uint32(3))
    59  	assert.Equal(t, cast.ToUint32(cast.StringPtr("3")), uint32(3))
    60  
    61  	assert.Equal(t, cast.ToUint64(true), uint64(1))
    62  	assert.Equal(t, cast.ToUint64(false), uint64(0))
    63  	assert.Equal(t, cast.ToUint64(cast.BoolPtr(true)), uint64(1))
    64  	assert.Equal(t, cast.ToUint64(cast.BoolPtr(false)), uint64(0))
    65  
    66  	_, err := cast.ToUint64E("abc")
    67  	assert.Error(t, err, "strconv.ParseUint: parsing \"abc\": invalid syntax")
    68  
    69  	_, err = cast.ToUint64E(errors.New("abc"))
    70  	assert.Error(t, err, "unable to cast type \\(\\*errors\\.errorString\\) to uint64")
    71  }