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 }