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); }
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); }
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); }
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); }
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); }
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); }