Exemplo n.º 1
0
        public void GetBindingData_SingleDispatch_ReturnsExpectedValue()
        {
            var evt = new EventData(new byte[] { });
            IDictionary <string, object> sysProps = GetSystemProperties();

            TestHelpers.SetField(evt, "SystemProperties", sysProps);

            var input = EventHubTriggerInput.New(evt);

            input.PartitionContext = GetPartitionContext();

            var strategy    = new EventHubTriggerBindingStrategy();
            var bindingData = strategy.GetBindingData(input);

            Assert.Equal(7, bindingData.Count);
            Assert.Same(input.PartitionContext, bindingData["PartitionContext"]);
            Assert.Equal(evt.SystemProperties.PartitionKey, bindingData["PartitionKey"]);
            Assert.Equal(evt.SystemProperties.Offset, bindingData["Offset"]);
            Assert.Equal(evt.SystemProperties.SequenceNumber, bindingData["SequenceNumber"]);
            Assert.Equal(evt.SystemProperties.EnqueuedTimeUtc, bindingData["EnqueuedTimeUtc"]);
            Assert.Same(evt.Properties, bindingData["Properties"]);
            IDictionary <string, object> bindingDataSysProps = bindingData["SystemProperties"] as Dictionary <string, object>;

            Assert.NotNull(bindingDataSysProps);
            Assert.Equal(bindingDataSysProps["PartitionKey"], bindingData["PartitionKey"]);
            Assert.Equal(bindingDataSysProps["Offset"], bindingData["Offset"]);
            Assert.Equal(bindingDataSysProps["SequenceNumber"], bindingData["SequenceNumber"]);
            Assert.Equal(bindingDataSysProps["EnqueuedTimeUtc"], bindingData["EnqueuedTimeUtc"]);
        }
Exemplo n.º 2
0
        public void GetBindingData_SingleDispatch_ReturnsExpectedValue()
        {
            var evt = GetSystemProperties(new byte[] { });

            var input = EventHubTriggerInput.New(evt);

            input.PartitionContext = GetPartitionContext();

            var strategy    = new EventHubTriggerBindingStrategy();
            var bindingData = strategy.GetBindingData(input);

            Assert.AreEqual(7, bindingData.Count);
            Assert.AreSame(input.PartitionContext, bindingData["PartitionContext"]);
            Assert.AreEqual(evt.PartitionKey, bindingData["PartitionKey"]);
            Assert.AreEqual(evt.Offset, bindingData["Offset"]);
            Assert.AreEqual(evt.SequenceNumber, bindingData["SequenceNumber"]);
            Assert.AreEqual(evt.EnqueuedTime, bindingData["EnqueuedTimeUtc"]);
            Assert.AreSame(evt.Properties, bindingData["Properties"]);
            IDictionary <string, object> bindingDataSysProps = bindingData["SystemProperties"] as Dictionary <string, object>;

            Assert.NotNull(bindingDataSysProps);
            Assert.AreEqual(bindingDataSysProps["PartitionKey"], bindingData["PartitionKey"]);
            Assert.AreEqual(bindingDataSysProps["Offset"], bindingData["Offset"]);
            Assert.AreEqual(bindingDataSysProps["SequenceNumber"], bindingData["SequenceNumber"]);
            Assert.AreEqual(bindingDataSysProps["EnqueuedTimeUtc"], bindingData["EnqueuedTimeUtc"]);
            Assert.AreEqual(bindingDataSysProps["iothub-connection-device-id"], "testDeviceId");
            Assert.AreEqual(bindingDataSysProps["iothub-enqueuedtime"], DateTime.MinValue);
        }
Exemplo n.º 3
0
        public void GetBindingData_MultipleDispatch_ReturnsExpectedValue()
        {
            var events = new EventData[3]
            {
                GetSystemProperties(Encoding.UTF8.GetBytes("Event 1"), $"pk0"),
                GetSystemProperties(Encoding.UTF8.GetBytes("Event 2"), $"pk1"),
                GetSystemProperties(Encoding.UTF8.GetBytes("Event 3"), $"pk2"),
            };

            var input = new EventHubTriggerInput
            {
                Events           = events,
                PartitionContext = GetPartitionContext(),
            };
            var strategy    = new EventHubTriggerBindingStrategy();
            var bindingData = strategy.GetBindingData(input);

            Assert.AreEqual(7, bindingData.Count);
            Assert.AreSame(input.PartitionContext, bindingData["PartitionContext"]);

            // verify an array was created for each binding data type
            Assert.AreEqual(events.Length, ((string[])bindingData["PartitionKeyArray"]).Length);
            Assert.AreEqual(events.Length, ((string[])bindingData["OffsetArray"]).Length);
            Assert.AreEqual(events.Length, ((long[])bindingData["SequenceNumberArray"]).Length);
            Assert.AreEqual(events.Length, ((DateTimeOffset[])bindingData["EnqueuedTimeUtcArray"]).Length);
            Assert.AreEqual(events.Length, ((IDictionary <string, object>[])bindingData["PropertiesArray"]).Length);
            Assert.AreEqual(events.Length, ((IDictionary <string, object>[])bindingData["SystemPropertiesArray"]).Length);

            Assert.AreEqual(events[0].PartitionKey, ((string[])bindingData["PartitionKeyArray"])[0]);
            Assert.AreEqual(events[1].PartitionKey, ((string[])bindingData["PartitionKeyArray"])[1]);
            Assert.AreEqual(events[2].PartitionKey, ((string[])bindingData["PartitionKeyArray"])[2]);
        }
Exemplo n.º 4
0
        public void TriggerStrategy()
        {
            string data = "123";

            var strategy = new EventHubTriggerBindingStrategy();
            EventHubTriggerInput triggerInput = strategy.ConvertFromString(data);

            var contract = strategy.GetBindingData(triggerInput);

            EventData single = strategy.BindSingle(triggerInput, null);
            string    body   = Encoding.UTF8.GetString(single.Body.Array);

            Assert.Equal(data, body);
            Assert.Null(contract["PartitionContext"]);
            Assert.Null(contract["partitioncontext"]); // case insensitive
        }
Exemplo n.º 5
0
        public void GetBindingData_MultipleDispatch_ReturnsExpectedValue()
        {
            var events = new EventData[3]
            {
                new EventData(Encoding.UTF8.GetBytes("Event 1")),
                new EventData(Encoding.UTF8.GetBytes("Event 2")),
                new EventData(Encoding.UTF8.GetBytes("Event 3")),
            };

            var count = 0;

            foreach (var evt in events)
            {
                var sysProps = TestHelpers.New <SystemPropertiesCollection>();
                TestHelpers.SetField(sysProps, "PartitionKey", $"pk{count++}");
                TestHelpers.SetField(evt, "SystemProperties", sysProps);
            }

            var input = new EventHubTriggerInput
            {
                Events           = events,
                PartitionContext = GetPartitionContext(),
            };
            var strategy    = new EventHubTriggerBindingStrategy();
            var bindingData = strategy.GetBindingData(input);

            Assert.Equal(7, bindingData.Count);
            Assert.Same(input.PartitionContext, bindingData["PartitionContext"]);

            // verify an array was created for each binding data type
            Assert.Equal(events.Length, ((string[])bindingData["PartitionKeyArray"]).Length);
            Assert.Equal(events.Length, ((string[])bindingData["OffsetArray"]).Length);
            Assert.Equal(events.Length, ((long[])bindingData["SequenceNumberArray"]).Length);
            Assert.Equal(events.Length, ((DateTime[])bindingData["EnqueuedTimeUtcArray"]).Length);
            Assert.Equal(events.Length, ((IDictionary <string, object>[])bindingData["PropertiesArray"]).Length);
            Assert.Equal(events.Length, ((IDictionary <string, object>[])bindingData["SystemPropertiesArray"]).Length);

            Assert.Equal(events[0].SystemProperties.PartitionKey, ((string[])bindingData["PartitionKeyArray"])[0]);
            Assert.Equal(events[1].SystemProperties.PartitionKey, ((string[])bindingData["PartitionKeyArray"])[1]);
            Assert.Equal(events[2].SystemProperties.PartitionKey, ((string[])bindingData["PartitionKeyArray"])[2]);
        }
Exemplo n.º 6
0
        public void GetBindingData_SingleDispatch_ReturnsExpectedValue()
        {
            var evt = new EventData();

            evt.PartitionKey = "TestKey";
            var input = EventHubTriggerInput.New(evt);

            input.PartitionContext = new PartitionContext();

            var strategy    = new EventHubTriggerBindingStrategy();
            var bindingData = strategy.GetBindingData(input);

            Assert.Equal(7, bindingData.Count);
            Assert.Same(input.PartitionContext, bindingData["PartitionContext"]);
            Assert.Equal(evt.PartitionKey, bindingData["PartitionKey"]);
            Assert.Equal(evt.Offset, bindingData["Offset"]);
            Assert.Equal(evt.SequenceNumber, bindingData["SequenceNumber"]);
            Assert.Equal(evt.EnqueuedTimeUtc, bindingData["EnqueuedTimeUtc"]);
            Assert.Same(evt.Properties, bindingData["Properties"]);
            Assert.Same(evt.SystemProperties, bindingData["SystemProperties"]);
        }