Пример #1
0
        public void TestReload()
        {
            ServiceRepository serviceRepository = new ServiceRepository(Constants.DiscoveryClientConfig);
            List <Service>    services          = new List <Service>();

            Assert.AreEqual(0, services.Count);
            HashSet <String> serviceKeys = new HashSet <String>()
            {
                Constants.RegistryServiceKey, Constants.JavaRegistryServiceKey
            };
            Dictionary <String, ServiceChangeListener> serviceChangeListeners = new Dictionary <string, ServiceChangeListener>();

            foreach (String serviceKey in serviceKeys)
            {
                DefaultServiceChangeListener listener = new DefaultServiceChangeListener();
                DiscoveryConfig discoveryConfig       = new DiscoveryConfig()
                {
                    ServiceId = serviceKey
                };
                serviceChangeListeners.Add(serviceKey, listener);
                serviceRepository.RegisterServiceChangeListener(discoveryConfig, listener);
                serviceRepository._serviceDiscovery.Reload(discoveryConfig);
                Threads.Sleep(100);
                Assert.IsTrue(listener.ServiceChangeEvents.Count >= 1);
                foreach (ServiceChangeEvent e in listener.ServiceChangeEvents)
                {
                    Assert.AreEqual(InstanceChange.CHANGE_TYPE.RELOAD, e.ChangeType);
                    Assert.AreEqual(serviceKey, e.ChangedService.ServiceId);
                }
            }
        }
Пример #2
0
        public void testAddListener()
        {
            ServiceContext        ctx       = new ServiceContext(discoveryConfig);
            ServiceChangeListener listener1 = new DefaultServiceChangeListener();

            ctx.AddListener(listener1);
            Assert.AreEqual(1, ctx.GetListeners().Count);
            Assert.IsTrue(ctx.GetListeners().Contains(listener1));
            ServiceChangeListener listener2 = new DefaultServiceChangeListener();

            ctx.AddListener(listener2);
            Assert.AreEqual(2, ctx.GetListeners().Count);
            Assert.IsTrue(ctx.GetListeners().Contains(listener2));
        }
        public void TestUpdate_Service()
        {
            for (int i = 0; i < 5; i++)
            {
                DiscoveryConfig discoveryConfig       = Constants.NewDiscoveryConfig();
                string          serviceId             = discoveryConfig.ServiceId;
                DefaultServiceChangeListener listener = new DefaultServiceChangeListener();
                _serviceRepository.RegisterServiceChangeListener(discoveryConfig, listener);
                Assert.IsTrue(_serviceRepository.ContainsService(serviceId));

                Service service1 = new Service()
                {
                    ServiceId = serviceId,
                    Instances = new List <Instance>()
                    {
                        Constants.NewInstance(serviceId)
                    }
                };

                Service service2 = new Service()
                {
                    ServiceId = serviceId,
                    Instances = new List <Instance>()
                    {
                        Constants.NewInstance(serviceId), Constants.NewInstance(serviceId)
                    }
                };


                _serviceRepository.Update(service1);
                _serviceRepository.Update(service2);
                _serviceRepository.Update(new Service()
                {
                    ServiceId = serviceId + "1"
                });

                Threads.Sleep(100);
                Assert.AreEqual(2, listener.ServiceChangeEvents.Count);
                foreach (ServiceChangeEvent e in listener.ServiceChangeEvents)
                {
                    Assert.AreEqual(InstanceChange.CHANGE_TYPE.RELOAD, e.ChangeType);
                }
            }
        }