public void TryCreatePermanentReplicaAsync_should_return_true_and_create_new_replica_environment_and_application_if_they_do_not_exist() { var replicaInfo = new ReplicaInfo("default", "vostok", "replica1", GetProperties()); var serviceDiscoveryManager = new ServiceDiscoveryManager(GetZooKeeperClient(), log: Log); serviceDiscoveryManager.TryCreatePermanentReplicaAsync(replicaInfo) .GetAwaiter() .GetResult() .Should() .BeTrue(); serviceDiscoveryManager .GetAllReplicasAsync(replicaInfo.Environment, replicaInfo.Application) .GetAwaiter() .GetResult() .Should() .BeEquivalentTo("replica1"); serviceDiscoveryManager .GetEnvironmentAsync("default") .GetAwaiter() .GetResult() .Should() .NotBeNull(); serviceDiscoveryManager .GetApplicationAsync("default", "vostok") .GetAwaiter() .GetResult() .Should() .NotBeNull(); }
public void TryUpdateApplicationPropertiesAsync_should_return_true_and_set_new_properties_for_existent_application() { var initProperties = GetProperties(); CreateApplicationNode("environment", "vostok", properties: initProperties); var updatedProperties = new Dictionary <string, string> { ["updatedKey"] = "updatedValue" }; IApplicationInfoProperties UpdatePropertiesFunc(IApplicationInfoProperties props) { foreach (var property in updatedProperties) { props = props.Set(property.Key, property.Value); } return(props); } var serviceDiscoveryManager = new ServiceDiscoveryManager(GetZooKeeperClient(), log: Log); serviceDiscoveryManager.GetApplicationAsync("environment", "vostok") .GetAwaiter() .GetResult() .Properties .Should() .BeEquivalentTo(initProperties); serviceDiscoveryManager.TryUpdateApplicationPropertiesAsync("environment", "vostok", UpdatePropertiesFunc) .GetAwaiter() .GetResult() .Should() .BeTrue(); Action assert = () => serviceDiscoveryManager.GetApplicationAsync("environment", "vostok") .GetAwaiter() .GetResult() .Properties .Should() .BeEquivalentTo(initProperties.Concat(updatedProperties)); }
public void GetApplicationAsync_should_return_null_if_application_does_not_exist() { CreateApplicationNode("notMyEnv", "notMyApp"); var serviceDiscoveryManager = new ServiceDiscoveryManager(GetZooKeeperClient(), log: Log); serviceDiscoveryManager.GetApplicationAsync("default", "vostok") .GetAwaiter() .GetResult() .Should() .BeNull(); }
public void GetApplicationAsync_should_return_not_null_if_application_exists() { var replica = new ReplicaInfo("default", "vostok", "https://github.com/vostok"); CreateApplicationNode(replica.Environment, replica.Application); var serviceDiscoveryManager = new ServiceDiscoveryManager(GetZooKeeperClient(), log: Log); serviceDiscoveryManager.GetApplicationAsync(replica.Environment, replica.Application) .GetAwaiter() .GetResult() .Should() .BeEquivalentTo(new ApplicationInfo(replica.Environment, replica.Application, null)); }
public void TryUpdateApplicationPropertiesAsync_should_return_false_and_do_not_create_non_existent_environment_nor_non_existent_application() { const string environment = "environment"; const string application = "vostok"; var updatedProperties = new Dictionary <string, string> { ["updatedKey"] = "updatedValue" }; IApplicationInfoProperties UpdatePropertiesFunc(IApplicationInfoProperties props) { foreach (var property in updatedProperties) { props.Set(property.Key, property.Value); } return(props); } var serviceDiscoveryManager = new ServiceDiscoveryManager(GetZooKeeperClient(), log: Log); serviceDiscoveryManager.TryUpdateApplicationPropertiesAsync(environment, application, UpdatePropertiesFunc) .GetAwaiter() .GetResult() .Should() .BeFalse(); serviceDiscoveryManager.GetApplicationAsync(environment, application) .GetAwaiter() .GetResult() .Should() .BeNull(); serviceDiscoveryManager.GetEnvironmentAsync(environment) .GetAwaiter() .GetResult() .Should() .BeNull(); }