Merge "Choice and case resolving in JSON output"
[controller.git] / opendaylight / netconf / config-persister-impl / src / test / java / org / opendaylight / controller / netconf / persist / impl / CapabilityStrippingConfigSnapshotHolderTest.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.netconf.persist.impl;
9
10 import com.google.common.collect.Sets;
11 import org.apache.commons.io.IOUtils;
12 import org.junit.Test;
13 import org.opendaylight.controller.netconf.persist.impl.osgi.ConfigPersisterActivator;
14 import org.opendaylight.controller.netconf.util.xml.XmlUtil;
15 import org.w3c.dom.Element;
16
17 import java.io.IOException;
18 import java.util.Collections;
19 import java.util.HashSet;
20 import java.util.Set;
21 import java.util.regex.Pattern;
22
23 import static org.junit.Assert.assertEquals;
24
25 public class CapabilityStrippingConfigSnapshotHolderTest {
26
27     @Test
28     public void  testCapabilityStripping() throws Exception {
29         Set<String> allCapabilities = readLines("/capabilities-all.txt");
30         Set<String> expectedCapabilities = readLines("/capabilities-stripped.txt");
31         String snapshotAsString = readToString("/snapshot.xml");
32         Element element = XmlUtil.readXmlToElement(snapshotAsString);
33         {
34             CapabilityStrippingConfigSnapshotHolder tested = new CapabilityStrippingConfigSnapshotHolder(
35                     element, allCapabilities, Pattern.compile(
36                     ConfigPersisterActivator.DEFAULT_IGNORED_REGEX
37             ));
38             assertEquals(expectedCapabilities, tested.getCapabilities());
39             assertEquals(Collections.emptySet(), tested.getMissingNamespaces());
40         }
41         {
42             // test regex
43             CapabilityStrippingConfigSnapshotHolder tested = new CapabilityStrippingConfigSnapshotHolder(
44                     element, allCapabilities, Pattern.compile(
45                     "^bar"
46             ));
47             assertEquals(expectedCapabilities, tested.getCapabilities());
48             assertEquals(Sets.newHashSet(ConfigPersisterActivator.DEFAULT_IGNORED_REGEX.substring(1)),
49                     tested.getMissingNamespaces());
50         }
51     }
52
53     private Set<String> readLines(String fileName) throws IOException {
54         return new HashSet<>(IOUtils.readLines(getClass().getResourceAsStream(fileName)));
55     }
56
57     private String readToString(String fileName) throws IOException {
58         return IOUtils.toString(getClass().getResourceAsStream(fileName));
59     }
60
61 }