...

Source file src/sigs.k8s.io/cli-utils/pkg/apply/task/delete_inv_task_test.go

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

     1  // Copyright 2021 The Kubernetes Authors.
     2  // SPDX-License-Identifier: Apache-2.0
     3  
     4  package task
     5  
     6  import (
     7  	"testing"
     8  
     9  	apierrors "k8s.io/apimachinery/pkg/api/errors"
    10  	"k8s.io/apimachinery/pkg/runtime/schema"
    11  	"sigs.k8s.io/cli-utils/pkg/apply/cache"
    12  	"sigs.k8s.io/cli-utils/pkg/apply/event"
    13  	"sigs.k8s.io/cli-utils/pkg/apply/taskrunner"
    14  	"sigs.k8s.io/cli-utils/pkg/common"
    15  	"sigs.k8s.io/cli-utils/pkg/inventory"
    16  	"sigs.k8s.io/cli-utils/pkg/object"
    17  )
    18  
    19  func TestDeleteInvTask(t *testing.T) {
    20  	testCases := map[string]struct {
    21  		err     error
    22  		isError bool
    23  	}{
    24  		"no error case": {
    25  			err:     nil,
    26  			isError: false,
    27  		},
    28  		"error is returned in result": {
    29  			err:     apierrors.NewResourceExpired("unused message"),
    30  			isError: true,
    31  		},
    32  		"inventory not found is not error and not returned": {
    33  			err: apierrors.NewNotFound(schema.GroupResource{Resource: "simples"},
    34  				"unused-resource-name"),
    35  			isError: false,
    36  		},
    37  	}
    38  	for name, tc := range testCases {
    39  		t.Run(name, func(t *testing.T) {
    40  			client := inventory.NewFakeClient(object.ObjMetadataSet{})
    41  			client.Err = tc.err
    42  			eventChannel := make(chan event.Event)
    43  			resourceCache := cache.NewResourceCacheMap()
    44  			context := taskrunner.NewTaskContext(eventChannel, resourceCache)
    45  
    46  			task := DeleteInvTask{
    47  				TaskName:  taskName,
    48  				InvClient: client,
    49  				InvInfo:   localInv,
    50  				DryRun:    common.DryRunNone,
    51  			}
    52  			if taskName != task.Name() {
    53  				t.Errorf("expected task name (%s), got (%s)", taskName, task.Name())
    54  			}
    55  			task.Start(context)
    56  			result := <-context.TaskChannel()
    57  			if tc.isError {
    58  				if tc.err != result.Err {
    59  					t.Errorf("running DeleteInvTask expected error (%s), got (%s)", tc.err, result.Err)
    60  				}
    61  			} else {
    62  				if result.Err != nil {
    63  					t.Errorf("unexpected error running DeleteInvTask: %s", result.Err)
    64  				}
    65  			}
    66  		})
    67  	}
    68  }
    69  

View as plain text