Remove reliance on BGPMessageFactory
[bgpcep.git] / bgp / rib-impl-config / src / test / java / org / opendaylight / controller / config / yang / bgp / rib / impl / BGPDispatcherImplModuleTest.java
1 package org.opendaylight.controller.config.yang.bgp.rib.impl;
2
3 import javax.management.InstanceAlreadyExistsException;
4 import javax.management.ObjectName;
5
6 import org.junit.Before;
7 import org.junit.Ignore;
8 import org.junit.Test;
9 import org.opendaylight.controller.config.api.ConflictingVersionException;
10 import org.opendaylight.controller.config.api.ValidationException;
11 import org.opendaylight.controller.config.api.jmx.CommitStatus;
12 import org.opendaylight.controller.config.manager.impl.AbstractConfigTest;
13 import org.opendaylight.controller.config.manager.impl.factoriesresolver.HardcodedModuleFactoriesResolver;
14 import org.opendaylight.controller.config.util.ConfigTransactionJMXClient;
15 import org.opendaylight.controller.config.yang.netty.threadgroup.NettyThreadgroupModuleFactory;
16 import org.opendaylight.controller.config.yang.netty.threadgroup.NettyThreadgroupModuleMXBean;
17
18 @Ignore
19 public class BGPDispatcherImplModuleTest extends AbstractConfigTest {
20
21         private final String instanceName = "bgp-message-fct";
22
23         private BGPDispatcherImplModuleFactory factory;
24
25         private NettyThreadgroupModuleFactory threadgroupFactory;
26
27         private RIBExtensionsImplModuleFactory messageFactory;
28
29         @Before
30         public void setUp() throws Exception {
31                 this.factory = new BGPDispatcherImplModuleFactory();
32                 this.threadgroupFactory = new NettyThreadgroupModuleFactory();
33                 this.messageFactory = new RIBExtensionsImplModuleFactory();
34                 super.initConfigTransactionManagerImpl(new HardcodedModuleFactoriesResolver(this.factory, threadgroupFactory, messageFactory));
35         }
36
37         @Test
38         public void testCreateBean() throws Exception {
39                 ConfigTransactionJMXClient transaction = configRegistryClient
40                                 .createTransaction();
41                 createInstance(transaction, this.factory.getImplementationName(), instanceName, this.threadgroupFactory.getImplementationName(), this.messageFactory.getImplementationName());
42                 transaction.validateConfig();
43                 CommitStatus status = transaction.commit();
44                 assertBeanCount(1, factory.getImplementationName());
45                 assertStatus(status, 4, 0, 0);
46         }
47
48         @Test
49         public void testReusingOldInstance() throws InstanceAlreadyExistsException,
50         ConflictingVersionException, ValidationException {
51                 ConfigTransactionJMXClient transaction = configRegistryClient
52                                 .createTransaction();
53                 createInstance(transaction, this.factory.getImplementationName(), instanceName, this.threadgroupFactory.getImplementationName(), this.messageFactory.getImplementationName());
54                 transaction.commit();
55                 transaction = configRegistryClient.createTransaction();
56                 assertBeanCount(1, factory.getImplementationName());
57                 CommitStatus status = transaction.commit();
58                 assertBeanCount(1, factory.getImplementationName());
59                 assertStatus(status, 0, 0, 4);
60         }
61
62         public static ObjectName createInstance(final ConfigTransactionJMXClient transaction, final String moduleName,
63                         final String instanceName, final String threadgropuModuleName, final String messageFactoryModuleName) throws InstanceAlreadyExistsException {
64                 ObjectName nameCreated = transaction.createModule(
65                                 moduleName, instanceName);
66                 BGPDispatcherImplModuleMXBean mxBean = transaction.newMBeanProxy(
67                                 nameCreated, BGPDispatcherImplModuleMXBean.class);
68                 mxBean.setBossGroup(createThreadgroupInstance(transaction, threadgropuModuleName, "boss-threadgroup", 10));
69                 mxBean.setWorkerGroup(createThreadgroupInstance(transaction, threadgropuModuleName, "worker-threadgroup", 10));
70                 //mxBean.setMessageFactory(BGPMessageFactoryImplModuleTest.createInstance(transaction, messageFactoryModuleName, "bgp-msg-fct"));
71                 return nameCreated;
72         }
73
74         public static ObjectName createThreadgroupInstance(
75                         final ConfigTransactionJMXClient transaction,
76                         final String moduleName, final String instanceName,
77                         final Integer threadCount) throws InstanceAlreadyExistsException {
78                 ObjectName nameCreated = transaction.createModule(moduleName,
79                                 instanceName);
80                 NettyThreadgroupModuleMXBean mxBean = transaction.newMBeanProxy(
81                                 nameCreated, NettyThreadgroupModuleMXBean.class);
82                 mxBean.setThreadCount(threadCount);
83                 return nameCreated;
84         }
85 }