2 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.controller.config.yangjmxgenerator.plugin;
10 import static org.hamcrest.CoreMatchers.is;
11 import static org.hamcrest.CoreMatchers.not;
12 import static org.junit.Assert.assertNotNull;
13 import static org.junit.Assert.assertThat;
14 import static org.junit.internal.matchers.StringContains.containsString;
16 import java.util.Arrays;
17 import java.util.Collections;
20 import org.junit.Test;
21 import org.opendaylight.controller.config.yangjmxgenerator.RuntimeBeanEntry;
22 import org.opendaylight.controller.config.yangjmxgenerator.RuntimeRegistratorTest;
23 import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.FtlFilePersister;
24 import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.FtlTemplate;
25 import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.RuntimeRegistratorFtlTemplate;
26 import org.opendaylight.controller.config.yangjmxgenerator.plugin.util.FormattingUtil;
28 public class RuntimeRegistratorFtlFileTest extends RuntimeRegistratorTest {
29 private final FtlFilePersister ftlFilePersister = new FtlFilePersister();
32 public void testRootWithoutAnything() {
33 RuntimeBeanEntry rootRB = prepareRootRB(Collections
34 .<RuntimeBeanEntry> emptyList());
35 Map<String, FtlTemplate> createdFtls = RuntimeRegistratorFtlTemplate
37 assertThat(createdFtls.size(), is(2));
38 String rootRegistratorName = RuntimeRegistratorFtlTemplate
39 .getJavaNameOfRuntimeRegistration(rootRB.getJavaNamePrefix());
40 FtlTemplate rootFtlFile = createdFtls.get(rootRegistratorName);
41 assertNotNull(rootFtlFile);
43 Map<FtlTemplate, String> serializedFtls = ftlFilePersister
44 .serializeFtls(createdFtls.values());
45 assertThat(serializedFtls.size(), is(2));
49 public void testHierarchy2() {
50 RuntimeBeanEntry grandChildRB = prepareChildRB(
51 Collections.<RuntimeBeanEntry> emptyList(), "grand");
52 RuntimeBeanEntry childRB = prepareChildRB(Arrays.asList(grandChildRB),
54 RuntimeBeanEntry rootRB = prepareRootRB(Arrays.asList(childRB));
56 Map<String, FtlTemplate> createdFtls = RuntimeRegistratorFtlTemplate
58 Map<FtlTemplate, String> serializedFtls = ftlFilePersister
59 .serializeFtls(createdFtls.values());
60 assertThat(serializedFtls.size(), is(4));
63 findRegistrationOutput(createdFtls, grandChildRB,
64 serializedFtls), not(containsString(" register(")));
66 FtlTemplate registrator = createdFtls.get(RuntimeRegistratorFtlTemplate
67 .getJavaNameOfRuntimeRegistrator(rootRB));
68 FormattingUtil.cleanUpEmptyLinesAndIndent(serializedFtls
73 private String findRegistrationOutput(Map<String, FtlTemplate> createdFtls,
74 RuntimeBeanEntry rb, Map<FtlTemplate, String> serializedFtls) {
75 RuntimeRegistratorFtlTemplate rbFtlFile = (RuntimeRegistratorFtlTemplate) createdFtls
76 .get(RuntimeRegistratorFtlTemplate.getJavaNameOfRuntimeRegistration(rb.getJavaNamePrefix()));
77 assertNotNull(rbFtlFile);
78 String unformatted = serializedFtls.get(rbFtlFile);
79 assertNotNull(unformatted);
80 return FormattingUtil.cleanUpEmptyLinesAndIndent(unformatted);