Test coverage: yang.bmp.spi
[bgpcep.git] / bgp / bmp-spi / src / test / java / org / opendaylight / controller / config / yang / bmp / spi / SimpleBmpExtensionProviderContextModuleTest.java
diff --git a/bgp/bmp-spi/src/test/java/org/opendaylight/controller/config/yang/bmp/spi/SimpleBmpExtensionProviderContextModuleTest.java b/bgp/bmp-spi/src/test/java/org/opendaylight/controller/config/yang/bmp/spi/SimpleBmpExtensionProviderContextModuleTest.java
new file mode 100644 (file)
index 0000000..a1804f8
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2015 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.bmp.spi;
+
+import java.util.List;
+import javax.management.ObjectName;
+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 SimpleBmpExtensionProviderContextModuleTest extends AbstractConfigTest {
+    private static final String FACTORY_NAME = SimpleBmpExtensionProviderContextModuleFactory.NAME;
+    private static final String INSTANCE_NAME = "bgp-bmp-extensions-impl";
+
+    @Before
+    public void setUp() throws Exception {
+        super.initConfigTransactionManagerImpl(new HardcodedModuleFactoriesResolver(this.mockedContext, new SimpleBmpExtensionProviderContextModuleFactory()));
+    }
+
+    @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();
+    }
+
+    public static ObjectName createSimpleBmpExtensionProviderContextModuleInstance(final ConfigTransactionJMXClient transaction,
+            final List<ObjectName> extensions) throws Exception {
+        final ObjectName objectName = transaction.createModule(FACTORY_NAME, INSTANCE_NAME);
+        final SimpleBmpExtensionProviderContextModuleMXBean mxBean = transaction.newMXBeanProxy(objectName, SimpleBmpExtensionProviderContextModuleMXBean.class);
+        mxBean.setExtension(extensions);
+        return objectName;
+    }
+}