public void WillCreatePolicyPerScope() { var roundRobinFactory = new ScopeLoadBalancePolicyFactory<RoundRobinPolicy>(); var endpoint = new EndpointDiscoveryMetadata { Scopes = { new Uri("urn:scope:foo"), new Uri("urn:scope:bar") } }; var policies = roundRobinFactory.CreatePolicies(endpoint); Assert.AreEqual(2, policies.Length); }
public void WillCreatePolicyPerScope() { var roundRobinFactory = new ScopeLoadBalancePolicyFactory <RoundRobinPolicy>(); var endpoint = new EndpointDiscoveryMetadata { Scopes = { new Uri("urn:scope:foo"), new Uri("urn:scope:bar") } }; var policies = roundRobinFactory.CreatePolicies(endpoint); Assert.AreEqual(2, policies.Length); }
public void CanCreatePolicyFactory() { var roundRobinFactory = new ScopeLoadBalancePolicyFactory<RoundRobinPolicy>(); var endpoint = new EndpointDiscoveryMetadata { Scopes = { new Uri("urn:scope:foo") } }; var policies = roundRobinFactory.CreatePolicies(endpoint); Assert.AreEqual(1, policies.Length); Assert.IsInstanceOf<RoundRobinPolicy>(policies[0]); Assert.IsNull(policies[0].ChooseTarget()); }
public void WillRejectEndpointsNotSupportingScope() { var roundRobinFactory = new ScopeLoadBalancePolicyFactory<RoundRobinPolicy>(); var endpoint = new EndpointDiscoveryMetadata { Scopes = { new Uri("urn:scope:foo") } }; var policies = roundRobinFactory.CreatePolicies(endpoint); Assert.IsFalse(policies[0].RegisterTarget(new EndpointDiscoveryMetadata { Scopes = { new Uri("urn:scope:bar") } })); }
public void CanCreatePolicyFactory() { var roundRobinFactory = new ScopeLoadBalancePolicyFactory <RoundRobinPolicy>(); var endpoint = new EndpointDiscoveryMetadata { Scopes = { new Uri("urn:scope:foo") } }; var policies = roundRobinFactory.CreatePolicies(endpoint); Assert.AreEqual(1, policies.Length); Assert.IsInstanceOf <RoundRobinPolicy>(policies[0]); Assert.IsNull(policies[0].ChooseTarget()); }
public void WillRejectEndpointsNotSupportingScope() { var roundRobinFactory = new ScopeLoadBalancePolicyFactory <RoundRobinPolicy>(); var endpoint = new EndpointDiscoveryMetadata { Scopes = { new Uri("urn:scope:foo") } }; var policies = roundRobinFactory.CreatePolicies(endpoint); Assert.IsFalse(policies[0].RegisterTarget(new EndpointDiscoveryMetadata { Scopes = { new Uri("urn:scope:bar") } })); }
public void WillFallBackToContractPolicyWhenNoScopes() { var roundRobinFactory = new ScopeLoadBalancePolicyFactory<RoundRobinPolicy>(); var endpoint = new EndpointDiscoveryMetadata { ContractTypeNames = { new XmlQualifiedName("foo") } }; var policies = roundRobinFactory.CreatePolicies(endpoint); Assert.IsTrue(policies[0].RegisterTarget(new EndpointDiscoveryMetadata { ContractTypeNames = { new XmlQualifiedName("foo") } })); Assert.IsFalse(policies[0].RegisterTarget(new EndpointDiscoveryMetadata { ContractTypeNames = { new XmlQualifiedName("bar") } })); }
public void WillFallBackToContractPolicyWhenNoScopes() { var roundRobinFactory = new ScopeLoadBalancePolicyFactory <RoundRobinPolicy>(); var endpoint = new EndpointDiscoveryMetadata { ContractTypeNames = { new XmlQualifiedName("foo") } }; var policies = roundRobinFactory.CreatePolicies(endpoint); Assert.IsTrue(policies[0].RegisterTarget(new EndpointDiscoveryMetadata { ContractTypeNames = { new XmlQualifiedName("foo") } })); Assert.IsFalse(policies[0].RegisterTarget(new EndpointDiscoveryMetadata { ContractTypeNames = { new XmlQualifiedName("bar") } })); }