private async Task Twin_DeviceSetsReportedPropertyAndGetsItBackPoolOverAmqp( TestDeviceType type, Client.TransportType transport, int poolSize, int devicesCount, ConnectionStringAuthScope authScope = ConnectionStringAuthScope.Device) { async Task TestOperationAsync(DeviceClient deviceClient, TestDevice testDevice, TestDeviceCallbackHandler _) { Logger.Trace($"{nameof(TwinE2EPoolAmqpTests)}: Setting reported propery and verifying twin for device {testDevice.Id}"); await TwinE2ETests.Twin_DeviceSetsReportedPropertyAndGetsItBackAsync(deviceClient, testDevice.Id, Guid.NewGuid().ToString(), Logger).ConfigureAwait(false); } await PoolingOverAmqp .TestPoolAmqpAsync( _devicePrefix, transport, poolSize, devicesCount, null, TestOperationAsync, null, authScope, true, Logger) .ConfigureAwait(false); }
private async Task ServiceSetsDesiredPropertyAndDeviceReceivesEventPoolOverAmqp( TestDeviceType type, Client.TransportType transport, int poolSize, int devicesCount, Func <DeviceClient, string, string, MsTestLogger, Task <Task> > setTwinPropertyUpdateCallbackAsync, ConnectionStringAuthScope authScope = ConnectionStringAuthScope.Device) { var twinPropertyMap = new Dictionary <string, List <string> >(); async Task InitOperationAsync(DeviceClient deviceClient, TestDevice testDevice, TestDeviceCallbackHandler _) { string propName = Guid.NewGuid().ToString(); string propValue = Guid.NewGuid().ToString(); twinPropertyMap.Add(testDevice.Id, new List <string> { propName, propValue }); Logger.Trace($"{nameof(TwinE2EPoolAmqpTests)}: Setting desired propery callback for device {testDevice.Id}"); Logger.Trace($"{nameof(ServiceSetsDesiredPropertyAndDeviceReceivesEventPoolOverAmqp)}: name={propName}, value={propValue}"); Task updateReceivedTask = await setTwinPropertyUpdateCallbackAsync(deviceClient, propName, propValue, Logger).ConfigureAwait(false); } async Task TestOperationAsync(DeviceClient deviceClient, TestDevice testDevice, TestDeviceCallbackHandler _) { Logger.Trace($"{nameof(TwinE2EPoolAmqpTests)}: Updating the desired properties for device {testDevice.Id}"); List <string> twinProperties = twinPropertyMap[testDevice.Id]; string propName = twinProperties[0]; string propValue = twinProperties[1]; await TwinE2ETests.RegistryManagerUpdateDesiredPropertyAsync(testDevice.Id, propName, propValue).ConfigureAwait(false); } Task CleanupOperationAsync() { twinPropertyMap.Clear(); return(Task.FromResult(0)); } await PoolingOverAmqp .TestPoolAmqpAsync( _devicePrefix, transport, poolSize, devicesCount, InitOperationAsync, TestOperationAsync, CleanupOperationAsync, authScope, true, Logger) .ConfigureAwait(false); }