package api import ( "context" "strings" "testing" auditV1 "dev.azure.com/schwarzit/schwarzit.stackit-public/audit-go.git/gen/go/audit/v1" "github.com/stretchr/testify/assert" ) func TestMockAuditApi_Log(t *testing.T) { auditApi, err := NewMockAuditApi() assert.NoError(t, err) // Instantiate test data event, objectIdentifier := newOrganizationAuditEvent(nil) routableObjectIdentifier := NewRoutableIdentifier(objectIdentifier) // Test t.Run("Log", func(t *testing.T) { assert.Nil(t, auditApi.Log( context.Background(), event, auditV1.Visibility_VISIBILITY_PUBLIC, routableObjectIdentifier)) }) t.Run("reject data access event", func(t *testing.T) { orgEvent, objIdentifier := newOrganizationAuditEvent(nil) orgEvent.LogName = strings.Replace(orgEvent.LogName, string(EventTypeAdminActivity), string(EventTypeDataAccess), 1) rtIdentifier := NewRoutableIdentifier(objIdentifier) assert.ErrorIs(t, auditApi.Log( context.Background(), orgEvent, auditV1.Visibility_VISIBILITY_PUBLIC, rtIdentifier), ErrUnsupportedEventTypeDataAccess) }) t.Run("ValidateAndSerialize", func(t *testing.T) { visibility := auditV1.Visibility_VISIBILITY_PUBLIC cloudEvent, err := auditApi.ValidateAndSerialize( context.Background(), event, visibility, routableObjectIdentifier) assert.NoError(t, err) validateRoutableEventPayload( t, cloudEvent.Data, objectIdentifier, event, event.ProtoPayload.OperationName, visibility) }) t.Run("ValidateAndSerialize event nil", func(t *testing.T) { visibility := auditV1.Visibility_VISIBILITY_PUBLIC _, err := auditApi.ValidateAndSerialize(context.Background(), nil, visibility, routableObjectIdentifier) assert.ErrorIs(t, err, ErrEventNil) }) t.Run("Send", func(t *testing.T) { var cloudEvent = CloudEvent{} assert.Nil(t, auditApi.Send(context.Background(), routableObjectIdentifier, &cloudEvent)) }) }