Subversion Repositories DevTools

Rev

Blame | Last modification | View Log | RSS feed

package com.erggroup.buildtool.utf;


import com.erggroup.buildtool.ripple.Package;
import com.erggroup.buildtool.ripple.RippleEngine;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;

/**
 * container of Build Daemon test methods
 */
public class RippleVersionsTest
{
    private static final Logger mLogger = LoggerFactory.getLogger(RippleVersionsTest.class);
    myReleaseManager            releaseManager = null;
    RippleEngine                rippleEngine   = null;
    Package                                             p = null;
    
    /** Subclass and override key methods so that the test can control
     *  the data being used
     */
    public class myReleaseManager extends ReleaseManagerUtf
        {
        int mAmyReleaseManager = 1;

       public myReleaseManager(final String connectionString, final String username, final String password)
                {
           super(connectionString, username, password);
           mLogger.error("Test {}", connectionString);
                }

                public myReleaseManager()
                {
                        super();
                }
        }


    public RippleVersionsTest()
    {
        mLogger.debug("DaemonBuildTestCase");
    }

    /**
     * set up performed prior to any test method
     */
    @BeforeClass
    public static void TestCaseSetUp()
    {
        mLogger.debug("TestCaseSetUp");
    }

    /**
     * tear down performed after test methods
     */
    @AfterClass
    public static void TestCaseTearDown()
    {
        mLogger.debug("TestCaseTearDown");
    }

    /**
     * set up performed prior to each test method
     */
    @Before
    public void TestSetUp()
    {
        mLogger.debug("TestSetUp");
        System.setProperty("vix.utf.name", "DaemonBuildTestCase");
        Package.mGenericMachtype = "win32";
        Package.mGbeDpkg = ".";

        releaseManager = new myReleaseManager();

    }

    /**
     * tear down performed after each test method
     */
    @After
    public void TestTearDown()
    {
        mLogger.debug("TestTearDown");
    }

    /**
     * test method designed to test ripple field limits
     * 1 tests applyPV returns 1 for package with version a.b.1.2.0
     */
    @Test
    public void TestRippleFieldLimits()
    {
        // for test purposes, p.mId will contain the return value of applyPV
        // test applyPV returns 1 and leaves mVersion alone
        p = new Package(releaseManager, "a.b.1.2.0", ".cr", false, 255, 255, 255, 255);
        assertTrue(p.getId() == 1);
        assertTrue(p.getVersion().compareTo("a.b.1.2.0") == 0);

        // test applyPV returns 2 and leaves mVersion alone
        p = new Package(releaseManager, "1.0.0000", ".cr", false, 0, 0, 0, 0);
        assertTrue(p.getId() == 2);
        assertTrue(p.getVersion().compareTo("1.0.0000") == 0);

        // test applyPV returns 2 and leaves mVersion alone
        p = new Package(releaseManager, "1.0.0009", ".cr", false, 0, 0, 0, 9);
        assertTrue(p.getId() == 2);
        assertTrue(p.getVersion().compareTo("1.0.0009") == 0);

        // test applyPV returns 2 and leaves mVersion alone
        p = new Package(releaseManager, "1.0.9000", ".cr", false, 0, 0, 9, 0);
        assertTrue(p.getId() == 2);
        assertTrue(p.getVersion().compareTo("1.0.9000") == 0);

        // test applyPV returns 2 and leaves mVersion alone
        p = new Package(releaseManager, "1.9.0000", ".cr", false, 0, 9, 0, 0);
        assertTrue(p.getId() == 2);
        assertTrue(p.getVersion().compareTo("1.9.0000") == 0);

        // test applyPV returns 2 and leaves mVersion alone
        p = new Package(releaseManager, "1.0.0000", ".cr", false, 1, 0, 0, 0);
        assertTrue(p.getId() == 2);
        assertTrue(p.getVersion().compareTo("1.0.0000") == 0);

        // test applyPV returns 2 and leaves mVersion alone - wince style limits
        p = new Package(releaseManager, "9.9.9000", ".cr", false, 9, 9, 9, 0);
        assertTrue(p.getId() == 2);
        assertTrue(p.getVersion().compareTo("9.9.9000") == 0);

        // test applyPV returns 0 and sets mNextVersion from 8.8.8000 to 8.8.9000 and does not change mVersion
        p = new Package(releaseManager, "8.8.8000", ".cr", false, 9, 9, 9, 0);
        assertTrue(p.getId() == 0);
        assertTrue(p.getVersion().compareTo("8.8.8000") == 0);
        assertTrue(p.getNextVersion().compareTo("8.8.9000") == 0);

        // test applyPV returns 0 and sets mNextVersion from 8.8.9000 to 8.9.0000
        p = new Package(releaseManager, "8.8.9000", ".cr", false, 9, 9, 9, 0);
        assertTrue(p.getId() == 0);
        assertTrue(p.getVersion().compareTo("8.8.9000") == 0);
        assertTrue(p.getNextVersion().compareTo("8.9.0000") == 0);

        // test applyPV returns 0 and sets mNextVersion from 8.9.9000 to 9.0.0000
        p = new Package(releaseManager, "8.9.9000", ".cr", false, 9, 9, 9, 0);
        assertTrue(p.getId() == 0);
        assertTrue(p.getVersion().compareTo("8.9.9000") == 0);
        assertTrue(p.getNextVersion().compareTo("9.0.0000") == 0);

        // test applyPV returns 2 and leaves mVersion alone - mos style limits
        p = new Package(releaseManager, "99.99.0000", ".cr", false, 99, 99, 0, 0);
        assertTrue(p.getId() == 2);
        assertTrue(p.getVersion().compareTo("99.99.0000") == 0);

        // test applyPV returns 0 and sets mNextVersion from 98.98.0000 to 98.99.0000
        p = new Package(releaseManager, "98.98.0000", ".cr", false, 99, 99, 0, 0);
        assertTrue(p.getId() == 0);
        assertTrue(p.getVersion().compareTo("98.98.0000") == 0);
        assertTrue(p.getNextVersion().compareTo("98.99.0000") == 0);

        // test applyPV returns 0 and sets mNextVersion from 98.99.0000 to 99.0.0000
        p = new Package(releaseManager, "98.99.0000", ".cr", false, 99, 99, 0, 0);
        assertTrue(p.getId() == 0);
        assertTrue(p.getVersion().compareTo("98.99.0000") == 0);
        assertTrue(p.getNextVersion().compareTo("99.0.0000") == 0);

    }

    /**
     * test method designed to ripple of COTS packages
     * 1 tests applyPV returns 1 for package with version a.b.1.2.0
     */
    @Test
    public void TestCotsRipples()
    {
        // for test purposes, p.mId will contain the return value of applyPV
        // test applyPV returns 1 and leaves mVersion alone

        mLogger.debug("TestCotsRipples: willNotRipple.cots");
        p = new Package(releaseManager, "willNotRipple", ".cots", false, 255, 255, 255, 255);
        assertTrue(p.getId() == 1);
        assertTrue(p.getVersion().compareTo("willNotRipple") == 0);

        mLogger.debug("TestCotsRipples: willRipple.0000.cots");
        p = new Package(releaseManager, "willRipple.0000", ".cots", false, 255, 255, 255, 255);
        assertTrue(p.getId() == 0);
        assertTrue(p.getVersion().compareTo("willRipple.0000") == 0);
        assertTrue(p.getNextVersion().compareTo("willRipple.1000") == 0);

        mLogger.debug("TestCotsRipples: willNotRipple.000.cots");
        p = new Package(releaseManager, "willNotRipple.000", ".cots", false, 255, 255, 255, 255);
        assertTrue(p.getId() == 1);
        assertTrue(p.getVersion().compareTo("willNotRipple.000") == 0);

    }
    
    /** Test the generation of version numbers on TEST builds 
     * 
     */
    @Test
    public void TestTestRequest()
    {

        // for test purposes, p.mId will contain the return value of applyPV
        // test applyPV returns 1 and leaves mVersion alone

        mLogger.debug("TestCoreTestRequest: 12.13.0000.cr");
        p = new Package(releaseManager, "12.13.0000", ".cr", true, 255, 255, 255, 255);
        mLogger.warn("Result:{} {}", p, p.getNextVersion() );
        assertTrue(p.getId() == 0);
        assertTrue(p.getNextVersion().compareTo("99.99.99000") == 0);
        
        mLogger.debug("TestCoreRequest: 12.13.0000.cr");
        p = new Package(releaseManager, "12.13.0000", ".cr", false, 255, 255, 255, 255);
        mLogger.warn("Result:{} {}", p, p.getNextVersion() );
        assertTrue(p.getId() == 0);
        assertTrue(p.getNextVersion().compareTo("12.13.0001") == 0);
    }
    
    /** Test the generation of version numbers on TEST builds 
     * 
     */
    @Test
    public void TestCotsTestRequest()
    {

        // for test purposes, p.mId will contain the return value of applyPV
        // test applyPV returns 1 and leaves mVersion alone

        mLogger.debug("TestCotsTestRequest: willNotRipple.cots");
        p = new Package(releaseManager, "willNotTestBuild", ".cots", true, 255, 255, 255, 255);
        mLogger.warn("Result:{} {}", p, p.getNextVersion() );
        assertTrue(p.getId() == 1);
        assertTrue(p.getVersion().compareTo("willNotTestBuild") == 0);

        mLogger.debug("TestCotsTestRequest: willTestBuild.0000.cots");
        p = new Package(releaseManager, "willTestBuild.0000", ".cots", true, 255, 255, 255, 255);
        mLogger.warn("Result:{} {}", p, p.getNextVersion());
        assertTrue(p.getId() == 0);
        assertTrue(p.getVersion().compareTo("willTestBuild.0000") == 0);
        assertTrue(p.getNextVersion().compareTo("willTestBuild.99000") == 0);
        
        mLogger.debug("TestCotsTestRequest: willTestBuild.0000.tools");
        p = new Package(releaseManager, "willTestBuild.0000", ".tools", true, 255, 255, 255, 255);
        mLogger.warn("Result:{} {}", p, p.getNextVersion());
        assertTrue(p.getId() == 0);
        assertTrue(p.getVersion().compareTo("willTestBuild.0000") == 0);
        assertTrue(p.getNextVersion().compareTo("willTestBuild.99000") == 0);

        mLogger.debug("TestCotsTestRequest: 12.13.0000.cots");
        p = new Package(releaseManager, "12.13.0000", ".cots", true, 255, 255, 255, 255);
        mLogger.warn("Result:{} {}", p, p.getNextVersion());
        assertTrue(p.getId() == 0);
        assertTrue(p.getVersion().compareTo("12.13.0000") == 0);
        assertTrue(p.getNextVersion().compareTo("12.13.99000") == 0);
        
        mLogger.debug("TestCotsTestRequest: 12.13.14.0000.cots");
        p = new Package(releaseManager, "12.13.14.0000", ".cots", true, 255, 255, 255, 255);
        mLogger.warn("Result:{} {}", p, p.getNextVersion());
        assertTrue(p.getId() == 0);
        assertTrue(p.getVersion().compareTo("12.13.14.0000") == 0);
        assertTrue(p.getNextVersion().compareTo("12.13.14.99000") == 0);  

        mLogger.debug("TestCotsTestRequest: willNotTestBuild.000.cots");
        p = new Package(releaseManager, "willNotTestBuild.000", ".cots", true, 255, 255, 255, 255);
        mLogger.warn("Result:{} {}", p, p.getNextVersion());
        assertTrue(p.getId() == 1);
        assertTrue(p.getVersion().compareTo("willNotTestBuild.000") == 0);

    }

}