...

Source file src/sigs.k8s.io/cli-utils/pkg/apply/filter/current-uids-filter_test.go

Documentation: sigs.k8s.io/cli-utils/pkg/apply/filter

     1  // Copyright 2019 The Kubernetes Authors.
     2  // SPDX-License-Identifier: Apache-2.0
     3  
     4  package filter
     5  
     6  import (
     7  	"testing"
     8  
     9  	"k8s.io/apimachinery/pkg/types"
    10  	"k8s.io/apimachinery/pkg/util/sets"
    11  	"sigs.k8s.io/cli-utils/pkg/testutil"
    12  )
    13  
    14  func TestCurrentUIDFilter(t *testing.T) {
    15  	tests := map[string]struct {
    16  		filterUIDs    sets.String
    17  		objUID        string
    18  		expectedError error
    19  	}{
    20  		"Empty filter UIDs, object is not filtered": {
    21  			filterUIDs: sets.NewString(),
    22  			objUID:     "bar",
    23  		},
    24  		"Empty object UID, object is not filtered": {
    25  			filterUIDs: sets.NewString("foo"),
    26  			objUID:     "",
    27  		},
    28  		"Object UID not in filter UID set, object is not filtered": {
    29  			filterUIDs: sets.NewString("foo", "baz"),
    30  			objUID:     "bar",
    31  		},
    32  		"Object UID is in filter UID set, object is filtered": {
    33  			filterUIDs:    sets.NewString("foo"),
    34  			objUID:        "foo",
    35  			expectedError: &ApplyPreventedDeletionError{UID: "foo"},
    36  		},
    37  		"Object UID is among several filter UIDs, object is filtered": {
    38  			filterUIDs:    sets.NewString("foo", "bar", "baz"),
    39  			objUID:        "foo",
    40  			expectedError: &ApplyPreventedDeletionError{UID: "foo"},
    41  		},
    42  	}
    43  
    44  	for name, tc := range tests {
    45  		t.Run(name, func(t *testing.T) {
    46  			filter := CurrentUIDFilter{
    47  				CurrentUIDs: tc.filterUIDs,
    48  			}
    49  			obj := defaultObj.DeepCopy()
    50  			obj.SetUID(types.UID(tc.objUID))
    51  			err := filter.Filter(obj)
    52  			testutil.AssertEqual(t, tc.expectedError, err)
    53  		})
    54  	}
    55  }
    56  

View as plain text