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 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(); }