public AddEndpointWindow(IModalService modalService, WuEndpointCollection endpointCollection, WuEndpointFactory endpointFactory) { _modalService = modalService ?? throw new ArgumentNullException(nameof(modalService)); _endpointCollection = endpointCollection ?? throw new ArgumentNullException(nameof(endpointCollection)); _wuEndpointFactory = endpointFactory; InitializeComponent(); TextBoxUrlInput.Text = $"{AddHostViewModel.DefaultScheme}://localhost:{AddHostViewModel.DefaultPort}/{AddHostViewModel.DefaultPath}"; }
public void Should_DismissConnection_When_EndpointNotProvidesVersionInfo() { _service.Setup(s => s.GetServiceVersion()).Returns <VersionInfo[]>(null); var factory = new WuEndpointFactory(_serviceFactory); factory.TryCreateWuEndpoint( new NetTcpBinding(), new EndpointAddress("net.tcp://any"), out IWuEndpoint endpoint, out Exception exception); Assert.IsInstanceOfType(exception, typeof(EndpointNotSupportedException)); }
async private static Task <AddHostViewModel> ConnectToHost(WuEndpointFactory endpointFactory, string url) { if (String.IsNullOrWhiteSpace(url)) { throw new ArgumentNullException(nameof(url)); } if (endpointFactory == null) { throw new ArgumentNullException(nameof(endpointFactory)); } Task <AddHostViewModel> addEndpoint = Task.Run(() => { Uri uri = null; try { uri = GetHostUriFromString(url); if (uri.Scheme != Uri.UriSchemeNetTcp) { throw new NotSupportedException($"Scheme {uri.Scheme.ToString()} is not supported."); } var remoteAddr = new EndpointAddress(uri.ToString()); var binding = new NetTcpBinding(); if (endpointFactory.TryCreateWuEndpoint(binding, remoteAddr, out IWuEndpoint endpoint, out Exception exception)) { Debug.Assert(exception == null || exception is EndpointNeedsUpgradeException); return(new AddHostViewModel(uri.ToString(), true, exception, endpoint)); } else { return(new AddHostViewModel(uri.ToString(), false, exception, null)); } } catch (Exception ex) { return(new AddHostViewModel((uri != null)?uri.ToString():url, false, ex, null)); } });