| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- // Copyright 2024 The Gitea Authors. All rights reserved.
- // SPDX-License-Identifier: MIT
-
- package optional_test
-
- import (
- "testing"
-
- "code.gitea.io/gitea/modules/optional"
-
- "github.com/stretchr/testify/assert"
- )
-
- func TestOption(t *testing.T) {
- var uninitialized optional.Option[int]
- assert.False(t, uninitialized.Has())
- assert.Equal(t, int(0), uninitialized.Value())
- assert.Equal(t, int(1), uninitialized.ValueOrDefault(1))
-
- none := optional.None[int]()
- assert.False(t, none.Has())
- assert.Equal(t, int(0), none.Value())
- assert.Equal(t, int(1), none.ValueOrDefault(1))
-
- some := optional.Some(1)
- assert.True(t, some.Has())
- assert.Equal(t, int(1), some.Value())
- assert.Equal(t, int(1), some.ValueOrDefault(2))
-
- noneBool := optional.None[bool]()
- assert.False(t, noneBool.Has())
- assert.False(t, noneBool.Value())
- assert.True(t, noneBool.ValueOrDefault(true))
-
- someBool := optional.Some(true)
- assert.True(t, someBool.Has())
- assert.True(t, someBool.Value())
- assert.True(t, someBool.ValueOrDefault(false))
-
- var ptr *int
- assert.False(t, optional.FromPtr(ptr).Has())
-
- int1 := 1
- opt1 := optional.FromPtr(&int1)
- assert.True(t, opt1.Has())
- assert.Equal(t, int(1), opt1.Value())
-
- assert.False(t, optional.FromNonDefault("").Has())
-
- opt2 := optional.FromNonDefault("test")
- assert.True(t, opt2.Has())
- assert.Equal(t, "test", opt2.Value())
-
- assert.False(t, optional.FromNonDefault(0).Has())
-
- opt3 := optional.FromNonDefault(1)
- assert.True(t, opt3.Has())
- assert.Equal(t, int(1), opt3.Value())
-
- opt4 := optional.FromMapLookup(map[string]int{"a": 1}, "a")
- assert.True(t, opt4.Has())
- assert.Equal(t, 1, opt4.Value())
- opt4 = optional.FromMapLookup(map[string]int{"a": 1}, "b")
- assert.False(t, opt4.Has())
- }
-
- func Test_ParseBool(t *testing.T) {
- assert.Equal(t, optional.None[bool](), optional.ParseBool(""))
- assert.Equal(t, optional.None[bool](), optional.ParseBool("x"))
-
- assert.Equal(t, optional.Some(false), optional.ParseBool("0"))
- assert.Equal(t, optional.Some(false), optional.ParseBool("f"))
- assert.Equal(t, optional.Some(false), optional.ParseBool("False"))
-
- assert.Equal(t, optional.Some(true), optional.ParseBool("1"))
- assert.Equal(t, optional.Some(true), optional.ParseBool("t"))
- assert.Equal(t, optional.Some(true), optional.ParseBool("True"))
- }
|