github.com/Axway/agent-sdk@v1.1.101/pkg/agent/handler/tracemanagedapplication_test.go (about)

     1  package handler
     2  
     3  import (
     4  	"testing"
     5  
     6  	agentcache "github.com/Axway/agent-sdk/pkg/agent/cache"
     7  	apiv1 "github.com/Axway/agent-sdk/pkg/apic/apiserver/models/api/v1"
     8  	management "github.com/Axway/agent-sdk/pkg/apic/apiserver/models/management/v1alpha1"
     9  	"github.com/Axway/agent-sdk/pkg/config"
    10  	"github.com/Axway/agent-sdk/pkg/watchmanager/proto"
    11  	"github.com/stretchr/testify/assert"
    12  )
    13  
    14  func TestTraceManagedApplicationHandler_wrong_kind(t *testing.T) {
    15  	cm := agentcache.NewAgentCacheManager(&config.CentralConfiguration{}, false)
    16  	handler := NewTraceManagedApplicationHandler(cm)
    17  	ri := &apiv1.ResourceInstance{
    18  		ResourceMeta: apiv1.ResourceMeta{
    19  			GroupVersionKind: management.EnvironmentGVK(),
    20  		},
    21  	}
    22  	err := handler.Handle(NewEventContext(proto.Event_CREATED, nil, ri.Kind, ri.Name), nil, ri)
    23  	assert.Nil(t, err)
    24  }
    25  
    26  func TestTraceManagedApplicationHandler(t *testing.T) {
    27  	cm := agentcache.NewAgentCacheManager(&config.CentralConfiguration{}, false)
    28  	handler := NewTraceManagedApplicationHandler(cm)
    29  	managedApp := &management.ManagedApplication{
    30  		ResourceMeta: apiv1.ResourceMeta{
    31  			Metadata: apiv1.Metadata{
    32  				ID: "appId",
    33  			},
    34  			Name: "appName",
    35  		},
    36  	}
    37  
    38  	ri, _ := managedApp.AsInstance()
    39  	// no status
    40  	err := handler.Handle(NewEventContext(proto.Event_CREATED, nil, ri.Kind, ri.Name), nil, ri)
    41  	assert.Nil(t, err)
    42  	assert.Equal(t, []string{}, cm.GetAccessRequestCacheKeys())
    43  
    44  	managedApp.Status = &apiv1.ResourceStatus{
    45  		Level: "Success",
    46  	}
    47  
    48  	ri, _ = managedApp.AsInstance()
    49  
    50  	err = handler.Handle(NewEventContext(proto.Event_CREATED, nil, ri.Kind, ri.Name), nil, ri)
    51  	assert.Nil(t, err)
    52  	cachedApp := cm.GetManagedApplication("appId")
    53  	assert.NotNil(t, cachedApp)
    54  
    55  	cachedApp = cm.GetManagedApplicationByName("appName")
    56  	assert.NotNil(t, cachedApp)
    57  
    58  	err = handler.Handle(NewEventContext(proto.Event_DELETED, nil, ri.Kind, ri.Name), nil, ri)
    59  	assert.Nil(t, err)
    60  
    61  	cachedApp = cm.GetManagedApplication("appId")
    62  	assert.Nil(t, cachedApp)
    63  }