| /* |
| * 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.ivy.plugins.parser; |
| |
| import java.util.Arrays; |
| |
| import org.apache.ivy.core.module.descriptor.Artifact; |
| import org.apache.ivy.core.module.descriptor.Configuration; |
| import org.apache.ivy.core.module.descriptor.Configuration.Visibility; |
| import org.apache.ivy.core.module.descriptor.DependencyArtifactDescriptor; |
| import org.apache.ivy.core.module.descriptor.DependencyDescriptor; |
| import org.apache.ivy.core.module.descriptor.ExcludeRule; |
| import org.apache.ivy.core.module.descriptor.IncludeRule; |
| import org.apache.ivy.core.module.descriptor.ModuleDescriptor; |
| |
| import junit.framework.TestCase; |
| |
| public abstract class AbstractModuleDescriptorParserTester extends TestCase { |
| protected DependencyDescriptor getDependency(DependencyDescriptor[] dependencies, String name) { |
| for (int i = 0; i < dependencies.length; i++) { |
| assertNotNull(dependencies[i]); |
| assertNotNull(dependencies[i].getDependencyId()); |
| if (name.equals(dependencies[i].getDependencyId().getName())) { |
| return dependencies[i]; |
| } |
| } |
| return null; |
| } |
| |
| protected void assertArtifacts(Artifact[] artifacts, String[] artifactsNames) { |
| assertNotNull(artifacts); |
| assertEquals(artifactsNames.length, artifacts.length); |
| for (int i = 0; i < artifactsNames.length; i++) { |
| boolean found = false; |
| for (int j = 0; j < artifacts.length; j++) { |
| assertNotNull(artifacts[j]); |
| if (artifacts[j].getName().equals(artifactsNames[i])) { |
| found = true; |
| break; |
| } |
| } |
| assertTrue("artifact not found: " + artifactsNames[i], found); |
| } |
| } |
| |
| protected void assertDependencyArtifacts(DependencyDescriptor dd, String[] confs, |
| String[] artifactsNames) { |
| DependencyArtifactDescriptor[] dads = dd.getDependencyArtifacts(confs); |
| assertNotNull(dads); |
| assertEquals(artifactsNames.length, dads.length); |
| for (int i = 0; i < artifactsNames.length; i++) { |
| boolean found = false; |
| for (int j = 0; j < dads.length; j++) { |
| assertNotNull(dads[j]); |
| if (dads[j].getName().equals(artifactsNames[i])) { |
| found = true; |
| break; |
| } |
| } |
| assertTrue("dependency artifact not found: " + artifactsNames[i], found); |
| } |
| } |
| |
| protected void assertDependencyArtifactIncludeRules(DependencyDescriptor dd, String[] confs, |
| String[] artifactsNames) { |
| IncludeRule[] dads = dd.getIncludeRules(confs); |
| assertNotNull(dads); |
| assertEquals(artifactsNames.length, dads.length); |
| for (int i = 0; i < artifactsNames.length; i++) { |
| boolean found = false; |
| for (int j = 0; j < dads.length; j++) { |
| assertNotNull(dads[j]); |
| if (dads[j].getId().getName().equals(artifactsNames[i])) { |
| found = true; |
| break; |
| } |
| } |
| assertTrue("dependency include not found: " + artifactsNames[i], found); |
| } |
| } |
| |
| protected void assertDependencyArtifactExcludeRules(DependencyDescriptor dd, String[] confs, |
| String[] artifactsNames) { |
| ExcludeRule[] rules = dd.getExcludeRules(confs); |
| assertNotNull(rules); |
| assertEquals(artifactsNames.length, rules.length); |
| for (int i = 0; i < artifactsNames.length; i++) { |
| boolean found = false; |
| for (int j = 0; j < rules.length; j++) { |
| assertNotNull(rules[j]); |
| if (rules[j].getId().getName().equals(artifactsNames[i])) { |
| found = true; |
| break; |
| } |
| } |
| assertTrue("dependency exclude not found: " + artifactsNames[i], found); |
| } |
| } |
| |
| protected void assertDependencyModulesExcludes(DependencyDescriptor dd, String[] confs, |
| String[] moduleNames) { |
| ExcludeRule[] rules = dd.getExcludeRules(confs); |
| assertNotNull(rules); |
| assertEquals(moduleNames.length, rules.length); |
| for (int i = 0; i < moduleNames.length; i++) { |
| boolean found = false; |
| for (int j = 0; j < rules.length; j++) { |
| assertNotNull(rules[j]); |
| if (rules[j].getId().getModuleId().getName().equals(moduleNames[i])) { |
| found = true; |
| break; |
| } |
| } |
| assertTrue("dependency module exclude not found: " + moduleNames[i], found); |
| } |
| } |
| |
| protected void assertConf(ModuleDescriptor md, String name, String desc, Visibility visibility, |
| String[] exts) { |
| Configuration conf = md.getConfiguration(name); |
| assertNotNull("configuration not found: " + name, conf); |
| assertEquals(name, conf.getName()); |
| assertEquals(desc, conf.getDescription()); |
| assertEquals(visibility, conf.getVisibility()); |
| assertEquals(Arrays.asList(exts), Arrays.asList(conf.getExtends())); |
| } |
| |
| } |