/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.ambari.server.state.quicklinksprofile;
import static org.junit.Assert.assertEquals;
import org.codehaus.jackson.JsonParseException;
import org.junit.Test;
import com.google.common.io.Resources;
public class QuickLinksProfileParserTest {
@Test
public void testParseProfile() throws Exception {
String profileName = "example_quicklinks_profile.json";
QuickLinksProfileParser parser = new QuickLinksProfileParser();
QuickLinksProfile profile = parser.parse(Resources.getResource(profileName));
assertEquals(1, profile.getFilters().size());
assertEquals(
Filter.linkAttributeFilter("sso", true),
profile.getFilters().get(0));
assertEquals(3, profile.getServices().size());
Service hdfs = profile.getServices().get(0);
assertEquals("HDFS", hdfs.getName());
assertEquals(1, hdfs.getFilters().size());
assertEquals(1, hdfs.getComponents().size());
assertEquals(
Filter.linkAttributeFilter("authenticated", true),
hdfs.getFilters().get(0));
Component nameNode = hdfs.getComponents().get(0);
assertEquals(2, nameNode.getFilters().size());
assertEquals(
Filter.linkNameFilter("namenode_ui", false),
nameNode.getFilters().get(0));
Component historyServer = profile.getServices().get(1).getComponents().get(0);
assertEquals(1, historyServer.getFilters().size());
assertEquals(
Filter.acceptAllFilter(true),
historyServer.getFilters().get(0));
Service yarn = profile.getServices().get(2);
assertEquals(1, yarn.getFilters().size());
assertEquals(
Filter.linkNameFilter("resourcemanager_ui", true),
yarn.getFilters().get(0));
}
@Test(expected = JsonParseException.class)
public void testParseInconsistentProfile_ambigousFilterDefinition() throws Exception {
String profileName = "inconsistent_quicklinks_profile.json";
QuickLinksProfileParser parser = new QuickLinksProfileParser();
parser.parse(Resources.getResource(profileName));
}
@Test(expected = JsonParseException.class)
public void testParseInconsistentProfile_misspelledFilerDefinition() throws Exception {
String profileName = "inconsistent_quicklinks_profile_3.json";
QuickLinksProfileParser parser = new QuickLinksProfileParser();
parser.parse(Resources.getResource(profileName));
}
}