001 package org.apache.maven.repository.legacy.resolver.conflict;
002
003 /*
004 * Licensed to the Apache Software Foundation (ASF) under one
005 * or more contributor license agreements. See the NOTICE file
006 * distributed with this work for additional information
007 * regarding copyright ownership. The ASF licenses this file
008 * to you under the Apache License, Version 2.0 (the
009 * "License"); you may not use this file except in compliance
010 * with the License. You may obtain a copy of the License at
011 *
012 * http://www.apache.org/licenses/LICENSE-2.0
013 *
014 * Unless required by applicable law or agreed to in writing,
015 * software distributed under the License is distributed on an
016 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
017 * KIND, either express or implied. See the License for the
018 * specific language governing permissions and limitations
019 * under the License.
020 */
021
022 import java.util.Collections;
023
024 import org.apache.maven.artifact.resolver.ResolutionNode;
025 import org.apache.maven.repository.legacy.resolver.conflict.NearestConflictResolver;
026
027 /**
028 * Tests <code>NearestConflictResolver</code>.
029 *
030 * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
031 * @see NearestConflictResolver
032 */
033 public class NearestConflictResolverTest
034 extends AbstractConflictResolverTest
035 {
036 // constructors -----------------------------------------------------------
037
038 public NearestConflictResolverTest()
039 throws Exception
040 {
041 super("nearest");
042 }
043
044 // tests ------------------------------------------------------------------
045
046 /**
047 * Tests that <code>a:1.0</code> wins in the scenario:
048 * <pre>
049 * a:1.0
050 * b:1.0 -> a:2.0
051 * </pre>
052 */
053 public void testDepth()
054 {
055 ResolutionNode a1n = new ResolutionNode( a1, Collections.EMPTY_LIST );
056 ResolutionNode b1n = new ResolutionNode( b1, Collections.EMPTY_LIST );
057 ResolutionNode a2n = new ResolutionNode( a2, Collections.EMPTY_LIST, b1n );
058
059 assertResolveConflict( a1n, a1n, a2n );
060 }
061
062 /**
063 * Tests that <code>a:1.0</code> wins in the scenario:
064 * <pre>
065 * b:1.0 -> a:2.0
066 * a:1.0
067 * </pre>
068 */
069 public void testDepthReversed()
070 {
071 ResolutionNode b1n = new ResolutionNode( b1, Collections.EMPTY_LIST );
072 ResolutionNode a2n = new ResolutionNode( a2, Collections.EMPTY_LIST, b1n );
073 ResolutionNode a1n = new ResolutionNode( a1, Collections.EMPTY_LIST );
074
075 assertResolveConflict( a1n, a2n, a1n );
076 }
077
078 /**
079 * Tests that <code>a:1.0</code> wins in the scenario:
080 * <pre>
081 * a:1.0
082 * a:2.0
083 * </pre>
084 */
085 public void testEqual()
086 {
087 ResolutionNode a1n = new ResolutionNode( a1, Collections.EMPTY_LIST );
088 ResolutionNode a2n = new ResolutionNode( a2, Collections.EMPTY_LIST );
089
090 assertResolveConflict( a1n, a1n, a2n );
091 }
092
093 /**
094 * Tests that <code>a:2.0</code> wins in the scenario:
095 * <pre>
096 * a:2.0
097 * a:1.0
098 * </pre>
099 */
100 public void testEqualReversed()
101 {
102 ResolutionNode a2n = new ResolutionNode( a2, Collections.EMPTY_LIST );
103 ResolutionNode a1n = new ResolutionNode( a1, Collections.EMPTY_LIST );
104
105 assertResolveConflict( a2n, a2n, a1n );
106 }
107 }