public async Task CreateForUpstreamProtocolTest(UpstreamProtocol upstreamProtocol, Client.TransportType expectedTransportType) { // Arrange var receivedTransportType = Client.TransportType.Http1; Task <Client.ModuleClient> ModuleClientCreator(Client.TransportType transportType) { receivedTransportType = transportType; return(Task.FromResult((Client.ModuleClient)null)); } // Act await ModuleClient.CreateDeviceClientForUpstreamProtocol(Option.Some(upstreamProtocol), ModuleClientCreator); // Assert Assert.Equal(expectedTransportType, receivedTransportType); }
public async Task CreateForNoUpstreamProtocolTest() { // Arrange var receivedTransportTypes = new List <Client.TransportType>(); Task <Client.ModuleClient> DeviceClientCreator(Client.TransportType transportType) { receivedTransportTypes.Add(transportType); return(receivedTransportTypes.Count == 1 ? Task.FromException <Client.ModuleClient>(new InvalidOperationException()) : Task.FromResult(Client.ModuleClient.Create("example.com", new Client.ModuleAuthenticationWithToken("deviceid", "moduleid", TokenHelper.CreateSasToken("foo.azure-devices.net"))))); } // Act await ModuleClient.CreateDeviceClientForUpstreamProtocol(Option.None <UpstreamProtocol>(), DeviceClientCreator); // Assert Assert.Equal(2, receivedTransportTypes.Count); Assert.Equal(Client.TransportType.Amqp_Tcp_Only, receivedTransportTypes[0]); Assert.Equal(Client.TransportType.Amqp_WebSocket_Only, receivedTransportTypes[1]); }
public async Task CreateForNoUpstreamProtocolTest() { // Arrange var receivedTransportTypes = new List <Client.TransportType>(); Task <Client.ModuleClient> DeviceClientCreator(Client.TransportType transportType) { receivedTransportTypes.Add(transportType); if (receivedTransportTypes.Count == 1) { throw new InvalidOperationException(); } return(Task.FromResult((Client.ModuleClient)null)); } // Act await ModuleClient.CreateDeviceClientForUpstreamProtocol(Option.None <UpstreamProtocol>(), DeviceClientCreator); // Assert Assert.Equal(2, receivedTransportTypes.Count); Assert.Equal(Client.TransportType.Amqp_Tcp_Only, receivedTransportTypes[0]); Assert.Equal(Client.TransportType.Amqp_WebSocket_Only, receivedTransportTypes[1]); }