mirror of https://github.com/go-gitea/gitea.git
3 changed files with 65 additions and 25 deletions
@ -0,0 +1,13 @@ |
|||||||
|
// Copyright 2025 The Gitea Authors. All rights reserved.
|
||||||
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
package util |
||||||
|
|
||||||
|
func GetMapValueOrDefault[T any](m map[string]any, key string, defaultValue T) T { |
||||||
|
if value, ok := m[key]; ok { |
||||||
|
if v, ok := value.(T); ok { |
||||||
|
return v |
||||||
|
} |
||||||
|
} |
||||||
|
return defaultValue |
||||||
|
} |
||||||
@ -0,0 +1,26 @@ |
|||||||
|
// Copyright 2025 The Gitea Authors. All rights reserved.
|
||||||
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
package util |
||||||
|
|
||||||
|
import ( |
||||||
|
"testing" |
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert" |
||||||
|
) |
||||||
|
|
||||||
|
func TestGetMapValueOrDefault(t *testing.T) { |
||||||
|
testMap := map[string]any{ |
||||||
|
"key1": "value1", |
||||||
|
"key2": 42, |
||||||
|
"key3": nil, |
||||||
|
} |
||||||
|
|
||||||
|
assert.Equal(t, "value1", GetMapValueOrDefault(testMap, "key1", "default")) |
||||||
|
assert.Equal(t, 42, GetMapValueOrDefault(testMap, "key2", 0)) |
||||||
|
|
||||||
|
assert.Equal(t, "default", GetMapValueOrDefault(testMap, "key4", "default")) |
||||||
|
assert.Equal(t, 100, GetMapValueOrDefault(testMap, "key5", 100)) |
||||||
|
|
||||||
|
assert.Equal(t, "default", GetMapValueOrDefault(testMap, "key3", "default")) |
||||||
|
} |
||||||
Loading…
Reference in new issue