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  }