public void AddHost_GivenExistingHostName_ThrowsRpcException() { var hostDistributor = new HostDistributor(); hostDistributor.AddHost("https://www.somehost.com"); Assert.Throws <RpcException>(() => hostDistributor.AddHost("https://www.somehost.com")); }
public void NextHost_MultipleHostsEQueriedMultipleTimes_ReturnsSameHostName() { var hostDistributor = new HostDistributor(); hostDistributor.AddHost("https://www.somehost.com"); hostDistributor.AddHost("https://www.somehost2.com"); hostDistributor.AddHost("https://www.somehost3.com"); Assert.AreEqual("https://www.somehost.com", hostDistributor.NextHost()); Assert.AreEqual("https://www.somehost2.com", hostDistributor.NextHost()); Assert.AreEqual("https://www.somehost3.com", hostDistributor.NextHost()); Assert.AreEqual("https://www.somehost.com", hostDistributor.NextHost()); Assert.AreEqual("https://www.somehost2.com", hostDistributor.NextHost()); Assert.AreEqual("https://www.somehost3.com", hostDistributor.NextHost()); }
public void HasHosts_GivenHasHosts_ReturnsTrue() { var hostDistributor = new HostDistributor(); hostDistributor.AddHost("https://www.somehost.com"); Assert.IsTrue(hostDistributor.HasHosts()); }
public void RemoveHost_GivenDoesNotHaveHostName_ThrowsRpcException() { var hostDistributor = new HostDistributor(); hostDistributor.AddHost("https://www.somehost.com"); Assert.Throws <RpcException>(() => hostDistributor.RemoveHost("https://www.OtherHost.com")); }
public void HasHostName_GivenDoesNotHaveHostName_ReturnsFalse() { var hostDistributor = new HostDistributor(); hostDistributor.AddHost("https://www.somehost.com"); Assert.IsFalse(hostDistributor.HasHost("https://www.somehost2.com")); }
public void RemoveHost_GivenHasHostName_RemovesHostName() { var hostDistributor = new HostDistributor(); hostDistributor.AddHost("https://www.somehost.com"); hostDistributor.RemoveHost("https://www.somehost.com"); Assert.IsFalse(hostDistributor.HasHost("https://www.somehost.com")); }
private void RegistrationCreated(object sender, RegistrationCreatedEventArgs e) { if (_hostDistributor.TryGetValue(e.Registration.AppName, out var hostDistributor) && hostDistributor.HasHost(e.Registration.Host)) { throw new RpcException(new Grpc.Core.Status(StatusCode.AlreadyExists, $"Application name {e.Registration.AppName} with host {e.Registration.Host} already exists")); } _hostDistributor.AddOrUpdate(e.Registration.AppName, (x) => { hostDistributor = new HostDistributor(); hostDistributor.AddHost(e.Registration.Host); return(hostDistributor); }, (x, h) => { h.AddHost(e.Registration.Host); return(h); }); _logger.LogInformation($"Registration received for host for application with appName {e.Registration.AppName} and host appName {e.Registration.Host}"); }