(t *testing.T)
| 144 | } |
| 145 | |
| 146 | func Test_parseToMap(t *testing.T) { |
| 147 | t.Parallel() |
| 148 | |
| 149 | inputMap := map[string][]string{ |
| 150 | "key1": {"value1", "value2"}, |
| 151 | "key2": {"value3"}, |
| 152 | "key3": {"value4"}, |
| 153 | } |
| 154 | |
| 155 | // Test map[string]string |
| 156 | m := make(map[string]string) |
| 157 | err := parseToMap(reflect.ValueOf(m), inputMap) |
| 158 | require.NoError(t, err) |
| 159 | |
| 160 | require.Equal(t, "value2", m["key1"]) |
| 161 | require.Equal(t, "value3", m["key2"]) |
| 162 | require.Equal(t, "value4", m["key3"]) |
| 163 | |
| 164 | // Test map[string][]string |
| 165 | m2 := make(map[string][]string) |
| 166 | err = parseToMap(reflect.ValueOf(m2), inputMap) |
| 167 | require.NoError(t, err) |
| 168 | |
| 169 | require.Len(t, m2["key1"], 2) |
| 170 | require.Contains(t, m2["key1"], "value1") |
| 171 | require.Contains(t, m2["key1"], "value2") |
| 172 | require.Len(t, m2["key2"], 1) |
| 173 | require.Len(t, m2["key3"], 1) |
| 174 | |
| 175 | // Test map[string]any |
| 176 | m3 := make(map[string]any) |
| 177 | err = parseToMap(reflect.ValueOf(m3), inputMap) |
| 178 | require.NoError(t, err) |
| 179 | require.Empty(t, m3) |
| 180 | |
| 181 | var zeroStringMap map[string]string |
| 182 | err = parseToMap(reflect.ValueOf(&zeroStringMap).Elem(), inputMap) |
| 183 | require.NoError(t, err) |
| 184 | require.Equal(t, "value2", zeroStringMap["key1"]) |
| 185 | |
| 186 | var zeroSliceMap map[string][]string |
| 187 | err = parseToMap(reflect.ValueOf(&zeroSliceMap).Elem(), inputMap) |
| 188 | require.NoError(t, err) |
| 189 | require.Len(t, zeroSliceMap["key1"], 2) |
| 190 | |
| 191 | err = parseToMap(reflect.ValueOf(map[string]string(nil)), inputMap) |
| 192 | require.ErrorIs(t, err, ErrMapNilDestination) |
| 193 | } |
| 194 | |
| 195 | func Test_FilterFlags(t *testing.T) { |
| 196 | t.Parallel() |
nothing calls this directly
no test coverage detected