code.gitea.io/gitea@v1.22.3/modules/optional/option_test.go (about) 1 // Copyright 2024 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package optional_test 5 6 import ( 7 "testing" 8 9 "code.gitea.io/gitea/modules/optional" 10 11 "github.com/stretchr/testify/assert" 12 ) 13 14 func TestOption(t *testing.T) { 15 var uninitialized optional.Option[int] 16 assert.False(t, uninitialized.Has()) 17 assert.Equal(t, int(0), uninitialized.Value()) 18 assert.Equal(t, int(1), uninitialized.ValueOrDefault(1)) 19 20 none := optional.None[int]() 21 assert.False(t, none.Has()) 22 assert.Equal(t, int(0), none.Value()) 23 assert.Equal(t, int(1), none.ValueOrDefault(1)) 24 25 some := optional.Some[int](1) 26 assert.True(t, some.Has()) 27 assert.Equal(t, int(1), some.Value()) 28 assert.Equal(t, int(1), some.ValueOrDefault(2)) 29 30 noneBool := optional.None[bool]() 31 assert.False(t, noneBool.Has()) 32 assert.False(t, noneBool.Value()) 33 assert.True(t, noneBool.ValueOrDefault(true)) 34 35 someBool := optional.Some(true) 36 assert.True(t, someBool.Has()) 37 assert.True(t, someBool.Value()) 38 assert.True(t, someBool.ValueOrDefault(false)) 39 40 var ptr *int 41 assert.False(t, optional.FromPtr(ptr).Has()) 42 43 int1 := 1 44 opt1 := optional.FromPtr(&int1) 45 assert.True(t, opt1.Has()) 46 assert.Equal(t, int(1), opt1.Value()) 47 48 assert.False(t, optional.FromNonDefault("").Has()) 49 50 opt2 := optional.FromNonDefault("test") 51 assert.True(t, opt2.Has()) 52 assert.Equal(t, "test", opt2.Value()) 53 54 assert.False(t, optional.FromNonDefault(0).Has()) 55 56 opt3 := optional.FromNonDefault(1) 57 assert.True(t, opt3.Has()) 58 assert.Equal(t, int(1), opt3.Value()) 59 }