package com.redhat.rcm.version.model; import static org.hamcrest.CoreMatchers.equalTo; import static org.junit.Assert.assertThat; import org.apache.maven.model.Dependency; import org.junit.Test; public class DependencyManagementKeyTest { @Test public void equalsUsingDefaults() { final String g = "org.foo"; final String a = "bar"; equalsTest( g, a, null, null, g, a, null, null, true ); } @Test public void compareToUsingDefaults() { final String g = "org.foo"; final String a = "bar"; compareToTest( g, a, null, null, g, a, null, null, null ); } @Test public void equalsUsingTestJarType() { final String g = "org.foo"; final String a = "bar"; final String t = "test-jar"; equalsTest( g, a, t, null, g, a, t, null, true ); } @Test public void compareToUsingTestJarType() { final String g = "org.foo"; final String a = "bar"; final String t = "test-jar"; compareToTest( g, a, t, null, g, a, t, null, null ); } @Test public void equalsUsingTestJarType_vsDefault_Fail() { final String g = "org.foo"; final String a = "bar"; final String t = "test-jar"; equalsTest( g, a, t, null, g, a, null, null, false ); } @Test public void compareToUsingTestJarType_vsDefault_Fail() { final String g = "org.foo"; final String a = "bar"; final String t = "test-jar"; compareToTest( g, a, t, null, g, a, null, null, Boolean.TRUE ); } private void equalsTest( final String g, final String a, final String t, final String c, final String g2, final String a2, final String t2, final String c2, final boolean expectMatch ) { final Dependency d1 = new Dependency(); d1.setGroupId( g ); d1.setArtifactId( a ); d1.setVersion( "1" ); d1.setType( t == null ? "jar" : t ); d1.setClassifier( c ); final DependencyManagementKey dmk1 = new DependencyManagementKey( d1 ); final Dependency d2 = new Dependency(); d2.setGroupId( g ); d2.setArtifactId( a ); d2.setVersion( "2" ); d2.setType( t2 == null ? "jar" : t2 ); d2.setClassifier( c2 ); final DependencyManagementKey dmk2 = new DependencyManagementKey( d2 ); if ( expectMatch ) { assertThat( dmk1, equalTo( dmk2 ) ); } else { assertThat( dmk1.equals( dmk2 ), equalTo( false ) ); } } private void compareToTest( final String g, final String a, final String t, final String c, final String g2, final String a2, final String t2, final String c2, final Boolean greaterThanZero ) { final Dependency d1 = new Dependency(); d1.setGroupId( g ); d1.setArtifactId( a ); d1.setVersion( "1" ); d1.setType( t == null ? "jar" : t ); d1.setClassifier( c ); final DependencyManagementKey dmk1 = new DependencyManagementKey( d1 ); final Dependency d2 = new Dependency(); d2.setGroupId( g ); d2.setArtifactId( a ); d2.setVersion( "2" ); d2.setType( t2 == null ? "jar" : t2 ); d2.setClassifier( c2 ); final DependencyManagementKey dmk2 = new DependencyManagementKey( d2 ); if ( greaterThanZero == null ) { assertThat( dmk1.compareTo( dmk2 ), equalTo( 0 ) ); } else if ( greaterThanZero ) { assertThat( dmk1.compareTo( dmk2 ) > 0, equalTo( true ) ); } else { assertThat( dmk1.compareTo( dmk2 ) < 0, equalTo( true ) ); } } }