main_tests are not working as expected
The global values which store the flags are not regenerated during test Signed-off-by: Christian Goll <cgoll@suse.de>
This commit is contained in:
@@ -382,3 +382,30 @@ func GetByName(node interface{}, name string) (string, error) {
|
||||
myEntry := entryField.Interface().(Entry)
|
||||
return myEntry.Get(), nil
|
||||
}
|
||||
|
||||
/*
|
||||
Check if the Netdev is empty, so has no values set
|
||||
*/
|
||||
func (dev *NetDevs) Empty() bool {
|
||||
if dev == nil {
|
||||
return true
|
||||
}
|
||||
varType := reflect.TypeOf(*dev)
|
||||
varVal := reflect.ValueOf(*dev)
|
||||
if varVal.IsZero() {
|
||||
return true
|
||||
}
|
||||
for i := 0; i < varType.NumField(); i++ {
|
||||
if varType.Field(i).Type.Kind() == reflect.String && !varVal.Field(i).IsZero() {
|
||||
val := varVal.Field(i).Interface().(string)
|
||||
if val != "" {
|
||||
return false
|
||||
}
|
||||
} else if varType.Field(i).Type == reflect.TypeOf(map[string]string{}) {
|
||||
if len(varVal.Field(i).Interface().(map[string]string)) != 0 {
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
32
internal/pkg/node/methods_test.go
Normal file
32
internal/pkg/node/methods_test.go
Normal file
@@ -0,0 +1,32 @@
|
||||
package node
|
||||
|
||||
import "testing"
|
||||
|
||||
func Test_Empty(t *testing.T) {
|
||||
var netdev NetDevs
|
||||
var netdevPtr *NetDevs
|
||||
|
||||
t.Run("test for empty", func(t *testing.T) {
|
||||
if netdev.Empty() != true {
|
||||
t.Errorf("netdev must be empty")
|
||||
}
|
||||
})
|
||||
t.Run("test for non empty", func(t *testing.T) {
|
||||
netdev.Device = "foo"
|
||||
if netdev.Empty() == true {
|
||||
t.Errorf("netdev must be non empty")
|
||||
}
|
||||
})
|
||||
t.Run("test for nil pointer", func(t *testing.T) {
|
||||
if netdevPtr.Empty() != true {
|
||||
t.Errorf("netdev must be empty")
|
||||
}
|
||||
})
|
||||
t.Run("test for pointer assigned", func(t *testing.T) {
|
||||
netdev.Ipaddr = "10.10.10.1"
|
||||
netdevPtr = &netdev
|
||||
if netdevPtr.Empty() == true {
|
||||
t.Errorf("netdev must be empty")
|
||||
}
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user