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) { event, objectIdentifier := newOrganizationAuditEvent(nil) event.LogName = strings.Replace(event.LogName, string(EventTypeAdminActivity), string(EventTypeDataAccess), 1) routableObjectIdentifier := NewRoutableIdentifier(objectIdentifier) assert.ErrorIs(t, (*auditApi).Log( context.Background(), event, auditV1.Visibility_VISIBILITY_PUBLIC, routableObjectIdentifier), ErrUnsupportedEventTypeDataAccess) }) t.Run("ValidateAndSerialize", func(t *testing.T) { visibility := auditV1.Visibility_VISIBILITY_PUBLIC cloudEvent, err := (*auditApi).ValidateAndSerializeWithTrace( event, visibility, routableObjectIdentifier, nil, nil) 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(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)) }) }