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

     1  package harvester
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/Axway/agent-sdk/pkg/watchmanager/proto"
     7  	"github.com/stretchr/testify/assert"
     8  )
     9  
    10  func TestHarvesterEventConversion(t *testing.T) {
    11  	harvesterEvent := &resourceEntryExternalEvent{
    12  		ID:            "123",
    13  		Time:          "2021-11-30 11:59:25.01",
    14  		Version:       "v1",
    15  		Product:       "AmplifyCentral",
    16  		CorrelationID: "441c85fc-b4cd-46fe-aae2-5aaf6ef86b8e",
    17  		Organization: &proto.Organization{
    18  			Id: "224879455212557",
    19  		},
    20  		Type: "ResourceCreated",
    21  		Payload: &harvesterResourceInstance{
    22  			Group: "management",
    23  			Kind:  "APIServiceInstance",
    24  			Name:  "test",
    25  			Attributes: map[string]string{
    26  				"createdBy": "DiscoveryAgent",
    27  			},
    28  			Metadata: &harvesterResourceMetadata{
    29  				ID:       "12345",
    30  				SelfLink: "/management/v1alpha1/environments/sample/apiserviceinstances/test",
    31  				References: []*harvesterResourceReference{
    32  					{
    33  						ID:        "8ac9934a7d6f94aa017d70b6bc2204dd",
    34  						Kind:      "APIServiceRevision",
    35  						Name:      "test",
    36  						ScopeKind: "Environment",
    37  						ScopeName: "sample",
    38  						SelfLink:  "/management/v1alpha1/environments/sample/apiservicerevisions/test",
    39  						Type:      "HARD",
    40  					},
    41  				},
    42  				Scope: &proto.Metadata_ScopeKind{
    43  					Id:       "123456",
    44  					Kind:     "Environment",
    45  					Name:     "sample",
    46  					SelfLink: "/management/v1alpha1/environments/sample",
    47  				},
    48  			},
    49  		},
    50  		Metadata: &proto.EventMeta{
    51  			WatchTopicID:       "1234",
    52  			WatchTopicSelfLink: "/management/v1alpha1/watchtopics/agent-watch",
    53  			SequenceID:         100,
    54  		},
    55  	}
    56  
    57  	event := harvesterEvent.toProtoEvent()
    58  
    59  	assert.Equal(t, harvesterEvent.ID, event.Id)
    60  	assert.Equal(t, harvesterEvent.Time, event.Time)
    61  	assert.Equal(t, harvesterEvent.Version, event.Version)
    62  	assert.Equal(t, harvesterEvent.Product, event.Product)
    63  	assert.Equal(t, harvesterEvent.CorrelationID, event.CorrelationId)
    64  	assert.Equal(t, proto.Event_CREATED, event.Type)
    65  
    66  	assert.NotNil(t, event.Organization)
    67  	assert.Equal(t, harvesterEvent.Organization.Id, event.Organization.Id)
    68  
    69  	assert.NotNil(t, event.Payload)
    70  	assert.Equal(t, harvesterEvent.Payload.Group, event.Payload.Group)
    71  	assert.Equal(t, harvesterEvent.Payload.Kind, event.Payload.Kind)
    72  	assert.Equal(t, harvesterEvent.Payload.Name, event.Payload.Name)
    73  
    74  	assert.NotNil(t, event.Payload.Attributes)
    75  	assert.Equal(t, harvesterEvent.Payload.Attributes, event.Payload.Attributes)
    76  
    77  	assert.NotNil(t, event.Payload.Metadata)
    78  	assert.Equal(t, harvesterEvent.Payload.Metadata.ID, event.Payload.Metadata.Id)
    79  	assert.Equal(t, harvesterEvent.Payload.Metadata.SelfLink, event.Payload.Metadata.SelfLink)
    80  	assert.NotNil(t, harvesterEvent.Payload.Metadata.Scope)
    81  	assert.Equal(t, harvesterEvent.Payload.Metadata.Scope.Id, event.Payload.Metadata.Scope.Id)
    82  	assert.Equal(t, harvesterEvent.Payload.Metadata.Scope.Kind, event.Payload.Metadata.Scope.Kind)
    83  	assert.Equal(t, harvesterEvent.Payload.Metadata.Scope.Name, event.Payload.Metadata.Scope.Name)
    84  	assert.Equal(t, harvesterEvent.Payload.Metadata.Scope.SelfLink, event.Payload.Metadata.Scope.SelfLink)
    85  
    86  	assert.NotNil(t, event.Payload.Metadata.References)
    87  	assert.Equal(t, len(harvesterEvent.Payload.Metadata.References), len(event.Payload.Metadata.References))
    88  	assert.Equal(t, harvesterEvent.Payload.Metadata.References[0].ID, event.Payload.Metadata.References[0].Id)
    89  	assert.Equal(t, harvesterEvent.Payload.Metadata.References[0].Kind, event.Payload.Metadata.References[0].Kind)
    90  	assert.Equal(t, harvesterEvent.Payload.Metadata.References[0].Name, event.Payload.Metadata.References[0].Name)
    91  	assert.Equal(t, harvesterEvent.Payload.Metadata.References[0].ScopeKind, event.Payload.Metadata.References[0].ScopeKind)
    92  	assert.Equal(t, harvesterEvent.Payload.Metadata.References[0].ScopeName, event.Payload.Metadata.References[0].ScopeName)
    93  	assert.Equal(t, harvesterEvent.Payload.Metadata.References[0].SelfLink, event.Payload.Metadata.References[0].SelfLink)
    94  	assert.Equal(t, proto.Reference_HARD, event.Payload.Metadata.References[0].Type)
    95  
    96  	assert.NotNil(t, event.Metadata)
    97  	assert.Equal(t, harvesterEvent.Metadata.WatchTopicID, event.Metadata.WatchTopicID)
    98  	assert.Equal(t, harvesterEvent.Metadata.WatchTopicSelfLink, event.Metadata.WatchTopicSelfLink)
    99  	assert.Equal(t, harvesterEvent.Metadata.SequenceID, event.Metadata.SequenceID)
   100  }