Bug-730: Added missing rib-impl's modules config tests. 57/10357/2
authorMilos Fabian <milfabia@cisco.com>
Wed, 27 Aug 2014 07:57:47 +0000 (09:57 +0200)
committerMilos Fabian <milfabia@cisco.com>
Wed, 27 Aug 2014 10:38:12 +0000 (12:38 +0200)
Change-Id: Ie558ea96aacd3901fa25c53a4ce4a62d940fd668
Signed-off-by: Milos Fabian <milfabia@cisco.com>
bgp/rib-impl/src/test/java/org/opendaylight/controller/config/yang/bgp/rib/impl/AbstractRIBImplModuleTest.java
bgp/rib-impl/src/test/java/org/opendaylight/controller/config/yang/bgp/rib/impl/BGPApplicationPeerModuleTest.java [new file with mode: 0644]
bgp/rib-impl/src/test/java/org/opendaylight/controller/config/yang/bgp/rib/impl/BaseBGPParserModuleTest.java [new file with mode: 0644]
bgp/rib-impl/src/test/java/org/opendaylight/controller/config/yang/bgp/rib/impl/BaseBGPRIBModuleTest.java [new file with mode: 0644]
bgp/rib-impl/src/test/java/org/opendaylight/controller/config/yang/bgp/rib/impl/RIBImplModuleTest.java

index b53bafc640be44cb619858f1280f9714fb4f2284..bb85b5d5b15463a6621066bae6727b7867db9483 100644 (file)
@@ -84,8 +84,8 @@ public abstract class AbstractRIBImplModuleTest extends AbstractConfigTest {
     private static final String FACTORY_NAME = RIBImplModuleFactory.NAME;
     private static final String TRANSACTION_NAME = "testTransaction";
 
-    private static final String RIB_ID = "test";
-    private static final String BGP_ID = "192.168.1.1";
+    protected static final RibId RIB_ID = new RibId("test");
+    protected static final Ipv4Address BGP_ID = new Ipv4Address("192.168.1.1");
 
     private static final String SESSION_RS_INSTANCE_NAME = "session-reconnect-strategy-factory";
     private static final String TCP_RS_INSTANCE_NAME = "tcp-reconnect-strategy-factory";
@@ -236,13 +236,13 @@ public abstract class AbstractRIBImplModuleTest extends AbstractConfigTest {
     }
 
     protected ObjectName createRIBImplModuleInstance(final ConfigTransactionJMXClient transaction) throws Exception {
-        return createRIBImplModuleInstance(transaction, new RibId(RIB_ID), 5000L, new Ipv4Address(BGP_ID),
+        return createRIBImplModuleInstance(transaction, RIB_ID, 5000L, BGP_ID,
                 createAsyncDataBrokerInstance(transaction));
     }
 
     public ObjectName createRIBImplModuleInstance(final ConfigTransactionJMXClient transaction, final ObjectName dataBroker)
             throws Exception {
-        return createRIBImplModuleInstance(transaction, new RibId(RIB_ID), 5000L, new Ipv4Address(BGP_ID), dataBroker);
+        return createRIBImplModuleInstance(transaction, RIB_ID, 5000L, BGP_ID, dataBroker);
     }
 
     public ObjectName createAsyncDataBrokerInstance(final ConfigTransactionJMXClient transaction) throws InstanceAlreadyExistsException, InstanceNotFoundException {
diff --git a/bgp/rib-impl/src/test/java/org/opendaylight/controller/config/yang/bgp/rib/impl/BGPApplicationPeerModuleTest.java b/bgp/rib-impl/src/test/java/org/opendaylight/controller/config/yang/bgp/rib/impl/BGPApplicationPeerModuleTest.java
new file mode 100644 (file)
index 0000000..d133dba
--- /dev/null
@@ -0,0 +1,86 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.opendaylight.controller.config.yang.bgp.rib.impl;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.List;
+import javax.management.InstanceNotFoundException;
+import javax.management.ObjectName;
+import org.junit.Test;
+import org.opendaylight.controller.config.api.jmx.CommitStatus;
+import org.opendaylight.controller.config.spi.ModuleFactory;
+import org.opendaylight.controller.config.util.ConfigTransactionJMXClient;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.ApplicationRibId;
+
+public class BGPApplicationPeerModuleTest extends AbstractRIBImplModuleTest {
+
+    private static final String INSTANCE_NAME = "application-peer-instance";
+    private static final String FACTORY_NAME = BGPApplicationPeerModuleFactory.NAME;
+    private static final ApplicationRibId APP_RIB_ID = new ApplicationRibId("application-peer-test");
+    private static final ApplicationRibId NEW_APP_RIB_ID = new ApplicationRibId("new-application-peer-name");
+
+    @Override
+    protected List<ModuleFactory> getModuleFactories() {
+        final List<ModuleFactory> moduleFactories = super.getModuleFactories();
+        moduleFactories.add(new BGPApplicationPeerModuleFactory());
+        return moduleFactories;
+    }
+
+    @Test
+    public void testCreateInstance() throws Exception {
+        final CommitStatus status = createApplicationPeerInsatnce();
+        assertBeanCount(1, FACTORY_NAME);
+        assertStatus(status, 15, 0, 0);
+    }
+
+    @Test
+    public void testReusingOldInstance() throws Exception {
+        createApplicationPeerInsatnce();
+        final ConfigTransactionJMXClient transaction = this.configRegistryClient.createTransaction();
+        assertBeanCount(1, FACTORY_NAME);
+        final CommitStatus status = transaction.commit();
+        assertBeanCount(1, FACTORY_NAME);
+        assertStatus(status, 0, 0, 15);
+    }
+
+    @Test
+    public void testReconfigure() throws Exception {
+        createApplicationPeerInsatnce();
+        final ConfigTransactionJMXClient transaction = this.configRegistryClient.createTransaction();
+        assertBeanCount(1, FACTORY_NAME);
+        final BGPApplicationPeerModuleMXBean mxBean = transaction.newMXBeanProxy(transaction.lookupConfigBean(FACTORY_NAME, INSTANCE_NAME),
+                BGPApplicationPeerModuleMXBean.class);
+        mxBean.setApplicationRibId(new ApplicationRibId(NEW_APP_RIB_ID));
+        final CommitStatus status = transaction.commit();
+        assertBeanCount(1, FACTORY_NAME);
+        assertStatus(status, 0, 1, 14);
+        assertEquals(NEW_APP_RIB_ID, getApplicationRibId());
+    }
+
+    private CommitStatus createApplicationPeerInsatnce() throws Exception {
+        final ConfigTransactionJMXClient transaction = this.configRegistryClient.createTransaction();
+        final ObjectName objName = transaction.createModule(BGPApplicationPeerModuleFactory.NAME, INSTANCE_NAME);
+        final BGPApplicationPeerModuleMXBean mxBean = transaction.newMXBeanProxy(objName, BGPApplicationPeerModuleMXBean.class);
+        final ObjectName dataBrokerON = createAsyncDataBrokerInstance(transaction);
+        mxBean.setDataBroker(dataBrokerON);
+        mxBean.setBgpId(BGP_ID);
+        mxBean.setApplicationRibId(APP_RIB_ID);
+        mxBean.setTargetRib(createRIBImplModuleInstance(transaction, dataBrokerON));
+        return transaction.commit();
+    }
+
+    private ApplicationRibId getApplicationRibId() throws InstanceNotFoundException {
+        final ConfigTransactionJMXClient transaction = this.configRegistryClient.createTransaction();
+        final BGPApplicationPeerModuleMXBean mxBean = transaction.newMXBeanProxy(transaction.lookupConfigBean(FACTORY_NAME, INSTANCE_NAME),
+                BGPApplicationPeerModuleMXBean.class);
+        return mxBean.getApplicationRibId();
+    }
+
+}
diff --git a/bgp/rib-impl/src/test/java/org/opendaylight/controller/config/yang/bgp/rib/impl/BaseBGPParserModuleTest.java b/bgp/rib-impl/src/test/java/org/opendaylight/controller/config/yang/bgp/rib/impl/BaseBGPParserModuleTest.java
new file mode 100644 (file)
index 0000000..27fca17
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.opendaylight.controller.config.yang.bgp.rib.impl;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.opendaylight.controller.config.api.jmx.CommitStatus;
+import org.opendaylight.controller.config.manager.impl.AbstractConfigTest;
+import org.opendaylight.controller.config.manager.impl.factoriesresolver.HardcodedModuleFactoriesResolver;
+import org.opendaylight.controller.config.util.ConfigTransactionJMXClient;
+
+public class BaseBGPParserModuleTest extends AbstractConfigTest {
+
+    private static final String INSTANCE_NAME = "bgp-parser-instance";
+    private static final String FACTORY_NAME = BaseBGPParserModuleFactory.NAME;
+
+    @Before
+    public void setUp() throws Exception {
+        super.initConfigTransactionManagerImpl(new HardcodedModuleFactoriesResolver(this.mockedContext, new BaseBGPParserModuleFactory()));
+    }
+
+    @Test
+    public void testCreateBean() throws Exception {
+        final CommitStatus status = createInstance();
+        assertBeanCount(1, FACTORY_NAME);
+        assertStatus(status, 1, 0, 0);
+    }
+
+    @Test
+    public void testReusingOldInstance() throws Exception {
+        createInstance();
+        final ConfigTransactionJMXClient transaction = this.configRegistryClient.createTransaction();
+        assertBeanCount(1, FACTORY_NAME);
+        final CommitStatus status = transaction.commit();
+        assertBeanCount(1, FACTORY_NAME);
+        assertStatus(status, 0, 0, 1);
+    }
+
+    private CommitStatus createInstance() throws Exception {
+        final ConfigTransactionJMXClient transaction = this.configRegistryClient.createTransaction();
+        transaction.createModule(FACTORY_NAME, INSTANCE_NAME);
+        return transaction.commit();
+    }
+}
diff --git a/bgp/rib-impl/src/test/java/org/opendaylight/controller/config/yang/bgp/rib/impl/BaseBGPRIBModuleTest.java b/bgp/rib-impl/src/test/java/org/opendaylight/controller/config/yang/bgp/rib/impl/BaseBGPRIBModuleTest.java
new file mode 100644 (file)
index 0000000..4e1155f
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.opendaylight.controller.config.yang.bgp.rib.impl;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.opendaylight.controller.config.api.jmx.CommitStatus;
+import org.opendaylight.controller.config.manager.impl.AbstractConfigTest;
+import org.opendaylight.controller.config.manager.impl.factoriesresolver.HardcodedModuleFactoriesResolver;
+import org.opendaylight.controller.config.util.ConfigTransactionJMXClient;
+
+public class BaseBGPRIBModuleTest extends AbstractConfigTest {
+
+    private static final String INSTANCE_NAME = "bgp-rib-instance";
+    private static final String FACTORY_NAME = BaseBGPRIBModuleFactory.NAME;
+
+    @Before
+    public void setUp() throws Exception {
+        super.initConfigTransactionManagerImpl(new HardcodedModuleFactoriesResolver(this.mockedContext, new BaseBGPRIBModuleFactory()));
+    }
+
+    @Test
+    public void testCreateBean() throws Exception {
+        final CommitStatus status = createInstance();
+        assertBeanCount(1, FACTORY_NAME);
+        assertStatus(status, 1, 0, 0);
+    }
+
+    @Test
+    public void testReusingOldInstance() throws Exception {
+        createInstance();
+        final ConfigTransactionJMXClient transaction = this.configRegistryClient.createTransaction();
+        assertBeanCount(1, FACTORY_NAME);
+        final CommitStatus status = transaction.commit();
+        assertBeanCount(1, FACTORY_NAME);
+        assertStatus(status, 0, 0, 1);
+    }
+
+    private CommitStatus createInstance() throws Exception {
+        final ConfigTransactionJMXClient transaction = this.configRegistryClient.createTransaction();
+        transaction.createModule(FACTORY_NAME, INSTANCE_NAME);
+        return transaction.commit();
+    }
+}
index c84625bb1e421e7537c2d5e0c2e3c7164fb4df16..fe7764733f117cba2b64b1d1f0de41789a10e0d5 100644 (file)
@@ -14,20 +14,15 @@ import org.junit.Test;
 import org.opendaylight.controller.config.api.ValidationException;
 import org.opendaylight.controller.config.api.jmx.CommitStatus;
 import org.opendaylight.controller.config.util.ConfigTransactionJMXClient;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.RibId;
 
 public class RIBImplModuleTest extends AbstractRIBImplModuleTest {
     private static final String INSTANCE_NAME = "rib-impl";
     private static final String FACTORY_NAME = RIBImplModuleFactory.NAME;
 
-    private static final String RIB_ID = "test";
-    private static final String BGP_ID = "192.168.1.1";
-
     @Test
     public void testValidationExceptionRibIdNotSet() throws Exception {
         try {
-            createRIBImplModuleInstance(null, 500L, new Ipv4Address(BGP_ID));
+            createRIBImplModuleInstance(null, 500L, BGP_ID);
             fail();
         } catch (final ValidationException e) {
             assertTrue(e.getMessage().contains("RibId is not set."));
@@ -37,7 +32,7 @@ public class RIBImplModuleTest extends AbstractRIBImplModuleTest {
     @Test
     public void testValidationExceptionLocalAsNotSet() throws Exception {
         try {
-            createRIBImplModuleInstance(new RibId(RIB_ID), null, new Ipv4Address(BGP_ID));
+            createRIBImplModuleInstance(RIB_ID, null, BGP_ID);
             fail();
         } catch (final ValidationException e) {
             assertTrue(e.getMessage().contains("LocalAs is not set."));
@@ -47,7 +42,7 @@ public class RIBImplModuleTest extends AbstractRIBImplModuleTest {
     @Test
     public void testValidationExceptionBgpIdNotSet() throws Exception {
         try {
-            createRIBImplModuleInstance(new RibId(RIB_ID), 500L, null);
+            createRIBImplModuleInstance(RIB_ID, 500L, null);
             fail();
         } catch (final ValidationException e) {
             assertTrue(e.getMessage().contains("BgpId is not set."));