/// <summary> /// Initializes common resources. /// </summary> /// <param name="container">The composition container.</param> protected void EtpSetUp(IContainer container) { _container = container; // Clean up any remaining resources _client?.Dispose(); _server?.Dispose(); // Get next available port number var listener = new TcpListener(IPAddress.Loopback, 0); listener.Start(); var port = ((IPEndPoint)listener.LocalEndpoint).Port; listener.Stop(); // Update EtpServerUrl setting var uri = new Uri(TestSettings.EtpServerUrl); var url = TestSettings.EtpServerUrl.Replace($":{uri.Port}", $":{port}"); // Create server and client instances _server = CreateServer(port); _client = InitClient(CreateClient(url)); // Resolve dependencies early to avoid object disposed var streaming = container.Resolve <IChannelStreamingProducer>(); var discovery = container.Resolve <IDiscoveryStore>(); var store = container.Resolve <IStoreStore>(); // Register server handlers _server.Register(() => streaming); _server.Register(() => discovery); _server.Register(() => store); }
/// <summary> /// Disposes common resources. /// </summary> protected void EtpCleanUp() { TestSettings.Reset(); _client.Dispose(); _server.Dispose(); }