@@ -24,7 +24,7 @@ func TestValue_parse(t *testing.T) {
2424 }
2525 for _ , tt := range tests {
2626 t .Run (tt .name , func (t * testing.T ) {
27- value := ValueJSON [bool ]("picture.disable_gravatar" ).WithFileConfig ( CfgSecKey { Sec : "picture" , Key : "DISABLE_GRAVATAR" }). Invert ()
27+ value := ValueJSON [bool ]("picture.disable_gravatar" ).Invert ()
2828 got := value .parse (tt .key , tt .valStr )
2929
3030 if got != tt .want {
@@ -42,12 +42,12 @@ func TestValue_getKey(t *testing.T) {
4242 }{
4343 {
4444 name : "Custom dynKey name" ,
45- valueClass : ValueJSON [bool ]("picture.enable_gravatar" ).SelectFrom ("picture.disable_gravatar" ). WithFileConfig ( CfgSecKey { Sec : "" , Key : "" }) ,
46- want : "picture.enable_gravatar " ,
45+ valueClass : ValueJSON [bool ]("picture.enable_gravatar" ).SelectFrom ("picture.disable_gravatar" ),
46+ want : "picture.disable_gravatar " ,
4747 },
4848 {
4949 name : "Normal dynKey name" ,
50- valueClass : ValueJSON [bool ]("picture.disable_gravatar" ). WithFileConfig ( CfgSecKey { Sec : "" , Key : "" }) ,
50+ valueClass : ValueJSON [bool ]("picture.disable_gravatar" ),
5151 want : "picture.disable_gravatar" ,
5252 },
5353 }
@@ -61,3 +61,92 @@ func TestValue_getKey(t *testing.T) {
6161 })
6262 }
6363}
64+
65+ func TestValue_invert (t * testing.T ) {
66+ tests := []struct {
67+ name string // description of this test case
68+ // Named input parameters for target function.
69+ valueClass * Value [bool ]
70+ want bool
71+ }{
72+ {
73+ name : "Invert typed true" ,
74+ valueClass : ValueJSON [bool ]("picture.enable_gravatar" ).WithDefault (true ).Invert (),
75+ want : false ,
76+ },
77+ {
78+ name : "Invert typed false" ,
79+ valueClass : ValueJSON [bool ]("picture.enable_gravatar" ).WithDefault (false ).Invert (),
80+ want : true ,
81+ },
82+ {
83+ name : "Invert typed Does not invert" ,
84+ valueClass : ValueJSON [bool ]("picture.enable_gravatar" ).WithDefault (false ),
85+ want : false ,
86+ },
87+ }
88+ for _ , tt := range tests {
89+ t .Run (tt .name , func (t * testing.T ) {
90+ got := tt .valueClass .invert (tt .valueClass .def )
91+
92+ if got != tt .want {
93+ t .Errorf ("invert() = %v, want %v" , got , tt .want )
94+ }
95+ })
96+ }
97+ }
98+
99+ func TestValue_invertBoolStr (t * testing.T ) {
100+ tests := []struct {
101+ name string // description of this test case
102+ // Named input parameters for target function.
103+ valueClass * Value [bool ]
104+ val string
105+ want string
106+ }{
107+ {
108+ name : "Invert boolean string true" ,
109+ valueClass : ValueJSON [bool ]("picture.enable_gravatar" ),
110+ val : "true" ,
111+ want : "false" ,
112+ },
113+ {
114+ name : "Invert boolean string false" ,
115+ valueClass : ValueJSON [bool ]("picture.enable_gravatar" ),
116+ val : "false" ,
117+ want : "true" ,
118+ },
119+ }
120+ for _ , tt := range tests {
121+ t .Run (tt .name , func (t * testing.T ) {
122+ got := tt .valueClass .invertBoolStr (tt .val )
123+ if got != tt .want {
124+ t .Errorf ("invertBoolStr() = %v, want %v" , got , tt .want )
125+ }
126+ })
127+ }
128+ }
129+
130+ func TestValue_SelectFromKey (t * testing.T ) {
131+ tests := []struct {
132+ name string // description of this test case
133+ // Named input parameters for target function.
134+ valueClass * Value [bool ]
135+ want string
136+ }{
137+ {
138+ name : "SelectFrom set and get" ,
139+ valueClass : ValueJSON [bool ]("picture.enable_gravatar" ).SelectFrom ("picture.disable_gravatar" ),
140+ want : "picture.disable_gravatar" ,
141+ },
142+ }
143+ for _ , tt := range tests {
144+ t .Run (tt .name , func (t * testing.T ) {
145+ got := tt .valueClass .SelectFromKey ()
146+
147+ if got != tt .want {
148+ t .Errorf ("SelectFromKey() = %v, want %v" , got , tt .want )
149+ }
150+ })
151+ }
152+ }
0 commit comments