...

Source file src/sigs.k8s.io/kustomize/api/testutils/resmaptest/rmbuilder.go

Documentation: sigs.k8s.io/kustomize/api/testutils/resmaptest

     1  // Copyright 2019 The Kubernetes Authors.
     2  // SPDX-License-Identifier: Apache-2.0
     3  
     4  package resmaptest_test
     5  
     6  import (
     7  	"testing"
     8  
     9  	"sigs.k8s.io/kustomize/api/provider"
    10  	"sigs.k8s.io/kustomize/api/resmap"
    11  	"sigs.k8s.io/kustomize/api/resource"
    12  	"sigs.k8s.io/kustomize/kyaml/resid"
    13  )
    14  
    15  // Builds ResMaps for tests, with test-aware error handling.
    16  type rmBuilder struct {
    17  	t  *testing.T
    18  	m  resmap.ResMap
    19  	rf *resource.Factory
    20  }
    21  
    22  func NewSeededRmBuilder(t *testing.T, rf *resource.Factory, m resmap.ResMap) *rmBuilder {
    23  	t.Helper()
    24  	return &rmBuilder{t: t, rf: rf, m: m}
    25  }
    26  
    27  func NewRmBuilder(t *testing.T, rf *resource.Factory) *rmBuilder {
    28  	t.Helper()
    29  	return NewSeededRmBuilder(t, rf, resmap.New())
    30  }
    31  
    32  func NewRmBuilderDefault(t *testing.T) *rmBuilder {
    33  	t.Helper()
    34  	return NewSeededRmBuilderDefault(t, resmap.New())
    35  }
    36  
    37  func NewSeededRmBuilderDefault(t *testing.T, m resmap.ResMap) *rmBuilder {
    38  	t.Helper()
    39  	return NewSeededRmBuilder(
    40  		t, provider.NewDefaultDepProvider().GetResourceFactory(), m)
    41  }
    42  
    43  func (rm *rmBuilder) Add(m map[string]interface{}) *rmBuilder {
    44  	return rm.AddR(rm.rf.FromMap(m))
    45  }
    46  
    47  func (rm *rmBuilder) AddR(r *resource.Resource) *rmBuilder {
    48  	err := rm.m.Append(r)
    49  	if err != nil {
    50  		rm.t.Fatalf("test setup failure: %v", err)
    51  	}
    52  	return rm
    53  }
    54  
    55  func (rm *rmBuilder) AddWithName(n string, m map[string]interface{}) *rmBuilder {
    56  	err := rm.m.Append(rm.rf.FromMapWithNamespaceAndName(resid.DefaultNamespace, n, m))
    57  	if err != nil {
    58  		rm.t.Fatalf("test setup failure: %v", err)
    59  	}
    60  	return rm
    61  }
    62  
    63  func (rm *rmBuilder) AddWithNsAndName(ns string, n string, m map[string]interface{}) *rmBuilder {
    64  	err := rm.m.Append(rm.rf.FromMapWithNamespaceAndName(ns, n, m))
    65  	if err != nil {
    66  		rm.t.Fatalf("test setup failure: %v", err)
    67  	}
    68  	return rm
    69  }
    70  
    71  func (rm *rmBuilder) ReplaceResource(m map[string]interface{}) *rmBuilder {
    72  	r := rm.rf.FromMap(m)
    73  	_, err := rm.m.Replace(r)
    74  	if err != nil {
    75  		rm.t.Fatalf("test setup failure: %v", err)
    76  	}
    77  	return rm
    78  }
    79  
    80  func (rm *rmBuilder) ResMap() resmap.ResMap {
    81  	return rm.m
    82  }
    83  

View as plain text