X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fconfig%2Fyang-jmx-generator-plugin%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fyangjmxgenerator%2Fplugin%2FRuntimeRegistratorFtlFileTest.java;fp=opendaylight%2Fconfig%2Fyang-jmx-generator-plugin%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fyangjmxgenerator%2Fplugin%2FRuntimeRegistratorFtlFileTest.java;h=b12ee5023f237f8243468e6f4d0f665ba8380a63;hb=9fb64948564e252018f9b1e13e7cea2c92f991aa;hp=0000000000000000000000000000000000000000;hpb=1742b3894614be478c333a1043ced8ef1bc5dc84;p=controller.git diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/RuntimeRegistratorFtlFileTest.java b/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/RuntimeRegistratorFtlFileTest.java new file mode 100644 index 0000000000..b12ee5023f --- /dev/null +++ b/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/RuntimeRegistratorFtlFileTest.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2013 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.yangjmxgenerator.plugin; + +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.CoreMatchers.not; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertThat; +import static org.junit.internal.matchers.StringContains.containsString; + +import java.util.Arrays; +import java.util.Collections; +import java.util.Map; + +import org.junit.Test; +import org.opendaylight.controller.config.yangjmxgenerator.RuntimeBeanEntry; +import org.opendaylight.controller.config.yangjmxgenerator.RuntimeRegistratorTest; +import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.FtlFilePersister; +import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.FtlTemplate; +import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.RuntimeRegistratorFtlTemplate; +import org.opendaylight.controller.config.yangjmxgenerator.plugin.util.FormattingUtil; + +public class RuntimeRegistratorFtlFileTest extends RuntimeRegistratorTest { + private final FtlFilePersister ftlFilePersister = new FtlFilePersister(); + + @Test + public void testRootWithoutAnything() { + RuntimeBeanEntry rootRB = prepareRootRB(Collections + . emptyList()); + Map createdFtls = RuntimeRegistratorFtlTemplate + .create(rootRB); + assertThat(createdFtls.size(), is(2)); + String rootRegistratorName = RuntimeRegistratorFtlTemplate + .getJavaNameOfRuntimeRegistration(rootRB.getJavaNamePrefix()); + FtlTemplate rootFtlFile = createdFtls.get(rootRegistratorName); + assertNotNull(rootFtlFile); + + Map serializedFtls = ftlFilePersister + .serializeFtls(createdFtls.values()); + assertThat(serializedFtls.size(), is(2)); + } + + @Test + public void testHierarchy2() { + RuntimeBeanEntry grandChildRB = prepareChildRB( + Collections. emptyList(), "grand"); + RuntimeBeanEntry childRB = prepareChildRB(Arrays.asList(grandChildRB), + ""); + RuntimeBeanEntry rootRB = prepareRootRB(Arrays.asList(childRB)); + + Map createdFtls = RuntimeRegistratorFtlTemplate + .create(rootRB); + Map serializedFtls = ftlFilePersister + .serializeFtls(createdFtls.values()); + assertThat(serializedFtls.size(), is(4)); + + assertThat( + findRegistrationOutput(createdFtls, grandChildRB, + serializedFtls), not(containsString(" register("))); + + FtlTemplate registrator = createdFtls.get(RuntimeRegistratorFtlTemplate + .getJavaNameOfRuntimeRegistrator(rootRB)); + FormattingUtil.cleanUpEmptyLinesAndIndent(serializedFtls + .get(registrator)); + + } + + private String findRegistrationOutput(Map createdFtls, + RuntimeBeanEntry rb, Map serializedFtls) { + RuntimeRegistratorFtlTemplate rbFtlFile = (RuntimeRegistratorFtlTemplate) createdFtls + .get(RuntimeRegistratorFtlTemplate.getJavaNameOfRuntimeRegistration(rb.getJavaNamePrefix())); + assertNotNull(rbFtlFile); + String unformatted = serializedFtls.get(rbFtlFile); + assertNotNull(unformatted); + return FormattingUtil.cleanUpEmptyLinesAndIndent(unformatted); + } + +}