mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-13 10:00:56 +00:00
Split mapnode.go and test from types.go
This commit is contained in:
40
kyaml/yaml/mapnode.go
Normal file
40
kyaml/yaml/mapnode.go
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
// Copyright 2019 The Kubernetes Authors.
|
||||||
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
package yaml
|
||||||
|
|
||||||
|
// MapNode wraps a field key and value.
|
||||||
|
type MapNode struct {
|
||||||
|
Key *RNode
|
||||||
|
Value *RNode
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsNilOrEmpty returns true if the MapNode is nil,
|
||||||
|
// has no value, or has a value that appears empty.
|
||||||
|
func (mn *MapNode) IsNilOrEmpty() bool {
|
||||||
|
return mn == nil || mn.Value.IsNilOrEmpty()
|
||||||
|
}
|
||||||
|
|
||||||
|
type MapNodeSlice []*MapNode
|
||||||
|
|
||||||
|
func (m MapNodeSlice) Keys() []*RNode {
|
||||||
|
var keys []*RNode
|
||||||
|
for i := range m {
|
||||||
|
if m[i] != nil {
|
||||||
|
keys = append(keys, m[i].Key)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return keys
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m MapNodeSlice) Values() []*RNode {
|
||||||
|
var values []*RNode
|
||||||
|
for i := range m {
|
||||||
|
if m[i] != nil {
|
||||||
|
values = append(values, m[i].Value)
|
||||||
|
} else {
|
||||||
|
values = append(values, nil)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return values
|
||||||
|
}
|
||||||
51
kyaml/yaml/mapnode_test.go
Normal file
51
kyaml/yaml/mapnode_test.go
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
// Copyright 2019 The Kubernetes Authors.
|
||||||
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
package yaml
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestMapNodeIsNilOrEmpty(t *testing.T) {
|
||||||
|
var mn *MapNode
|
||||||
|
|
||||||
|
if !mn.IsNilOrEmpty() {
|
||||||
|
t.Fatalf("nil should be empty")
|
||||||
|
}
|
||||||
|
|
||||||
|
mn = &MapNode{Key: MakeNullNode()}
|
||||||
|
if !mn.IsNilOrEmpty() {
|
||||||
|
t.Fatalf("missing value should be empty")
|
||||||
|
}
|
||||||
|
|
||||||
|
mn.Value = NewRNode(nil)
|
||||||
|
if !mn.IsNilOrEmpty() {
|
||||||
|
t.Fatalf("missing value YNode should be empty")
|
||||||
|
}
|
||||||
|
|
||||||
|
mn.Value = MakeNullNode()
|
||||||
|
if !mn.IsNilOrEmpty() {
|
||||||
|
t.Fatalf("value tagged null should be empty")
|
||||||
|
}
|
||||||
|
|
||||||
|
mn.Value = NewMapRNode(nil)
|
||||||
|
if !mn.IsNilOrEmpty() {
|
||||||
|
t.Fatalf("empty map should be empty")
|
||||||
|
}
|
||||||
|
|
||||||
|
mn.Value = NewMapRNode(&map[string]string{"foo": "bar"})
|
||||||
|
if mn.IsNilOrEmpty() {
|
||||||
|
t.Fatalf("non-empty map should not be empty")
|
||||||
|
}
|
||||||
|
|
||||||
|
mn.Value = NewListRNode()
|
||||||
|
if !mn.IsNilOrEmpty() {
|
||||||
|
t.Fatalf("empty list should be empty")
|
||||||
|
}
|
||||||
|
|
||||||
|
mn.Value = NewListRNode("foo")
|
||||||
|
if mn.IsNilOrEmpty() {
|
||||||
|
t.Fatalf("non-empty list should not be empty")
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -88,42 +88,6 @@ func (f FilterFunc) Filter(object *RNode) (*RNode, error) {
|
|||||||
return f(object)
|
return f(object)
|
||||||
}
|
}
|
||||||
|
|
||||||
// MapNode wraps a field key and value.
|
|
||||||
type MapNode struct {
|
|
||||||
Key *RNode
|
|
||||||
Value *RNode
|
|
||||||
}
|
|
||||||
|
|
||||||
// IsNilOrEmpty returns true if the MapNode is nil,
|
|
||||||
// has no value, or has a value that appears empty.
|
|
||||||
func (mn *MapNode) IsNilOrEmpty() bool {
|
|
||||||
return mn == nil || mn.Value.IsNilOrEmpty()
|
|
||||||
}
|
|
||||||
|
|
||||||
type MapNodeSlice []*MapNode
|
|
||||||
|
|
||||||
func (m MapNodeSlice) Keys() []*RNode {
|
|
||||||
var keys []*RNode
|
|
||||||
for i := range m {
|
|
||||||
if m[i] != nil {
|
|
||||||
keys = append(keys, m[i].Key)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return keys
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m MapNodeSlice) Values() []*RNode {
|
|
||||||
var values []*RNode
|
|
||||||
for i := range m {
|
|
||||||
if m[i] != nil {
|
|
||||||
values = append(values, m[i].Value)
|
|
||||||
} else {
|
|
||||||
values = append(values, nil)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return values
|
|
||||||
}
|
|
||||||
|
|
||||||
type TypeMeta struct {
|
type TypeMeta struct {
|
||||||
Kind string
|
Kind string
|
||||||
APIVersion string
|
APIVersion string
|
||||||
|
|||||||
@@ -61,46 +61,3 @@ func TestIsYNodeEmptySeq(t *testing.T) {
|
|||||||
t.Fatalf("a node with content isn't empty")
|
t.Fatalf("a node with content isn't empty")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestMapNodeIsNilOrEmpty(t *testing.T) {
|
|
||||||
var mn *MapNode
|
|
||||||
|
|
||||||
if !mn.IsNilOrEmpty() {
|
|
||||||
t.Fatalf("nil should be empty")
|
|
||||||
}
|
|
||||||
|
|
||||||
mn = &MapNode{Key: MakeNullNode()}
|
|
||||||
if !mn.IsNilOrEmpty() {
|
|
||||||
t.Fatalf("missing value should be empty")
|
|
||||||
}
|
|
||||||
|
|
||||||
mn.Value = NewRNode(nil)
|
|
||||||
if !mn.IsNilOrEmpty() {
|
|
||||||
t.Fatalf("missing value YNode should be empty")
|
|
||||||
}
|
|
||||||
|
|
||||||
mn.Value = MakeNullNode()
|
|
||||||
if !mn.IsNilOrEmpty() {
|
|
||||||
t.Fatalf("value tagged null should be empty")
|
|
||||||
}
|
|
||||||
|
|
||||||
mn.Value = NewMapRNode(nil)
|
|
||||||
if !mn.IsNilOrEmpty() {
|
|
||||||
t.Fatalf("empty map should be empty")
|
|
||||||
}
|
|
||||||
|
|
||||||
mn.Value = NewMapRNode(&map[string]string{"foo": "bar"})
|
|
||||||
if mn.IsNilOrEmpty() {
|
|
||||||
t.Fatalf("non-empty map should not be empty")
|
|
||||||
}
|
|
||||||
|
|
||||||
mn.Value = NewListRNode()
|
|
||||||
if !mn.IsNilOrEmpty() {
|
|
||||||
t.Fatalf("empty list should be empty")
|
|
||||||
}
|
|
||||||
|
|
||||||
mn.Value = NewListRNode("foo")
|
|
||||||
if mn.IsNilOrEmpty() {
|
|
||||||
t.Fatalf("non-empty list should not be empty")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user