Ejemplo n.º 1
0
        public async Task Run([EventHubTrigger("rapids", Connection = "EventHubConnectionString")] EventData[] events)
        {
            List <Exception> exceptions = new List <Exception>();

            foreach (EventData eventData in events)
            {
                try
                {
                    EventMessageBody messageBody = new EventMessageBody(eventData);
                    if (messageBody.IsEventType(EventType.None))
                    {
                        continue;
                    }

                    await messageBody.AsServiceBusMessage().SendAsync();
                }
                catch (Exception e)
                {
                    exceptions.Add(e);
                }
            }

            if (exceptions.Count > 1)
            {
                throw new AggregateException(exceptions);
            }

            if (exceptions.Count == 1)
            {
                throw exceptions.Single();
            }
        }
Ejemplo n.º 2
0
        public void GivenWellFormedBody_WhenUsingImplicitOperator_ThenItShouldReturnCorrectValue()
        {
            // arrange
            const string     expected         = "{'Dammit':'Bobby!'}";
            EventMessageBody eventMessageBody = new EventMessageBody(new EventData(Encoding.UTF8.GetBytes(expected)));

            // act
            string actual = eventMessageBody;

            // assert
            actual.Should().Be(expected);
        }
Ejemplo n.º 3
0
        public void GivenWellFormedBody_WhenUsingImplicitOperator_ThenItShouldNotThrow()
        {
            // arrange
            string           expected         = string.Empty;
            EventMessageBody eventMessageBody = new EventMessageBody(new EventData(ArraySegment <byte> .Empty));

            // act
            string actual = eventMessageBody;

            // assert
            actual.Should().Be(expected);
        }
Ejemplo n.º 4
0
        public void GivenNoNeedInMessageBody_WhenCreatingTopic_ThenItShouldThrow()
        {
            // arrange
            EventData        eventData        = new EventData(Encoding.UTF8.GetBytes("{'Dammit':'Bobby'}"));
            EventMessageBody eventMessageBody = new EventMessageBody(eventData);

            // act
            // ReSharper disable once UnusedVariable
            Action action = () => { string s = new Need(eventMessageBody); };

            // assert
            action.Should().Throw <Exception>();
        }
Ejemplo n.º 5
0
        public void GivenNeedInMessageBody_WhenCreatingTopic_ThenItShouldHydrateIt()
        {
            // arrange
            const string     expected         = "Propane Accessories";
            EventData        eventData        = new EventData(Encoding.UTF8.GetBytes($"{{'need':'{expected}'}}"));
            EventMessageBody eventMessageBody = new EventMessageBody(eventData);

            // act
            Need topic = new Need(eventMessageBody);

            // assert
            ((string)topic).Should().Be(expected);
        }
Ejemplo n.º 6
0
        public void GivenTopicInMessageBody_WhenCreatingTopic_ThenItShouldHydrateIt()
        {
            // arrange
            const string     expected         = "Strickland Propane";
            EventData        eventData        = new EventData(Encoding.UTF8.GetBytes($"{{'eventType':'{expected}'}}"));
            EventMessageBody eventMessageBody = new EventMessageBody(eventData);

            // act
            Topic topic = new Topic(eventMessageBody);

            // assert
            ((string)topic).Should().Be(expected);
        }
Ejemplo n.º 7
0
        public void GivenInvalidBody_WhenUsingAskingForServiceBusMessage_ThenItShouldShouldReturnNullServiceBusMessage()
        {
            // arrange
            const string expected = "{'businessName':'Strickland Propane, LLC'}";

            Environment.SetEnvironmentVariable("ServiceBusConnectionString", "Endpoint=sb://googazon-rivers.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=dammitbobby");
            EventMessageBody eventMessageBody = new EventMessageBody(new EventData(Encoding.UTF8.GetBytes(expected)));

            // act
            ServiceBusMessage actual = eventMessageBody.AsServiceBusMessage();

            // assert
            actual.Should().BeOfType <NullServiceBusMessage>();
        }
Ejemplo n.º 8
0
        public void GivenValidBodyWithUnknownTopic_WhenUsingAskingIsNoneEventType_ThenItShouldReturnTrue()
        {
            // arrange
            const string expected = "{'eventType':'propane','need':'accessory'}";

            Environment.SetEnvironmentVariable("ServiceBusConnectionString", "Endpoint=sb://googazon-rivers.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=dammitbobby");
            EventMessageBody eventMessageBody = new EventMessageBody(new EventData(Encoding.UTF8.GetBytes(expected)));

            // act
            bool actual = eventMessageBody.IsEventType(EventType.None);

            // assert
            actual.Should().BeTrue();
        }
 public EventMessage()
 {
     Header = new EventMessageHeader();
     Body   = new EventMessageBody();
 }