public void GetTransportSettingsTest(Option <UpstreamProtocol> upstreamProtocol, int connectionPoolSize, Option <IWebProxy> proxy, ITransportSettings[] expectedTransportSettingsList, bool useServerHeartbeat) { const string expectedAuthChain = "e3;e2;e1"; ITransportSettings[] transportSettingsList = CloudConnectionProvider.GetTransportSettings(upstreamProtocol, connectionPoolSize, proxy, useServerHeartbeat, expectedAuthChain); Assert.NotNull(transportSettingsList); Assert.Equal(expectedTransportSettingsList.Length, transportSettingsList.Length); for (int i = 0; i < expectedTransportSettingsList.Length; i++) { ITransportSettings expectedTransportSettings = expectedTransportSettingsList[i]; ITransportSettings transportSettings = transportSettingsList[i]; Assert.Equal(expectedTransportSettings.GetType(), transportSettings.GetType()); Assert.Equal(expectedTransportSettings.GetTransportType(), transportSettings.GetTransportType()); // Check authchain via Reflection string authChain = (string)transportSettings.GetType() .GetProperty("AuthenticationChain", BindingFlags.NonPublic | BindingFlags.Instance) .GetValue(transportSettings); Assert.Equal(authChain, expectedAuthChain); switch (expectedTransportSettings) { case AmqpTransportSettings _: { var expected = (AmqpTransportSettings)expectedTransportSettings; var actual = (AmqpTransportSettings)transportSettings; Assert.True(expected.Equals(actual)); // AmqpTransportSettings impls Equals, but doesn't override Object.Equals if (proxy == Option.None <IWebProxy>()) { Assert.Null(actual.Proxy); } else { Assert.True(actual.Proxy is WebProxy); Assert.Equal(((WebProxy)expected.Proxy).Address, ((WebProxy)actual.Proxy).Address); } break; } case MqttTransportSettings _: { var expected = (MqttTransportSettings)expectedTransportSettings; var actual = (MqttTransportSettings)transportSettings; Assert.True(actual.Proxy is WebProxy); Assert.Equal(((WebProxy)expected.Proxy).Address, ((WebProxy)actual.Proxy).Address); break; } } } }
public void GetTransportSettingsTest(Option <UpstreamProtocol> upstreamProtocol, int connectionPoolSize, Option <IWebProxy> proxy, ITransportSettings[] expectedTransportSettingsList) { ITransportSettings[] transportSettingsList = CloudConnectionProvider.GetTransportSettings(upstreamProtocol, connectionPoolSize, proxy); Assert.NotNull(transportSettingsList); Assert.Equal(expectedTransportSettingsList.Length, transportSettingsList.Length); for (int i = 0; i < expectedTransportSettingsList.Length; i++) { ITransportSettings expectedTransportSettings = expectedTransportSettingsList[i]; ITransportSettings transportSettings = transportSettingsList[i]; Assert.Equal(expectedTransportSettings.GetType(), transportSettings.GetType()); Assert.Equal(expectedTransportSettings.GetTransportType(), transportSettings.GetTransportType()); switch (expectedTransportSettings) { case AmqpTransportSettings _: { var expected = (AmqpTransportSettings)expectedTransportSettings; var actual = (AmqpTransportSettings)transportSettings; Assert.True(expected.Equals(actual)); // AmqpTransportSettings impls Equals, but doesn't override Object.Equals if (proxy == Option.None <IWebProxy>()) { Assert.Null(actual.Proxy); } else { Assert.True(actual.Proxy is WebProxy); Assert.Equal(((WebProxy)expected.Proxy).Address, ((WebProxy)actual.Proxy).Address); } break; } case MqttTransportSettings _: { var expected = (MqttTransportSettings)expectedTransportSettings; var actual = (MqttTransportSettings)transportSettings; Assert.True(actual.Proxy is WebProxy); Assert.Equal(((WebProxy)expected.Proxy).Address, ((WebProxy)actual.Proxy).Address); break; } } } }
public void GetTransportSettingsTest(Option <UpstreamProtocol> upstreamProtocol, int connectionPoolSize, ITransportSettings[] expectedTransportSettingsList) { ITransportSettings[] transportSettingsList = CloudConnectionProvider.GetTransportSettings(upstreamProtocol, connectionPoolSize); Assert.NotNull(transportSettingsList); Assert.Equal(expectedTransportSettingsList.Length, transportSettingsList.Length); for (int i = 0; i < expectedTransportSettingsList.Length; i++) { ITransportSettings expectedTransportSettings = expectedTransportSettingsList[i]; ITransportSettings transportSettings = transportSettingsList[i]; Assert.Equal(expectedTransportSettings.GetType(), transportSettings.GetType()); Assert.Equal(expectedTransportSettings.GetTransportType(), transportSettings.GetTransportType()); if (expectedTransportSettings is AmqpTransportSettings) { Assert.True(((AmqpTransportSettings)expectedTransportSettings).Equals((AmqpTransportSettings)transportSettings)); } } }