public void FilterInvalidEntitiesTest4() { IConfiguration configuration = ObjectFactory.CreateAppSettingConfiguration(); var configurationSource = ObjectFactory.CreateDefaultConfigurationSource(0, "App.config", configuration); var configurationManager = ObjectFactory.CreateDefaultConfigurationManager(configurationSource); string managerId = "soa"; string loadBalancerId = MethodInfo.GetCurrentMethod().Name; string fileName = configuration.GetPropertyValue("soa.ribbon.local-cache.data-folder") + "\\" + managerId + "." + loadBalancerId; var loadBalancerConfig = new LoadBalancerConfig(new TruePing(), new DefaultServerSource(new Server[0])); var loadBalancerManager = LoadBalancerManager.GetManager(managerId, new LoadBalancerManagerConfig(configurationManager)); var lbContext = new DefaultLoadBalancerContext(loadBalancerManager, loadBalancerId, loadBalancerConfig); try { string data = "[{\"RouteId\":\"default-route-rule\",\"ServerGroups\":[{\"GroupId\":\"default-group-key\",\"Metadata\":[],\"Servers\":[{\"IsAlive\":true,\"Metadata\":[{\"Key\":\"subenv\",\"Value\":\"uat\"},{\"Key\":\"url\",\"Value\":\"http://10.2.44.138/test-service/\"},{\"Key\":\"healthCheckUrl\",\"Value\":\"http://10.2.44.138/test-service/checkhealth.json\"}],\"ServerId\":\"\"},{\"IsAlive\":true,\"Metadata\":[{\"Key\":\"subenv\",\"Value\":\"uat\"},{\"Key\":\"url\",\"Value\":\"http://10.2.42.106/test-service/\"},{\"Key\":\"healthCheckUrl\",\"Value\":\"http://10.2.42.106/test-service/checkhealth.json\"}],\"ServerId\":\"10.2.42.106\"}],\"Weight\":5}]}]"; File.WriteAllText(fileName, data); var result = lbContext.ServerSourceManager.Restore(); result = result.FilterInvalidEntities(_logger, new Dictionary <string, string>()); Assert.AreEqual(1, result.Count); Assert.AreEqual(1, result[0].ServerGroups.Length); Assert.AreEqual(1, result[0].ServerGroups[0].Servers.Length); } finally { File.Delete(fileName); } }
private ILoadBalancer NewLoadBalancer(string loadBalancerId, LoadBalancerConfig loadBalancerConfig) { ParameterChecker.NotNullOrWhiteSpace(loadBalancerId, "loadBalancerId"); ParameterChecker.NotNull(loadBalancerConfig, "loadBalancerConfig"); var lbContext = new DefaultLoadBalancerContext(this, loadBalancerId, loadBalancerConfig); return(lbContext.LoadBalancer); }
public void BackupRestoreTest() { IConfiguration configuration = ObjectFactory.CreateAppSettingConfiguration(); var configurationSource = ObjectFactory.CreateDefaultConfigurationSource(0, "App.config", configuration); var configurationManager = ObjectFactory.CreateDefaultConfigurationManager(configurationSource); string managerId = "soa"; string loadBalancerId = MethodInfo.GetCurrentMethod().Name; string fileName = configuration.GetPropertyValue("soa.ribbon.local-cache.data-folder") + "\\" + managerId + "." + loadBalancerId; try { var loadBalancerConfig = new LoadBalancerConfig(new TruePing(), new DefaultServerSource(new Server[0])); var loadBalancerManager = LoadBalancerManager.GetManager(managerId, new LoadBalancerManagerConfig(configurationManager)); var lbContext = new DefaultLoadBalancerContext(loadBalancerManager, loadBalancerId, loadBalancerConfig); var manager = new DefaultServerSourceManager(lbContext); List <ServerGroup> serverGroups = new List <ServerGroup>(); for (int i = 0; i < 10; i++) { var server = new Server("Server_" + i, i % 2 == 0); serverGroups.Add(new ServerGroup(server.ServerId, i, new List <Server>() { server })); } var expected = new List <LoadBalancerRoute>() { new LoadBalancerRoute("default", serverGroups) }; manager.Backup(expected); var actual = manager.Restore(); CollectionAssert.AreEqual(expected, actual); } finally { File.Delete(fileName); } }