Пример #1
0
        public async Task SendMessageMultipleDevicesTest()
        {
            IList <IMessage> messages  = MessageHelper.GenerateMessages(4);
            DateTime         startTime = DateTime.UtcNow.Subtract(ClockSkew);

            ICloudProxy cloudProxy1 = await this.GetCloudProxyWithConnectionStringKey("device2ConnStrKey");

            ICloudProxy cloudProxy2 = await this.GetCloudProxyWithConnectionStringKey("device3ConnStrKey");

            for (int i = 0; i < messages.Count; i = i + 2)
            {
                await cloudProxy1.SendMessageAsync(messages[i]);

                await cloudProxy2.SendMessageAsync(messages[i + 1]);
            }

            bool disconnectResult = await cloudProxy1.CloseAsync();

            Assert.True(disconnectResult);
            disconnectResult = await cloudProxy2.CloseAsync();

            Assert.True(disconnectResult);

            await CheckMessageInEventHub(messages, startTime);
        }
Пример #2
0
        public async Task CanUpdateReportedProperties()
        {
            ICloudProxy cloudProxy = await this.GetCloudProxyWithConnectionStringKey("device2ConnStrKey");

            IMessage message = await cloudProxy.GetTwinAsync();

            JObject twin    = JObject.Parse(System.Text.Encoding.UTF8.GetString(message.Body));
            int     version = (int)twin.SelectToken("reported.$version");
            int     counter = (int?)twin.SelectToken("reported.bvtCounter") ?? 0;

            IMessage updateReportedPropertiesMessage = new EdgeMessage.Builder(Encoding.UTF8.GetBytes($"{{\"bvtCounter\":{counter + 1}}}")).Build();
            await cloudProxy.UpdateReportedPropertiesAsync(updateReportedPropertiesMessage);

            message = await cloudProxy.GetTwinAsync();

            twin = JObject.Parse(System.Text.Encoding.UTF8.GetString(message.Body));
            int nextVersion = (int)twin.SelectToken("reported.$version");
            var nextCounter = (int?)twin.SelectToken("reported.bvtCounter");

            Assert.NotNull(nextCounter);
            Assert.Equal(version + 1, nextVersion);
            Assert.Equal(counter + 1, nextCounter);

            bool disconnectResult = await cloudProxy.CloseAsync();

            Assert.True(disconnectResult);
        }
Пример #3
0
        public async Task CanGetTwin()
        {
            ICloudProxy cloudProxy = await this.GetCloudProxyWithConnectionStringKey("device2ConnStrKey");

            IMessage result = await cloudProxy.GetTwinAsync();

            string actualString = System.Text.Encoding.UTF8.GetString(result.Body);

            Assert.StartsWith("{", actualString);
            bool disconnectResult = await cloudProxy.CloseAsync();

            Assert.True(disconnectResult);
        }
Пример #4
0
        public async Task SendMessageBatchTest()
        {
            IList <IMessage> messages   = MessageHelper.GenerateMessages(4);
            DateTime         startTime  = DateTime.UtcNow.Subtract(ClockSkew);
            ICloudProxy      cloudProxy = await this.GetCloudProxyWithConnectionStringKey("device2ConnStrKey");

            await cloudProxy.SendMessageBatchAsync(messages);

            bool disconnectResult = await cloudProxy.CloseAsync();

            Assert.True(disconnectResult);

            await CheckMessageInEventHub(messages, startTime);
        }
Пример #5
0
        public async Task SendMessageMultipleDevicesTest()
        {
            IList <IMessage> messages  = MessageHelper.GenerateMessages(4);
            DateTime         startTime = DateTime.UtcNow.Subtract(ClockSkew);

            string device2ConnectionString = await SecretsHelper.GetSecretFromConfigKey(Device2ConnStrKey);

            string device3ConnectionString = await SecretsHelper.GetSecretFromConfigKey(Device3ConnStrKey);

            string deviceId2 = IotHubConnectionStringBuilder.Create(device2ConnectionString).DeviceId;
            string deviceId3 = IotHubConnectionStringBuilder.Create(device3ConnectionString).DeviceId;

            ICloudProxy cloudProxy2 = await this.GetCloudProxyFromConnectionStringKey(Device2ConnStrKey);

            ICloudProxy cloudProxy3 = await this.GetCloudProxyFromConnectionStringKey(Device3ConnStrKey);

            Dictionary <string, IList <IMessage> > sentMessagesByDevice = new Dictionary <string, IList <IMessage> >();

            sentMessagesByDevice.Add(deviceId2, new List <IMessage>());
            sentMessagesByDevice.Add(deviceId3, new List <IMessage>());

            for (int i = 0; i < messages.Count; i = i + 2)
            {
                IMessage device2Message = messages[i];
                IMessage device3Message = messages[i + 1];

                await cloudProxy2.SendMessageAsync(device2Message);

                await cloudProxy3.SendMessageAsync(device3Message);

                sentMessagesByDevice[deviceId2].Add(device2Message);
                sentMessagesByDevice[deviceId3].Add(device3Message);
            }

            bool disconnectResult = await cloudProxy2.CloseAsync();

            Assert.True(disconnectResult);
            disconnectResult = await cloudProxy3.CloseAsync();

            Assert.True(disconnectResult);

            await CheckMessageInEventHub(sentMessagesByDevice, startTime);
        }
Пример #6
0
        public async Task SendMessageBatchTest()
        {
            string device2ConnectionString = await SecretsHelper.GetSecretFromConfigKey(Device2ConnStrKey);

            string deviceId2 = IotHubConnectionStringBuilder.Create(device2ConnectionString).DeviceId;

            IList <IMessage> messages   = MessageHelper.GenerateMessages(4);
            DateTime         startTime  = DateTime.UtcNow.Subtract(ClockSkew);
            ICloudProxy      cloudProxy = await this.GetCloudProxyFromConnectionStringKey(Device2ConnStrKey);

            await cloudProxy.SendMessageBatchAsync(messages);

            Dictionary <string, IList <IMessage> > sentMessagesByDevice = new Dictionary <string, IList <IMessage> >();

            sentMessagesByDevice.Add(deviceId2, messages);

            bool disconnectResult = await cloudProxy.CloseAsync();

            Assert.True(disconnectResult);

            await CheckMessageInEventHub(sentMessagesByDevice, startTime);
        }