From: Tomas Olvecky Date: Wed, 18 Dec 2013 17:52:16 +0000 (+0100) Subject: Add test for generated code checking list of dependencies. X-Git-Tag: jenkins-controller-bulk-release-prepare-only-2-1~114^2 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=5060d388c8cb37b1b329dca1ae9e56c0b1c1b156 Add test for generated code checking list of dependencies. Also deprecate method in ConfigTransactionClient and add method with preferred nomenclature. Add intellij idea's output folder to .gitignore. Change-Id: I47b067043a9e74c822359a44fd769419dc321724 Signed-off-by: Tomas Olvecky --- diff --git a/.gitignore b/.gitignore index 18817e7c35..b079cba0a1 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,4 @@ opendaylight/northbound/integrationtest/logs/* .idea xtend-gen classes +out/ diff --git a/opendaylight/config/config-util/src/main/java/org/opendaylight/controller/config/util/ConfigTransactionClient.java b/opendaylight/config/config-util/src/main/java/org/opendaylight/controller/config/util/ConfigTransactionClient.java index 75b180921a..4f02db5a38 100644 --- a/opendaylight/config/config-util/src/main/java/org/opendaylight/controller/config/util/ConfigTransactionClient.java +++ b/opendaylight/config/config-util/src/main/java/org/opendaylight/controller/config/util/ConfigTransactionClient.java @@ -32,8 +32,13 @@ public interface ConfigTransactionClient extends void validateBean(ObjectName configBeanON) throws ValidationException; - void destroyConfigBean(String moduleName, String instanceName) - throws InstanceNotFoundException; + @Deprecated + /** + * Use {@link #destroyModule(String, String)} + */ + void destroyConfigBean(String moduleName, String instanceName) throws InstanceNotFoundException; + + void destroyModule(String moduleName, String instanceName) throws InstanceNotFoundException; void setAttribute(ObjectName on, String jmxName, Attribute attribute); } diff --git a/opendaylight/config/config-util/src/main/java/org/opendaylight/controller/config/util/ConfigTransactionJMXClient.java b/opendaylight/config/config-util/src/main/java/org/opendaylight/controller/config/util/ConfigTransactionJMXClient.java index e683d915ba..3583dafd0d 100644 --- a/opendaylight/config/config-util/src/main/java/org/opendaylight/controller/config/util/ConfigTransactionJMXClient.java +++ b/opendaylight/config/config-util/src/main/java/org/opendaylight/controller/config/util/ConfigTransactionJMXClient.java @@ -84,12 +84,23 @@ public class ConfigTransactionJMXClient implements ConfigTransactionClient { } @Override + @Deprecated + /** + * {@inheritDoc} + */ public void destroyConfigBean(String moduleName, String instanceName) throws InstanceNotFoundException { destroyModule(ObjectNameUtil.createTransactionModuleON( getTransactionName(), moduleName, instanceName)); } + @Override + public void destroyModule(String moduleName, String instanceName) + throws InstanceNotFoundException { + destroyModule(ObjectNameUtil.createTransactionModuleON( + getTransactionName(), moduleName, instanceName)); + } + @Override public void abortConfig() { configTransactionControllerMXBeanProxy.abortConfig(); diff --git a/opendaylight/config/yang-test/src/test/org/opendaylight/controller/config/yang/test/impl/NetconfTestImplModuleTest.java b/opendaylight/config/yang-test/src/test/java/org/opendaylight/controller/config/yang/test/impl/NetconfTestImplModuleTest.java similarity index 64% rename from opendaylight/config/yang-test/src/test/org/opendaylight/controller/config/yang/test/impl/NetconfTestImplModuleTest.java rename to opendaylight/config/yang-test/src/test/java/org/opendaylight/controller/config/yang/test/impl/NetconfTestImplModuleTest.java index 50e1d4bb6a..41ceab0e55 100644 --- a/opendaylight/config/yang-test/src/test/org/opendaylight/controller/config/yang/test/impl/NetconfTestImplModuleTest.java +++ b/opendaylight/config/yang-test/src/test/java/org/opendaylight/controller/config/yang/test/impl/NetconfTestImplModuleTest.java @@ -4,8 +4,6 @@ import com.google.common.collect.Lists; import junit.framework.Assert; import org.junit.Before; import org.junit.Test; -import org.opendaylight.controller.config.api.ConflictingVersionException; -import org.opendaylight.controller.config.api.ValidationException; import org.opendaylight.controller.config.api.jmx.CommitStatus; import org.opendaylight.controller.config.api.jmx.ObjectNameUtil; import org.opendaylight.controller.config.manager.impl.AbstractConfigTest; @@ -15,8 +13,14 @@ import org.opendaylight.controller.config.util.ConfigTransactionJMXClient; import javax.management.InstanceAlreadyExistsException; import javax.management.ObjectName; import java.util.ArrayList; +import java.util.Collections; import java.util.List; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + public class NetconfTestImplModuleTest extends AbstractConfigTest { public static final String TESTING_DEP_PREFIX = "testing-dep"; @@ -32,17 +36,16 @@ public class NetconfTestImplModuleTest extends AbstractConfigTest { } @Test - public void testDependencyList() throws InstanceAlreadyExistsException, ValidationException, - ConflictingVersionException { + public void testDependencyList() throws Exception { ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction(); ObjectName on = createInstance(transaction, instanceName, 4); transaction.validateConfig(); - CommitStatus status = transaction.commit(); + CommitStatus status1 = transaction.commit(); assertBeanCount(1, factory.getImplementationName()); assertBeanCount(4 + 1, DepTestImplModuleFactory.NAME); - assertStatus(status, 1 + 4 + 1, 0, 0); + assertStatus(status1, 1 + 4 + 1, 0, 0); transaction = configRegistryClient.createTransaction(); @@ -56,6 +59,38 @@ public class NetconfTestImplModuleTest extends AbstractConfigTest { assertTestingDeps(testingDeps, 4); transaction.abortConfig(); + + // check that reuse logic works - equals on list of dependencies. + transaction = configRegistryClient.createTransaction(); + CommitStatus status2 = transaction.commit(); + assertStatus(status2, 0, 0, 6); + + // replace single dependency + transaction = configRegistryClient.createTransaction(); + String instanceName1 = TESTING_DEP_PREFIX + 1; + transaction.destroyModule(DepTestImplModuleFactory.NAME, instanceName1); + transaction.createModule(DepTestImplModuleFactory.NAME, instanceName1); + CommitStatus status3 = transaction.commit(); + assertStatus(status3, 1, 1, 4); + + } + + @Test + public void testNullCheckInListOfDependencies() throws Exception { + ConfigTransactionJMXClient transaction = configRegistryClient.createTransaction(); + + ObjectName on = createInstance(transaction, instanceName, 4); + NetconfTestImplModuleMXBean proxy = transaction.newMXBeanProxy(on, NetconfTestImplModuleMXBean.class); + try{ + proxy.setTestingDeps(null); + fail(); + }catch(RuntimeException e) { + Throwable cause = e.getCause(); + assertNotNull(cause); + assertTrue("Invalid type " + cause, cause instanceof IllegalArgumentException); + assertEquals("Null not supported", cause.getMessage()); + } + proxy.setTestingDeps(Collections.emptyList()); } private void assertTestingDeps(List testingDeps, int i) {