コード例 #1
0
        public void ParseExplicit_ValidBlobCreatedEvent_ShouldSucceed()
        {
            // Arrange
            const string topic           = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
            const string subject         = "/blobServices/default/containers/event-container/blobs/finnishjpeg";
            const string eventType       = "Microsoft.Storage.BlobCreated";
            const string id              = "5647b67c-b01e-002d-6a47-bc01ac063360";
            const string dataVersion     = "1";
            const string metadataVersion = "1";
            const string api             = "PutBlockList";
            const string clientRequestId = "5c24a322-35c9-4b46-8ef5-245a81af7037";
            const string requestId       = "5647b67c-b01e-002d-6a47-bc01ac000000";
            const string eTag            = "0x8D58A5F0C6722F9";
            const string contentType     = "image/jpeg";
            const int    contentLength   = 29342;
            const string blobType        = "BlockBlob";
            const string url             = "https://sample.blob.core.windows.net/event-container/finnish.jpeg";
            const string sequencer       = "00000000000000000000000000000094000000000017d503";
            const string batchId         = "69cd1576-e430-4aff-8153-570934a1f6e1";
            string       rawEvent        = EventSamples.BlobCreateEvent;
            var          eventTime       = DateTimeOffset.Parse("2018-03-15T10:25:17.7535274");

            // Act
            var eventGridMessage = EventParser.Parse(rawEvent);

            // Assert
            Assert.NotNull(eventGridMessage);
            Assert.NotNull(eventGridMessage.Events);
            EventGridEvent eventGridEvent = Assert.Single(eventGridMessage.Events);

            Assert.Equal(topic, eventGridEvent.Topic);
            Assert.Equal(subject, eventGridEvent.Subject);
            Assert.Equal(eventType, eventGridEvent.EventType);
            Assert.Equal(eventTime, eventGridEvent.EventTime);
            Assert.Equal(id, eventGridEvent.Id);
            Assert.Equal(dataVersion, eventGridEvent.DataVersion);
            Assert.Equal(metadataVersion, eventGridEvent.MetadataVersion);
            Assert.NotNull(eventGridEvent.Data);
            var eventPayload = eventGridEvent.GetPayload <StorageBlobCreatedEventData>();

            Assert.NotNull(eventPayload);
            Assert.Equal(api, eventPayload.Api);
            Assert.Equal(clientRequestId, eventPayload.ClientRequestId);
            Assert.Equal(requestId, eventPayload.RequestId);
            Assert.Equal(eTag, eventPayload.ETag);
            Assert.Equal(contentType, eventPayload.ContentType);
            Assert.Equal(contentLength, eventPayload.ContentLength);
            Assert.Equal(blobType, eventPayload.BlobType);
            Assert.Equal(url, eventPayload.Url);
            Assert.Equal(sequencer, eventPayload.Sequencer);
            Assert.NotNull(eventPayload.StorageDiagnostics);
            var storageDiagnostics = Assert.IsType <JObject>(eventPayload.StorageDiagnostics);

            Assert.Equal(batchId, storageDiagnostics["batchId"]);
        }
コード例 #2
0
        public void ParseExplicitAsEventGridEvent_ValidStorageBlobCreatedCloudEvent_ShouldSucceed()
        {
            // Arrange
            const string eventType = "Microsoft.Storage.BlobCreated",
                         eventId   = "173d9985-401e-0075-2497-de268c06ff25",
                         eventTime = "2018-04-28T02:18:47.1281675";

            const string api             = "PutBlockList",
                         clientRequestId = "6d79dbfb-0e37-4fc4-981f-442c9ca65760",
                         requestId       = "831e1650-001e-001b-66ab-eeb76e000000",
                         etag            = "0x8D4BCC2E4835CD0",
                         contentType     = "application/octet-stream",
                         blobType        = "BlockBlob",
                         url             = "https://oc2d2817345i60006.blob.core.windows.net/oc2d2817345i200097container/oc2d2817345i20002296blob",
                         sequencer       = "00000000000004420000000000028963",
                         batchId         = "b68529f3-68cd-4744-baa4-3c0498ec19f0";

            const long contentLength = 524_288;

            string             rawEvent   = EventSamples.AzureBlobStorageCreatedCloudEvent;
            EventBatch <Event> eventBatch = EventParser.Parse(rawEvent);

            Assert.NotNull(eventBatch);
            Event @event = Assert.Single(eventBatch.Events);

            Assert.NotNull(@event);

            // Act
            EventGridEvent eventGridEvent = @event.AsEventGridEvent();

            // Assert
            Assert.NotNull(eventGridEvent);
            Assert.Equal(eventType, eventGridEvent.EventType);
            Assert.Equal(eventId, eventGridEvent.Id);
            Assert.Equal(eventTime, eventGridEvent.EventTime.ToString("O"));

            var eventPayload = eventGridEvent.GetPayload <StorageBlobCreatedEventData>();

            Assert.NotNull(eventPayload);
            Assert.Equal(api, eventPayload.Api);
            Assert.Equal(clientRequestId, eventPayload.ClientRequestId);
            Assert.Equal(requestId, eventPayload.RequestId);
            Assert.Equal(etag, eventPayload.ETag);
            Assert.Equal(contentType, eventPayload.ContentType);
            Assert.Equal(contentLength, eventPayload.ContentLength);
            Assert.Equal(blobType, eventPayload.BlobType);
            Assert.Equal(url, eventPayload.Url);
            Assert.Equal(sequencer, eventPayload.Sequencer);
            Assert.NotNull(eventPayload.StorageDiagnostics);
            var storageDiagnostics = Assert.IsType <JObject>(eventPayload.StorageDiagnostics);

            Assert.Equal(batchId, storageDiagnostics["batchId"]);
        }
コード例 #3
0
ファイル: OnOrderCreated.cs プロジェクト: relay-dev/web
        public async Task Run([EventGridTrigger] EventGridEvent eventGridEvent, ILogger log, CancellationToken cancellationToken)
        {
            var payload = eventGridEvent.GetPayload <OrderCreatedPayload>();

            var request = new GetOrderByIdRequest
            {
                OrderId = payload.OrderId
            };

            GetOrderByIdResponse response = await _mediator.Send(request, cancellationToken);

            // Handle the event

            log.LogInformation($"Handled OnOrderCreated for OrderId {response.Order.OrderId}");
        }