mirror of https://github.com/fluxcd/cli-utils.git
				
				
				
			
		
			
				
	
	
		
			69 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
| // Copyright 2021 The Kubernetes Authors.
 | |
| // SPDX-License-Identifier: Apache-2.0
 | |
| 
 | |
| package task
 | |
| 
 | |
| import (
 | |
| 	"testing"
 | |
| 
 | |
| 	apierrors "k8s.io/apimachinery/pkg/api/errors"
 | |
| 	"k8s.io/apimachinery/pkg/runtime/schema"
 | |
| 	"sigs.k8s.io/cli-utils/pkg/apply/cache"
 | |
| 	"sigs.k8s.io/cli-utils/pkg/apply/event"
 | |
| 	"sigs.k8s.io/cli-utils/pkg/apply/taskrunner"
 | |
| 	"sigs.k8s.io/cli-utils/pkg/common"
 | |
| 	"sigs.k8s.io/cli-utils/pkg/inventory"
 | |
| 	"sigs.k8s.io/cli-utils/pkg/object"
 | |
| )
 | |
| 
 | |
| func TestDeleteInvTask(t *testing.T) {
 | |
| 	testCases := map[string]struct {
 | |
| 		err     error
 | |
| 		isError bool
 | |
| 	}{
 | |
| 		"no error case": {
 | |
| 			err:     nil,
 | |
| 			isError: false,
 | |
| 		},
 | |
| 		"error is returned in result": {
 | |
| 			err:     apierrors.NewResourceExpired("unused message"),
 | |
| 			isError: true,
 | |
| 		},
 | |
| 		"inventory not found is not error and not returned": {
 | |
| 			err: apierrors.NewNotFound(schema.GroupResource{Resource: "simples"},
 | |
| 				"unused-resource-name"),
 | |
| 			isError: false,
 | |
| 		},
 | |
| 	}
 | |
| 	for name, tc := range testCases {
 | |
| 		t.Run(name, func(t *testing.T) {
 | |
| 			client := inventory.NewFakeInventoryClient(object.ObjMetadataSet{})
 | |
| 			client.Err = tc.err
 | |
| 			eventChannel := make(chan event.Event)
 | |
| 			resourceCache := cache.NewResourceCacheMap()
 | |
| 			context := taskrunner.NewTaskContext(eventChannel, resourceCache)
 | |
| 
 | |
| 			task := DeleteInvTask{
 | |
| 				TaskName:  taskName,
 | |
| 				InvClient: client,
 | |
| 				InvInfo:   localInv,
 | |
| 				DryRun:    common.DryRunNone,
 | |
| 			}
 | |
| 			if taskName != task.Name() {
 | |
| 				t.Errorf("expected task name (%s), got (%s)", taskName, task.Name())
 | |
| 			}
 | |
| 			task.Start(context)
 | |
| 			result := <-context.TaskChannel()
 | |
| 			if tc.isError {
 | |
| 				if tc.err != result.Err {
 | |
| 					t.Errorf("running DeleteInvTask expected error (%s), got (%s)", tc.err, result.Err)
 | |
| 				}
 | |
| 			} else {
 | |
| 				if result.Err != nil {
 | |
| 					t.Errorf("unexpected error running DeleteInvTask: %s", result.Err)
 | |
| 				}
 | |
| 			}
 | |
| 		})
 | |
| 	}
 | |
| }
 |