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