package org.jboss.loom.utils.compar;

import org.jboss.loom.recog.VersionComparer;
import org.junit.Assert;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 *
 * @author Ondrej Zizka, ozizka at redhat.com
 */
public class VersionComparerTest {
    private static final Logger log = LoggerFactory.getLogger( VersionComparerTest.class.getName() );
    

    @Test
    public void testMain() {
        Assert.assertTrue( doCompareVersions("2.3.0.GA", "2.4.0-SNAPSHOT", -1) );
        Assert.assertTrue( doCompareVersions("2.4.0.GA", "2.4.0-SNAPSHOT", 1) );
        Assert.assertTrue( doCompareVersions("2.4.1.GA", "2.4.0-SNAPSHOT", 1) );
        Assert.assertTrue( doCompareVersions("2.4.1", "2.4.0-SNAPSHOT", 1) );
        Assert.assertTrue( doCompareVersions("2.4.0", "2.4.0-SNAPSHOT", 1) );
        Assert.assertTrue( doCompareVersions("2.4.0", "2.4.0.GA", 0) );
        Assert.assertTrue( doCompareVersions("2.4.0.CR1", "2.4.0.GA", -1) );
        Assert.assertTrue( doCompareVersions("2.4.CR1", "2.4.0.GA", -1) );
        Assert.assertTrue( doCompareVersions("2.4.CR1", "2.4.0", -1) );
        Assert.assertTrue( doCompareVersions("2.0.0.0", "2.0.0.SNAPSHOT", 1) );
        Assert.assertTrue( doCompareVersions("2.0.0.1", "2.0.0.SNAPSHOT", -1) );
        Assert.assertTrue( doCompareVersions("2.0.0.1", "2.0.0.SP2", 1) );
        Assert.assertTrue( doCompareVersions("2.0.0.1", "2.0.SP2", 1) );
        //System.out.println("Test " + (succ ? "PASSED" : "FAILED") ) );
    }
    
    
     private static boolean doCompareVersions( String v1, String v2, int expectedSignum ){
          int compared = VersionComparer.compareVersions(v1, v2);
          log.info( String.format("Comparing versions:  %s  and  %s  produces:  %d, expected: %d%n", v1, v2, compared, expectedSignum ) );
          return Integer.signum(expectedSignum) == Integer.signum( compared );
     }
    
}// class
package org.jboss.loom.utils.compar;

import org.jboss.loom.recog.VersionComparer;
import org.junit.Assert;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 *
 * @author Ondrej Zizka, ozizka at redhat.com
 */
public class VersionComparerTest {
    private static final Logger log = LoggerFactory.getLogger( VersionComparerTest.class.getName() );
    

    @Test
    public void testMain() {
        Assert.assertTrue( doCompareVersions("2.3.0.GA", "2.4.0-SNAPSHOT", -1) );
        Assert.assertTrue( doCompareVersions("2.4.0.GA", "2.4.0-SNAPSHOT", 1) );
        Assert.assertTrue( doCompareVersions("2.4.1.GA", "2.4.0-SNAPSHOT", 1) );
        Assert.assertTrue( doCompareVersions("2.4.1", "2.4.0-SNAPSHOT", 1) );
        Assert.assertTrue( doCompareVersions("2.4.0", "2.4.0-SNAPSHOT", 1) );
        Assert.assertTrue( doCompareVersions("2.4.0", "2.4.0.GA", 0) );
        Assert.assertTrue( doCompareVersions("2.4.0.CR1", "2.4.0.GA", -1) );
        Assert.assertTrue( doCompareVersions("2.4.CR1", "2.4.0.GA", -1) );
        Assert.assertTrue( doCompareVersions("2.4.CR1", "2.4.0", -1) );
        Assert.assertTrue( doCompareVersions("2.0.0.0", "2.0.0.SNAPSHOT", 1) );
        Assert.assertTrue( doCompareVersions("2.0.0.1", "2.0.0.SNAPSHOT", 1) );
        Assert.assertTrue( doCompareVersions("2.0.0.1", "2.0.0.SP2", 1) );
        Assert.assertTrue( doCompareVersions("2.0.0.1", "2.0.SP2", 1) );
        //System.out.println("Test " + (succ ? "PASSED" : "FAILED") ) );
    }
    
    
     private static boolean doCompareVersions( String v1, String v2, int expectedSignum ){
          int compared = VersionComparer.compareVersions(v1, v2);
          log.info( String.format("Comparing versions:  %s  and  %s  produces:  %d, expected: %d%n", v1, v2, compared, expectedSignum ) );
          return Integer.signum(expectedSignum) == Integer.signum( compared );
     }
    
}// class
Fix VersionComparerTest