/* * JBoss, Home of Professional Open Source * Copyright 2012, Red Hat Middleware LLC, and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. * * Licensed 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.jboss.shrinkwrap.resolver.impl.maven.util; import java.io.File; import org.jboss.shrinkwrap.resolver.api.maven.ScopeType; import org.junit.Test; /** * Test cases to assert that the {@link ValidationUtil} is working as expected * * @author <a href="mailto:alr@jboss.org">Andrew Lee Rubinger</a> */ public class ValidationUtilTestCase { private static final String SUFFIX_FILE = "-1.0.0.jar"; private static final File FILE_TREE = new File("src/test/resources/dependency-trees/test-child.tree"); /** * Ensures that all scopes may be validated */ @Test public void fromDependencyTreeAllScopes() { final String[] expectedFiles = new String[] { "test-child", "test-managed-dependency", "test-dependency", "test-deps-a", "test-deps-b", "test-dependency-with-exclusion", "test-deps-i", "test-dependency-provided", "test-dependency-test", "test-deps-d", "test-deps-f", "test-deps-g", "test-deps-h" }; validate(expectedFiles, ScopeType.values()); } @Test(expected = AssertionError.class) public void fails() { validate(new String[] { "fakeFile" }); } /** * Ensures that only "compile" scope (and the root) is to be validated */ @Test public void fromDependencyTreeCompileScope() { final String[] expectedFiles = new String[] { "test-child", "test-managed-dependency", "test-dependency", "test-deps-a", "test-dependency-with-exclusion", "test-deps-i" }; validate(expectedFiles, ScopeType.COMPILE); } /** * Ensures that only "compile" and "provided" scopes (and the root) are to be validated */ @Test public void fromDependencyTreeCompileAndProvidedScopes() { final String[] expectedFiles = new String[] { "test-child", "test-managed-dependency", "test-dependency", "test-deps-a", "test-dependency-with-exclusion", "test-dependency-provided", "test-deps-i" }; validate(expectedFiles, ScopeType.COMPILE, ScopeType.PROVIDED); } /** * Ensures that only "test" scope (and the root) is to be validated */ @Test public void fromDependencyTreeTestScope() { final String[] expectedFiles = new String[] { "test-child", "test-dependency-test", "test-deps-d", "test-deps-f", "test-deps-g", "test-deps-h" }; validate(expectedFiles, ScopeType.TEST); } private void validate(final String[] expectedFilePrefixes, final ScopeType... scopeTypes) { final ValidationUtil util = ValidationUtil.fromDependencyTree(FILE_TREE, scopeTypes); util.validate(this.fromStrings(expectedFilePrefixes)); } private File[] fromStrings(final String... fileNames) { assert fileNames != null : "File names are required"; final int fileNamesCount = fileNames.length; final File[] files = new File[fileNamesCount]; for (int i = 0; i < fileNamesCount; i++) { files[i] = fromPrefix(fileNames[i]); } return files; } private File fromPrefix(final String name) { return new File(name + SUFFIX_FILE); } }