mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-04 15:04:00 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			153 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			153 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// Copyright 2023 The Gitea Authors. All rights reserved.
 | 
						|
// SPDX-License-Identifier: MIT
 | 
						|
 | 
						|
package config
 | 
						|
 | 
						|
import (
 | 
						|
	"testing"
 | 
						|
)
 | 
						|
 | 
						|
func TestValue_parse(t *testing.T) {
 | 
						|
	tests := []struct {
 | 
						|
		name string // description of this test case
 | 
						|
		// Named input parameters for target function.
 | 
						|
		key    string
 | 
						|
		valStr string
 | 
						|
		want   bool
 | 
						|
	}{
 | 
						|
		{
 | 
						|
			name:   "Parse Invert Retrieval",
 | 
						|
			key:    "picture.disable_gravatar",
 | 
						|
			valStr: "false",
 | 
						|
			want:   true,
 | 
						|
		},
 | 
						|
	}
 | 
						|
	for _, tt := range tests {
 | 
						|
		t.Run(tt.name, func(t *testing.T) {
 | 
						|
			value := ValueJSON[bool]("picture.disable_gravatar").Invert()
 | 
						|
			got := value.parse(tt.key, tt.valStr)
 | 
						|
 | 
						|
			if got != tt.want {
 | 
						|
				t.Errorf("parse() = %v, want %v", got, tt.want)
 | 
						|
			}
 | 
						|
		})
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func TestValue_getKey(t *testing.T) {
 | 
						|
	tests := []struct {
 | 
						|
		name       string // description of this test case
 | 
						|
		valueClass *Value[bool]
 | 
						|
		want       string
 | 
						|
	}{
 | 
						|
		{
 | 
						|
			name:       "Custom dynKey name",
 | 
						|
			valueClass: ValueJSON[bool]("picture.enable_gravatar").SelectFrom("picture.disable_gravatar"),
 | 
						|
			want:       "picture.disable_gravatar",
 | 
						|
		},
 | 
						|
		{
 | 
						|
			name:       "Normal dynKey name",
 | 
						|
			valueClass: ValueJSON[bool]("picture.disable_gravatar"),
 | 
						|
			want:       "picture.disable_gravatar",
 | 
						|
		},
 | 
						|
	}
 | 
						|
	for _, tt := range tests {
 | 
						|
		t.Run(tt.name, func(t *testing.T) {
 | 
						|
			got := tt.valueClass.getKey()
 | 
						|
 | 
						|
			if got != tt.want {
 | 
						|
				t.Errorf("getKey() = %v, want %v", got, tt.want)
 | 
						|
			}
 | 
						|
		})
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func TestValue_invert(t *testing.T) {
 | 
						|
	tests := []struct {
 | 
						|
		name string // description of this test case
 | 
						|
		// Named input parameters for target function.
 | 
						|
		valueClass *Value[bool]
 | 
						|
		want       bool
 | 
						|
	}{
 | 
						|
		{
 | 
						|
			name:       "Invert typed true",
 | 
						|
			valueClass: ValueJSON[bool]("picture.enable_gravatar").WithDefault(true).Invert(),
 | 
						|
			want:       false,
 | 
						|
		},
 | 
						|
		{
 | 
						|
			name:       "Invert typed false",
 | 
						|
			valueClass: ValueJSON[bool]("picture.enable_gravatar").WithDefault(false).Invert(),
 | 
						|
			want:       true,
 | 
						|
		},
 | 
						|
		{
 | 
						|
			name:       "Invert typed Does not invert",
 | 
						|
			valueClass: ValueJSON[bool]("picture.enable_gravatar").WithDefault(false),
 | 
						|
			want:       false,
 | 
						|
		},
 | 
						|
	}
 | 
						|
	for _, tt := range tests {
 | 
						|
		t.Run(tt.name, func(t *testing.T) {
 | 
						|
			got := tt.valueClass.invert(tt.valueClass.def)
 | 
						|
 | 
						|
			if got != tt.want {
 | 
						|
				t.Errorf("invert() = %v, want %v", got, tt.want)
 | 
						|
			}
 | 
						|
		})
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func TestValue_invertBoolStr(t *testing.T) {
 | 
						|
	tests := []struct {
 | 
						|
		name string // description of this test case
 | 
						|
		// Named input parameters for target function.
 | 
						|
		valueClass *Value[bool]
 | 
						|
		val        string
 | 
						|
		want       string
 | 
						|
	}{
 | 
						|
		{
 | 
						|
			name:       "Invert boolean string true",
 | 
						|
			valueClass: ValueJSON[bool]("picture.enable_gravatar"),
 | 
						|
			val:        "true",
 | 
						|
			want:       "false",
 | 
						|
		},
 | 
						|
		{
 | 
						|
			name:       "Invert boolean string false",
 | 
						|
			valueClass: ValueJSON[bool]("picture.enable_gravatar"),
 | 
						|
			val:        "false",
 | 
						|
			want:       "true",
 | 
						|
		},
 | 
						|
	}
 | 
						|
	for _, tt := range tests {
 | 
						|
		t.Run(tt.name, func(t *testing.T) {
 | 
						|
			got := tt.valueClass.invertBoolStr(tt.val)
 | 
						|
			if got != tt.want {
 | 
						|
				t.Errorf("invertBoolStr() = %v, want %v", got, tt.want)
 | 
						|
			}
 | 
						|
		})
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func TestValue_SelectFromKey(t *testing.T) {
 | 
						|
	tests := []struct {
 | 
						|
		name string // description of this test case
 | 
						|
		// Named input parameters for target function.
 | 
						|
		valueClass *Value[bool]
 | 
						|
		want       string
 | 
						|
	}{
 | 
						|
		{
 | 
						|
			name:       "SelectFrom set and get",
 | 
						|
			valueClass: ValueJSON[bool]("picture.enable_gravatar").SelectFrom("picture.disable_gravatar"),
 | 
						|
			want:       "picture.disable_gravatar",
 | 
						|
		},
 | 
						|
	}
 | 
						|
	for _, tt := range tests {
 | 
						|
		t.Run(tt.name, func(t *testing.T) {
 | 
						|
			got := tt.valueClass.SelectFromKey()
 | 
						|
 | 
						|
			if got != tt.want {
 | 
						|
				t.Errorf("SelectFromKey() = %v, want %v", got, tt.want)
 | 
						|
			}
 | 
						|
		})
 | 
						|
	}
 | 
						|
}
 |