Exemple #1
0
        public void Should_override_replicaMatchesFunc_from_constructor_when_defined_in_request()
        {
            var applicationInfo = new ApplicationInfo(environment, application, null);

            topology = ServiceTopology.Build(replicas, applicationInfo.Properties.SetPersistentReplicaTags(replica1.ToString(), new TagCollection {
                "tag1"
            }));
            var filter1  = new ServiceDiscoveryReplicasFilter(serviceLocator, environment, application, log, collection => collection.ContainsKey("tag1"));
            var context1 = new FakeContext(new RequestParameters());

            filter1.Filter(replicas, context1).Should().BeEquivalentTo(replica1);

            var context2 = new FakeContext(new RequestParameters().SetTagsFilter(collection => collection.ContainsKey("tag2")));

            filter1.Filter(replicas, context2).Should().BeEmpty();
        }
Exemple #2
0
        public void SetUp()
        {
            environment = "environment";
            application = "application";
            replicas    = new List <Uri> {
                replica1, replica2
            };
            topology = ServiceTopology.Build(replicas, null);

            serviceLocator = Substitute.For <IServiceLocator>();
            serviceLocator.Locate(environment, application).Returns(_ => topology);

            filter = new ServiceDiscoveryReplicasFilter(serviceLocator, environment, application, log);

            context = new FakeContext(new RequestParameters().SetTagsFilter(collection => collection.ContainsKey("tag1")));
        }
Exemple #3
0
        public void Should_filter_some_replicas_when_they_has_no_tags_and_filter_was_set_in_constructor()
        {
            var applicationInfo = new ApplicationInfo(environment, application, null);

            topology = ServiceTopology.Build(replicas, applicationInfo.Properties.SetPersistentReplicaTags(replica1.ToString(), new TagCollection {
                "tag1"
            }));
            var filter1    = new ServiceDiscoveryReplicasFilter(serviceLocator, environment, application, log, collection => collection.ContainsKey("tag1"));
            var newContext = new FakeContext(new RequestParameters());

            filter1.Filter(replicas, newContext).Should().BeEquivalentTo(replica1);

            var filter2 = new ServiceDiscoveryReplicasFilter(serviceLocator, environment, application, log, new ContainsTagFilter("tag1"));

            filter2.Filter(replicas, newContext).Should().BeEquivalentTo(replica1);

            var filter3 = new ServiceDiscoveryReplicasFilter(serviceLocator, environment, application, log, TagFilterExpressionHelpers.Parse("tag1"));

            filter3.Filter(replicas, newContext).Should().BeEquivalentTo(replica1);
        }