package org.distributeme.registry.esregistry; import net.anotheria.util.IdCodeGenerator; import org.distributeme.core.ServiceDescriptor; import org.distributeme.core.ServiceDescriptor.Protocol; import org.junit.Test; import java.util.List; import static org.junit.Assert.assertEquals; public class EventServiceRegistryTest { @Test public void testFunctionality(){ ServiceDescriptor s1 = createDummyDescriptor(); ServiceDescriptor s2 = createDummyDescriptor(); ServiceDescriptor s3 = createDummyDescriptor(); ServiceDescriptor c1 = createDummyDescriptor(); ServiceDescriptor c2 = createDummyDescriptor(); //ServiceDescriptor c3 = createDummyDescriptor(); EventServiceRegistry registry = new EventServiceRegistryImpl(); assertEquals(0, registry.getChannelNames().size()); assertEquals(0, registry.getChannels().size()); //creating a dummy channel... assertEquals(0, registry.addSupplier("FOO", s1).size()); List<ServiceDescriptor> suppliers = registry.addConsumer("FOO", c1); assertEquals(1, suppliers.size()); assertEquals(s1, suppliers.get(0)); assertEquals(1, registry.addSupplier("FOO", s2).size()); assertEquals(2, registry.addConsumer("FOO", c2).size()); List<ServiceDescriptor> consumers = registry.addSupplier("FOO", s3); assertEquals(2, consumers.size()); consumers.remove(c1); consumers.remove(c2); assertEquals(0, consumers.size()); } @Test public void testMassRemove(){ ServiceDescriptor s1 = createDummyDescriptor(); EventServiceRegistry registry = new EventServiceRegistryImpl(); registry.addSupplier("A", s1); registry.addSupplier("B", s1); registry.addSupplier("C", s1); assertEquals(1, registry.getChannel("A").getSuppliers().size()); assertEquals(1, registry.getChannel("B").getSuppliers().size()); assertEquals(1, registry.getChannel("C").getSuppliers().size()); registry.notifySupplierUnavailable(s1); assertEquals(0, registry.getChannel("A").getSuppliers().size()); assertEquals(0, registry.getChannel("B").getSuppliers().size()); assertEquals(0, registry.getChannel("C").getSuppliers().size()); ////// same for consumers ServiceDescriptor c1 = createDummyDescriptor(); registry.addConsumer("A", c1); registry.addConsumer("B", c1); registry.addConsumer("C", c1); assertEquals(1, registry.getChannel("A").getConsumers().size()); assertEquals(1, registry.getChannel("B").getConsumers().size()); assertEquals(1, registry.getChannel("C").getConsumers().size()); registry.notifyConsumerUnavailable(c1); assertEquals(0, registry.getChannel("A").getConsumers().size()); assertEquals(0, registry.getChannel("B").getConsumers().size()); assertEquals(0, registry.getChannel("C").getConsumers().size()); } private ServiceDescriptor createDummyDescriptor(){ return new ServiceDescriptor(Protocol.RMI, EventServiceRegistryTest.class.getName(), IdCodeGenerator.generateCode(5), "localhost", 9250); } }