Skip to content
Snippets Groups Projects
Select Git revision
  • 295f0577b3ec6c229f63957cb020a561d72047a3
  • master default protected
  • 1.31
  • 4.28.0
  • 4.27.0
  • 4.26.0
  • 4.25.5
  • 4.25.4
  • 4.25.3
  • 4.25.2
  • 4.25.1
  • 4.25.0
  • 4.24.3
  • 4.24.2
  • 4.24.1
  • 4.24.0
  • 4.23.6
  • 4.23.5
  • 4.23.4
  • 4.23.3
  • 4.23.2
  • 4.23.1
  • 4.23.0
23 results

details.mjs

Blame
  • pathfind_test.go 4.72 KiB
    package xflags
    
    import "testing"
    
    type PathfindTestStruct1 struct {
    	A    bool
    	Sub1 struct {
    		B    bool
    		Bi   int
    		Bs   string
    		Bf   float64
    		Sub2 struct {
    			C  bool
    			Ci int
    			Cs string
    			Cf float64
    
    			Sub3 struct {
    				D  bool
    				Di int
    				Ds string
    				Df float64
    			}
    		}
    	}
    }
    
    func TestPathFindError(t *testing.T) {
    
    	s := PathfindTestStruct1{}
    
    	_, err := getValueFrom[PathfindTestStruct1](s, "Sub1.Sub2.Sub3.XX")
    	if err == nil {
    		t.Error("err == nil")
    	}
    
    }
    
    func TestPathFindSetValueString(t *testing.T) {
    
    	testData := map[string]string{
    		"Sub1.B":            "true",
    		"Sub1.Bi":           "2",
    		"Sub1.Bs":           "3",
    		"Sub1.Bf":           "4.0",
    		"Sub1.Sub2.C":       "true",
    		"Sub1.Sub2.Ci":      "2",
    		"Sub1.Sub2.Cs":      "3",
    		"Sub1.Sub2.Cf":      "4.0",
    		"Sub1.Sub2.Sub3.D":  "true",
    		"Sub1.Sub2.Sub3.Di": "2",
    		"Sub1.Sub2.Sub3.Ds": "3",
    		"Sub1.Sub2.Sub3.Df": "4.0",
    	}
    
    	for k, v := range testData {
    		s := &PathfindTestStruct1{}
    		err := setValueUsingPath[*PathfindTestStruct1](s, k, v)
    		if err != nil {
    			t.Error(err)
    		}
    	}
    }
    
    func TestPathFindGetValueFrom(t *testing.T) {
    
    	s := PathfindTestStruct1{}
    
    	s.Sub1.B = true
    	s.Sub1.Bi = 2
    	s.Sub1.Bs = "3"
    	s.Sub1.Bf = 4.0
    
    	v, err := getValueFrom[PathfindTestStruct1](s, "Sub1.B")
    	if err != nil {
    		t.Error(err)
    	}
    
    	if v != true {
    		t.Error("v != true")
    	}
    
    	v, err = getValueFrom[PathfindTestStruct1](s, "Sub1.Bi")
    	if err != nil {
    		t.Error(err)
    	}
    
    	if v != 2 {
    		t.Error("v != 2")
    	}
    
    	v, err = getValueFrom[PathfindTestStruct1](s, "Sub1.Bs")
    	if err != nil {
    		t.Error(err)
    	}
    
    	if v != "3" {
    		t.Error("v != 3")
    	}
    
    	v, err = getValueFrom[PathfindTestStruct1](s, "Sub1.Bf")
    	if err != nil {
    		t.Error(err)
    	}
    
    	if v != 4.0 {
    		t.Error("v != 4.0")
    	}
    
    	s.Sub1.Sub2.C = true
    	s.Sub1.Sub2.Ci = 2
    	s.Sub1.Sub2.Cs = "3"
    	s.Sub1.Sub2.Cf = 4.0
    
    	v, err = getValueFrom[PathfindTestStruct1](s, "Sub1.Sub2.C")
    	if err != nil {
    		t.Error(err)
    	}
    
    	if v != true {
    		t.Error("v != true")
    	}
    
    	v, err = getValueFrom[PathfindTestStruct1](s, "Sub1.Sub2.Ci")
    	if err != nil {
    		t.Error(err)
    	}
    
    	if v != 2 {
    		t.Error("v != 2")
    	}
    
    	v, err = getValueFrom[PathfindTestStruct1](s, "Sub1.Sub2.Cs")
    	if err != nil {
    		t.Error(err)
    	}
    
    	if v != "3" {
    		t.Error("v != 3")
    	}
    
    	v, err = getValueFrom[PathfindTestStruct1](s, "Sub1.Sub2.Cf")
    	if err != nil {
    		t.Error(err)
    	}
    
    	if v != 4.0 {
    		t.Error("v != 4.0")
    	}
    
    	s.Sub1.Sub2.Sub3.D = true
    	s.Sub1.Sub2.Sub3.Di = 2
    	s.Sub1.Sub2.Sub3.Ds = "3"
    	s.Sub1.Sub2.Sub3.Df = 4.0
    
    	v, err = getValueFrom[PathfindTestStruct1](s, "Sub1.Sub2.Sub3.D")
    	if err != nil {
    		t.Error(err)
    
    	}
    
    	if v != true {
    		t.Error("v != true")
    	}
    
    	v, err = getValueFrom[PathfindTestStruct1](s, "Sub1.Sub2.Sub3.Di")
    	if err != nil {
    		t.Error(err)
    	}
    
    	if v != 2 {
    		t.Error("v != 2")
    	}
    
    	v, err = getValueFrom[PathfindTestStruct1](s, "Sub1.Sub2.Sub3.Ds")
    	if err != nil {
    		t.Error(err)
    	}
    
    	if v != "3" {
    		t.Error("v != 3")
    	}
    
    	v, err = getValueFrom[PathfindTestStruct1](s, "Sub1.Sub2.Sub3.Df")
    	if err != nil {
    		t.Error(err)
    	}
    
    	if v != 4.0 {
    		t.Error("v != 4.0")
    	}
    
    }
    
    func TestPathFindSetValueFrom(t *testing.T) {
    	s := &PathfindTestStruct1{}
    
    	setValueUsingPath[*PathfindTestStruct1](s, "Sub1.B", "true")
    	setValueUsingPath[*PathfindTestStruct1](s, "Sub1.Bi", "2")
    	setValueUsingPath[*PathfindTestStruct1](s, "Sub1.Bs", "3")
    	setValueUsingPath[*PathfindTestStruct1](s, "Sub1.Bf", "4.0")
    
    	if s.Sub1.B != true {
    		t.Error("s.Sub1.B != true")
    	}
    
    	if s.Sub1.Bi != 2 {
    		t.Error("s.Sub1.Bi != 2")
    
    	}
    
    	if s.Sub1.Bs != "3" {
    		t.Error("s.Sub1.Bs != 3")
    	}
    
    	if s.Sub1.Bf != 4.0 {
    		t.Error("s.Sub1.Bf != 4.0")
    	}
    
    	setValueUsingPath[*PathfindTestStruct1](s, "Sub1.Sub2.C", "true")
    	setValueUsingPath[*PathfindTestStruct1](s, "Sub1.Sub2.Ci", "2")
    	setValueUsingPath[*PathfindTestStruct1](s, "Sub1.Sub2.Cs", "3")
    	setValueUsingPath[*PathfindTestStruct1](s, "Sub1.Sub2.Cf", "4.0")
    
    	if s.Sub1.Sub2.C != true {
    		t.Error("s.Sub1.Sub2.C != true")
    
    	}
    
    	if s.Sub1.Sub2.Ci != 2 {
    		t.Error("s.Sub1.Sub2.Ci != 2")
    
    	}
    
    	if s.Sub1.Sub2.Cs != "3" {
    		t.Error("s.Sub1.Sub2.Cs != 3")
    
    	}
    
    	if s.Sub1.Sub2.Cf != 4.0 {
    		t.Error("s.Sub1.Sub2.Cf != 4.0")
    
    	}
    
    	if s.Sub1.Sub2.Sub3.D != false {
    		t.Error("s.Sub1.Sub2.Sub3.D != false")
    
    	}
    
    	setValueUsingPath[*PathfindTestStruct1](s, "Sub1.Sub2.Sub3.D", "true")
    	setValueUsingPath[*PathfindTestStruct1](s, "Sub1.Sub2.Sub3.Di", "2")
    	setValueUsingPath[*PathfindTestStruct1](s, "Sub1.Sub2.Sub3.Ds", "3")
    	setValueUsingPath[*PathfindTestStruct1](s, "Sub1.Sub2.Sub3.Df", "4.0")
    
    	if s.Sub1.Sub2.Sub3.D != true {
    		t.Error("s.Sub1.Sub2.Sub3.D != true")
    
    	}
    
    	if s.Sub1.Sub2.Sub3.Di != 2 {
    		t.Error("s.Sub1.Sub2.Sub3.Di != 2")
    
    	}
    
    	if s.Sub1.Sub2.Sub3.Ds != "3" {
    		t.Error("s.Sub1.Sub2.Sub3.Ds != 3")
    
    	}
    
    	if s.Sub1.Sub2.Sub3.Df != 4.0 {
    		t.Error("s.Sub1.Sub2.Sub3.Df != 4.0")
    
    	}
    
    }