Exemple #1
0
        public async Task SerializesExpectedProperties_BaseType()
        {
            var mockTransport = new MockTransport(new MockResponse(200));
            var options       = new EventGridPublisherClientOptions
            {
                Transport = mockTransport
            };
            EventGridPublisherClient client =
                new EventGridPublisherClient(
                    new Uri("http://localHost"),
                    new AzureKeyCredential("fakeKey"),
                    options);
            var egEvent = new EventGridEvent(
                "record",
                "Microsoft.MockPublisher.TestEvent",
                "TestPayload",
                new DerivedTestPayload
            {
                Name            = "name",
                Age             = 10,
                DerivedProperty = 5
            },
                typeof(TestPayload));

            // since the data has not yet been serialized (CloudEvent not constructed from Parse method), GetData returns the passed in instance.
            Assert.AreEqual(5, egEvent.GetData <DerivedTestPayload>().DerivedProperty);

            // GetData returns as BinaryData so it will always serialize first even if cloudEvent was not constructed by calling Parse.
            Assert.IsNull(egEvent.GetData().ToObjectFromJson <DerivedTestPayload>().DerivedProperty);

            List <EventGridEvent> eventsList = new List <EventGridEvent>()
            {
                egEvent
            };

            await client.SendEventsAsync(eventsList);

            egEvent = DeserializeRequest(mockTransport.SingleRequest).First();
            Assert.IsNull(egEvent.GetData <DerivedTestPayload>().DerivedProperty);
            Assert.IsNull(egEvent.GetData().ToObjectFromJson <DerivedTestPayload>().DerivedProperty);
        }
Exemple #2
0
        public async Task SerializesExpectedProperties_DerivedType()
        {
            var mockTransport = new MockTransport(new MockResponse(200));
            var options       = new EventGridPublisherClientOptions
            {
                Transport = mockTransport
            };
            EventGridPublisherClient client =
                new EventGridPublisherClient(
                    new Uri("http://localHost"),
                    new AzureKeyCredential("fakeKey"),
                    options);
            var egEvent = new EventGridEvent(
                "record",
                "Microsoft.MockPublisher.TestEvent",
                "TestPayload",
                new DerivedTestPayload
            {
                Name            = "name",
                Age             = 10,
                DerivedProperty = 5
            });

            Assert.AreEqual(5, egEvent.GetData <DerivedTestPayload>().DerivedProperty);
            Assert.AreEqual(5, egEvent.GetData().ToObjectFromJson <DerivedTestPayload>().DerivedProperty);

            List <EventGridEvent> eventsList = new List <EventGridEvent>()
            {
                egEvent
            };

            await client.SendEventsAsync(eventsList);

            egEvent = DeserializeRequest(mockTransport.SingleRequest).First();
            Assert.AreEqual(5, egEvent.GetData <DerivedTestPayload>().DerivedProperty);
            Assert.AreEqual(5, egEvent.GetData().ToObjectFromJson <DerivedTestPayload>().DerivedProperty);
        }
        public async Task RunAsync([EventGridTrigger] EventGridEvent e)
        {
            var type = Type.GetType(e.EventType);

            if (type != null && typeof(DomainEvent).IsAssignableFrom(type))
            {
                await handler.HandleAsync((DomainEvent)e.GetData(serializer) !);
            }
            else
            {
                var table = await this.table.GetValueAsync();

                await table.ExecuteAsync(TableOperation.Insert(e.ToEntity()));
            }
        }