/*
* Copyright 2016 JBoss Inc
*
* 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.guvnor.common.services.project.model;
import java.util.Collection;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
public class DependenciesTest {
private Dependencies dependencies;
private Dependency droolsCore;
private Dependency junit;
@Before
public void setUp() throws Exception {
dependencies = new Dependencies();
droolsCore = new Dependency( new GAV( "org.drools:drools-core:5.0" ) );
droolsCore.setScope( "compile" );
dependencies.add( droolsCore );
junit = new Dependency( new GAV( "junit:junit:4.11" ) );
junit.setScope( "test" );
dependencies.add( junit );
}
@Test
public void testGetAllGAVs() throws Exception {
final Collection<GAV> gavs = dependencies.getGavs();
assertEquals( 2, gavs.size() );
assertContains( gavs, "org.drools", "drools-core", "5.0" );
assertContains( gavs, "junit", "junit", "4.11" );
}
@Test
public void testFindByGav() throws Exception {
assertEquals( droolsCore, dependencies.get( new GAV( "org.drools:drools-core:5.0" ) ) );
}
@Test
public void testNullWhenNoResults() throws Exception {
assertNull( dependencies.get( new GAV( "org.drools:drools-core:112.0" ) ) );
}
public static void assertContains( final Collection<GAV> gavs,
final String groupID,
final String artifactID,
final String version ) {
for ( GAV gav : gavs ) {
if ( gav.getArtifactId().equals( artifactID )
&& gav.getGroupId().equals( groupID )
&& gav.getVersion().equals( version ) ) {
return;
}
}
fail( "Could not find " + groupID + ":" + artifactID + ":" + version );
}
@Test
public void testContainsGAV() throws Exception {
assertTrue( dependencies.containsDependency( new GAV( "org.drools:drools-core:5.0" ) ) );
final Dependency dependency = new Dependency( new GAV( "org.drools:drools-core:5.0" ) );
dependency.setScope( "test" );
assertTrue( dependencies.containsDependency( dependency ) );
assertFalse( dependencies.containsDependency( new GAV( "org.drools:drools-core:4.0" ) ) );
}
@Test
public void testGetTestScopedGAVs() throws Exception {
final Collection<GAV> gavs = dependencies.getGavs( "test" );
assertEquals( 1, gavs.size() );
assertContains( gavs, "junit", "junit", "4.11" );
}
@Test
public void testGetCompileScopedGAVs() throws Exception {
final Collection<GAV> gavs = dependencies.getGavs( "compile" );
assertEquals( 1, gavs.size() );
assertContains( gavs, "org.drools", "drools-core", "5.0" );
}
@Test
public void testGetCompileScopedGavsMethod() throws Exception {
final Collection<GAV> gavs = dependencies.getCompileScopedGavs();
assertEquals( 1, gavs.size() );
assertContains( gavs, "org.drools", "drools-core", "5.0" );
}
}