blob: 53cf32a790b0007313800ee9e5edd36c2382aca5 [file] [log] [blame]
/*
*
* * 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.nifi.minifi.commons.schema;
import org.apache.nifi.minifi.commons.schema.common.CommonPropertyKeys;
import org.junit.Test;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.stream.Collectors;
import static org.junit.Assert.assertEquals;
public class ProcessGroupSchemaTest {
@Test
public void testNoPortsRootGroup() {
validateIssuesNumMatches(0, new ProcessGroupSchema(new HashMap<>(), ConfigSchema.TOP_LEVEL_NAME));
}
@Test
public void testInputPortsRootGroup() {
Map<String, Object> map = new HashMap<>();
map.put(CommonPropertyKeys.INPUT_PORTS_KEY, Arrays.asList(createPortSchema("testId", "testName", ConfigSchema.TOP_LEVEL_NAME).toMap()));
validateIssuesNumMatches(1, new ProcessGroupSchema(map, ConfigSchema.TOP_LEVEL_NAME));
}
@Test
public void testOutputPortsRootGroup() {
Map<String, Object> map = new HashMap<>();
map.put(CommonPropertyKeys.OUTPUT_PORTS_KEY, Arrays.asList(createPortSchema("testId", "testName", ConfigSchema.TOP_LEVEL_NAME).toMap()));
validateIssuesNumMatches(1, new ProcessGroupSchema(map, ConfigSchema.TOP_LEVEL_NAME));
}
private PortSchema createPortSchema(String id, String name, String wrapperName) {
Map<String, Object> map = new HashMap<>();
map.put(CommonPropertyKeys.ID_KEY, id);
map.put(CommonPropertyKeys.NAME_KEY, name);
return new PortSchema(map, wrapperName);
}
private void validateIssuesNumMatches(int expected, ProcessGroupSchema processGroupSchema) {
int actual = processGroupSchema.getValidationIssues().size();
String issues = "[" + System.lineSeparator() + processGroupSchema.getValidationIssues().stream().collect(Collectors.joining("," + System.lineSeparator())) + "]";
assertEquals("Expected " + expected + " issue(s), got " + actual + ": " + issues, expected, actual);
}
}