1 package org.opendaylight.controller.config.threadpool.eventbus;
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertThat;
5 import static org.junit.Assert.fail;
6 import static org.junit.matchers.JUnitMatchers.containsString;
8 import javax.management.InstanceAlreadyExistsException;
9 import javax.management.ObjectName;
11 import org.junit.Before;
12 import org.junit.Test;
13 import org.opendaylight.controller.config.api.ConflictingVersionException;
14 import org.opendaylight.controller.config.api.ValidationException;
15 import org.opendaylight.controller.config.api.jmx.CommitStatus;
16 import org.opendaylight.controller.config.manager.impl.AbstractConfigTest;
17 import org.opendaylight.controller.config.manager.impl.factoriesresolver.HardcodedModuleFactoriesResolver;
18 import org.opendaylight.controller.config.util.ConfigTransactionJMXClient;
19 import org.opendaylight.controller.config.yang.threadpool.impl.EventBusModuleFactory;
21 public class SyncEventBusConfigBeanTest extends AbstractConfigTest {
23 private EventBusModuleFactory factory;
24 private final String instanceName = "sync1";
29 factory = new EventBusModuleFactory();
30 super.initConfigTransactionManagerImpl(new HardcodedModuleFactoriesResolver(factory));
34 public void testCreateBean() throws InstanceAlreadyExistsException, ValidationException,
35 ConflictingVersionException {
36 ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();
38 createSynced(transaction, instanceName);
39 transaction.validateConfig();
40 CommitStatus status = transaction.commit();
42 assertEquals(1, configRegistry.lookupConfigBeans(factory.getImplementationName()).size());
43 assertEquals(1, status.getNewInstances().size());
44 assertEquals(0, status.getRecreatedInstances().size());
45 assertEquals(0, status.getReusedInstances().size());
46 // TODO test dead event collector
50 public void testReusingOldInstance() throws InstanceAlreadyExistsException, ConflictingVersionException,
53 ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();
54 createSynced(transaction, instanceName);
58 assertEquals(1, configRegistry.lookupConfigBeans(factory.getImplementationName()).size());
60 transaction = configRegistryClient.createTransaction();
61 CommitStatus status = transaction.commit();
63 assertEquals(1, configRegistry.lookupConfigBeans(factory.getImplementationName()).size());
64 assertEquals(0, status.getNewInstances().size());
65 assertEquals(0, status.getRecreatedInstances().size());
66 assertEquals(1, status.getReusedInstances().size());
71 public void testInstanceAlreadyExistsException() throws ConflictingVersionException, ValidationException {
72 ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction();
75 createSynced(transaction, instanceName);
77 } catch (InstanceAlreadyExistsException e1) {
81 transaction = configRegistryClient.createTransaction();
83 createSynced(transaction, instanceName);
85 } catch (InstanceAlreadyExistsException e) {
88 containsString("There is an instance registered with name ModuleIdentifier{factoryName='eventbus', instanceName='sync1'}"));
92 private ObjectName createSynced(ConfigTransactionJMXClient transaction, String instanceName)
93 throws InstanceAlreadyExistsException {
94 ObjectName nameCreated = transaction.createModule(factory.getImplementationName(), instanceName);