Package org.eclipse.sapphire.tests.misc.t0002

Source Code of org.eclipse.sapphire.tests.misc.t0002.TestMisc0002

/******************************************************************************
* Copyright (c) 2014 Oracle
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*    Konstantin Komissarchik - initial implementation and ongoing maintenance
******************************************************************************/

package org.eclipse.sapphire.tests.misc.t0002;

import org.eclipse.sapphire.Version;
import org.eclipse.sapphire.tests.SapphireTestCase;
import org.junit.Test;

/**
* Tests Version class.
*
* @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
*/

public final class TestMisc0002 extends SapphireTestCase
{
    @Test
   
    public void testVersionFromString_Basic()
    {
        Version version;
       
        version = new Version( "1" );
       
        assertEquals( 1, version.length() );
        assertEquals( 1l, version.segment( 0 ) );
        assertEquals( list( 1l ), version.segments() );
       
        version = new Version( "1.2" );

        assertEquals( 2, version.length() );
        assertEquals( 1l, version.segment( 0 ) );
        assertEquals( 2l, version.segment( 1 ) );
        assertEquals( list( 1l, 2l ), version.segments() );

        version = new Version( "1.2.3" );

        assertEquals( 3, version.length() );
        assertEquals( 1l, version.segment( 0 ) );
        assertEquals( 2l, version.segment( 1 ) );
        assertEquals( 3l, version.segment( 2 ) );
        assertEquals( list( 1l, 2l, 3l ), version.segments() );
    }
   
    @Test
   
    public void testVersionFromString_LongSegment()
    {
        final Version version = new Version( "1.2.3.201206260957" );

        assertEquals( 4, version.length() );
        assertEquals( 1l, version.segment( 0 ) );
        assertEquals( 2l, version.segment( 1 ) );
        assertEquals( 3l, version.segment( 2 ) );
        assertEquals( 201206260957l, version.segment( 3 ) );
        assertEquals( list( 1l, 2l, 3l, 201206260957l ), version.segments() );
    }
   
    @Test( expected = IllegalArgumentException.class )

    public void testVersionFromString_InvalidFormat_1()
    {
        new Version( null );
    }

    @Test( expected = IllegalArgumentException.class )
   
    public void testVersionFromString_InvalidFormat_2()
    {
        new Version( "" );
    }

    @Test( expected = IllegalArgumentException.class )
   
    public void testVersionFromString_InvalidFormat_3()
    {
        new Version( ".1.2.3" );
    }

    @Test( expected = IllegalArgumentException.class )
   
    public void testVersionFromString_InvalidFormat_4()
    {
        new Version( "1.2.3." );
    }

    @Test( expected = IllegalArgumentException.class )
   
    public void testVersionFromString_InvalidFormat_5()
    {
        new Version( "1..2.3" );
    }

    @Test( expected = IllegalArgumentException.class )
   
    public void testVersionFromString_InvalidFormat_6()
    {
        new Version( "abc" );
    }

    @Test( expected = IllegalArgumentException.class )
   
    public void testVersionFromString_InvalidFormat_7()
    {
        new Version( "1.2.abc" );
    }

    @Test( expected = IllegalArgumentException.class )
   
    public void testVersionFromString_InvalidFormat_8()
    {
        new Version( "1.2.v345" );
    }

    @Test( expected = IllegalArgumentException.class )
   
    public void testVersionFromString_InvalidFormat_9()
    {
        new Version( "1.2.345abc" );
    }
   
    @Test
   
    public void testVersionFromLong()
    {
        Version version;
       
        version = new Version( 1 );

        assertEquals( 1, version.length() );
        assertEquals( 1l, version.segment( 0 ) );
        assertEquals( list( 1l ), version.segments() );

        version = new Version( 201206260957l );

        assertEquals( 1, version.length() );
        assertEquals( 201206260957l, version.segment( 0 ) );
        assertEquals( list( 201206260957l ), version.segments() );
    }
   
    @Test
   
    public void testVersionCanonicalization()
    {
        Version version;
       
        version = new Version( "1.2.3.0" );

        assertEquals( 3, version.length() );
        assertEquals( 1l, version.segment( 0 ) );
        assertEquals( 2l, version.segment( 1 ) );
        assertEquals( 3l, version.segment( 2 ) );
        assertEquals( 0l, version.segment( 3 ) );
        assertEquals( 0l, version.segment( 1000 ) );
        assertEquals( list( 1l, 2l, 3l ), version.segments() );

        version = new Version( "1.2.3.0.0.0.0" );

        assertEquals( 3, version.length() );
        assertEquals( 1l, version.segment( 0 ) );
        assertEquals( 2l, version.segment( 1 ) );
        assertEquals( 3l, version.segment( 2 ) );
        assertEquals( 0l, version.segment( 3 ) );
        assertEquals( 0l, version.segment( 4 ) );
        assertEquals( 0l, version.segment( 5 ) );
        assertEquals( 0l, version.segment( 6 ) );
        assertEquals( 0l, version.segment( 1000 ) );
        assertEquals( list( 1l, 2l, 3l ), version.segments() );
    }
   
    @Test
   
    public void testVersionComparison()
    {
        testVersionComparisonSame( new Version( 1 ), new Version( "1" ) );
        testVersionComparisonSame( new Version( "1.2.3" ), new Version( "1.2.3" ) );
        testVersionComparisonSame( new Version( "1.2.3" ), new Version( "1.2.3.0.0" ) );
       
        testVersionComparisonDifferent( new Version( "1.2.4" ), new Version( "1.2.3" ) );
        testVersionComparisonDifferent( new Version( "1.3.3" ), new Version( "1.2.3" ) );
        testVersionComparisonDifferent( new Version( "2.2.3" ), new Version( "1.2.3" ) );
        testVersionComparisonDifferent( new Version( "1.2.3" ), new Version( "1.2" ) );
        testVersionComparisonDifferent( new Version( "1.2.3" ), new Version( "1" ) );
        testVersionComparisonDifferent( new Version( "1.2.3" ), new Version( 1 ) );
    }
   
    private void testVersionComparisonSame( final Version x, final Version y )
    {
        assertTrue( x.compareTo( y ) == 0 );
        assertTrue( y.compareTo( x ) == 0 );
    }
   
    private void testVersionComparisonDifferent( final Version x, final Version y )
    {
        assertTrue( x.compareTo( y ) > 0 );
        assertTrue( y.compareTo( x ) < 0 );
    }
   
    @Test
   
    public void testVersionEquals()
    {
        testVersionEquals( new Version( 1 ), new Version( "1" ) );
        testVersionEquals( new Version( "1.2.3" ), new Version( "1.2.3" ) );
        testVersionEquals( new Version( "1.2.3" ), new Version( "1.2.3.0.0" ) );
       
        testVersionNotEquals( new Version( "1.2.3" ), new Version( "1.2" ) );
        testVersionNotEquals( new Version( "1.2.3" ), new Version( "4.5.6" ) );
    }
   
    private void testVersionEquals( final Version x, final Version y )
    {
        assertTrue( x.equals( y ) );
        assertTrue( y.equals( x ) );
        assertTrue( x.hashCode() == y.hashCode() );
    }
   
    private void testVersionNotEquals( final Version x, final Version y )
    {
        assertFalse( x.equals( y ) );
        assertFalse( y.equals( x ) );
    }
   
    @Test

    public void testVersionToString()
    {
        assertEquals( "1", ( new Version( 1 ) ).toString() );
        assertEquals( "1", ( new Version( "1" ) ).toString() );
        assertEquals( "1.2.3", ( new Version( "1.2.3" ) ).toString() );
        assertEquals( "1.2.3.201206260957", ( new Version( "1.2.3.201206260957" ) ).toString() );
        assertEquals( "1.2.3", ( new Version( "1.2.3.0" ) ).toString() );
        assertEquals( "1.2.3", ( new Version( "1.2.3.0.0.0.0" ) ).toString() );
    }

}
TOP

Related Classes of org.eclipse.sapphire.tests.misc.t0002.TestMisc0002

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.