github.com/ouraigua/jenkins-library@v0.0.0-20231028010029-fbeaf2f3aa9b/pkg/piperutils/pointer_test.go (about) 1 //go:build unit 2 // +build unit 3 4 package piperutils 5 6 import ( 7 "testing" 8 9 "github.com/stretchr/testify/assert" 10 ) 11 12 func TestSafeDereferenceString(t *testing.T) { 13 type testCase[T any] struct { 14 name string 15 p *T 16 want T 17 } 18 str := "test" 19 tests := []testCase[string]{ 20 { 21 name: "nil", 22 p: nil, 23 want: "", 24 }, 25 { 26 name: "non-nil", 27 p: &str, 28 want: "test", 29 }, 30 } 31 for _, tt := range tests { 32 t.Run(tt.name, func(t *testing.T) { 33 assert.Equalf(t, tt.want, SafeDereference(tt.p), "SafeDereference(%v)", tt.p) 34 }) 35 } 36 } 37 38 func TestSafeDereferenceInt64(t *testing.T) { 39 type testCase[T any] struct { 40 name string 41 p *T 42 want T 43 } 44 i64 := int64(111) 45 tests := []testCase[int64]{ 46 { 47 name: "nil", 48 p: nil, 49 want: 0, 50 }, 51 { 52 name: "non-nil", 53 p: &i64, 54 want: 111, 55 }, 56 } 57 for _, tt := range tests { 58 t.Run(tt.name, func(t *testing.T) { 59 assert.Equalf(t, tt.want, SafeDereference(tt.p), "SafeDereference(%v)", tt.p) 60 }) 61 } 62 }