Merge "BUG 718: changed codec for URI parsing"
[controller.git] / opendaylight / config / yang-jmx-generator-plugin / src / test / java / org / opendaylight / controller / config / yangjmxgenerator / plugin / RuntimeRegistratorFtlFileTest.java
1 /*
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.controller.config.yangjmxgenerator.plugin;
9
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;
15
16 import java.util.Arrays;
17 import java.util.Collections;
18 import java.util.Map;
19
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;
27
28 public class RuntimeRegistratorFtlFileTest extends RuntimeRegistratorTest {
29     private final FtlFilePersister ftlFilePersister = new FtlFilePersister();
30
31     @Test
32     public void testRootWithoutAnything() {
33         RuntimeBeanEntry rootRB = prepareRootRB(Collections
34                 .<RuntimeBeanEntry> emptyList());
35         Map<String, FtlTemplate> createdFtls = RuntimeRegistratorFtlTemplate
36                 .create(rootRB);
37         assertThat(createdFtls.size(), is(2));
38         String rootRegistratorName = RuntimeRegistratorFtlTemplate
39                 .getJavaNameOfRuntimeRegistration(rootRB.getJavaNamePrefix());
40         FtlTemplate rootFtlFile = createdFtls.get(rootRegistratorName);
41         assertNotNull(rootFtlFile);
42
43         Map<FtlTemplate, String> serializedFtls = ftlFilePersister
44                 .serializeFtls(createdFtls.values());
45         assertThat(serializedFtls.size(), is(2));
46     }
47
48     @Test
49     public void testHierarchy2() {
50         RuntimeBeanEntry grandChildRB = prepareChildRB(
51                 Collections.<RuntimeBeanEntry> emptyList(), "grand");
52         RuntimeBeanEntry childRB = prepareChildRB(Arrays.asList(grandChildRB),
53                 "");
54         RuntimeBeanEntry rootRB = prepareRootRB(Arrays.asList(childRB));
55
56         Map<String, FtlTemplate> createdFtls = RuntimeRegistratorFtlTemplate
57                 .create(rootRB);
58         Map<FtlTemplate, String> serializedFtls = ftlFilePersister
59                 .serializeFtls(createdFtls.values());
60         assertThat(serializedFtls.size(), is(4));
61
62         assertThat(
63                 findRegistrationOutput(createdFtls, grandChildRB,
64                         serializedFtls), not(containsString(" register(")));
65
66         FtlTemplate registrator = createdFtls.get(RuntimeRegistratorFtlTemplate
67                 .getJavaNameOfRuntimeRegistrator(rootRB));
68         FormattingUtil.cleanUpEmptyLinesAndIndent(serializedFtls
69                 .get(registrator));
70
71     }
72
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);
81     }
82
83 }