// Copyright 2022 schukai GmbH // SPDX-License-Identifier: AGPL-3.0 package xflags import ( "github.com/stretchr/testify/assert" "gitlab.schukai.com/oss/libraries/go/utilities/pathfinder" "testing" ) type ConfigStruct6Sub1 struct { Command3Flag1 bool } type ConfigStruct6 struct { ValGlobal1 bool ValGlobal2 bool ValCommand1Flag1 bool ValCommand1Flag2 bool ValSub ConfigStruct6Sub1 } func TestFlagCopyToProxy(t *testing.T) { c := ConfigStruct6{} c.ValSub.Command3Flag1 = true settings := New("test", testExecutionStruct{}) assert.NotNil(t, settings) settings.SetMappedObject(&c) assert.False(t, settings.HasErrors()) settings.Parse([]string{"-a", "command1", "-d"}) assert.True(t, c.ValGlobal1) assert.True(t, c.ValCommand1Flag2) } func (s *ConfigStruct6) Copy(m map[string]any) { for k, v := range m { pathfinder.SetValue(s, k, v) } } func TestCopyable(t *testing.T) { c := ConfigStruct6{} c.ValSub.Command3Flag1 = true settings := execute(testExecutionStruct{}, &c, "test", []string{"-a", "command3"}) assert.False(t, settings.HasErrors()) }