Subversion Repositories DevTools

Rev

Rev 7163 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package com.erggroup.buildtool.utf;

import java.sql.SQLException;

import com.erggroup.buildtool.escrow.ESCROWBuild;
import com.erggroup.buildtool.ripple.BuildStandard;
import com.erggroup.buildtool.ripple.Package;
import com.erggroup.buildtool.ripple.PackageCollection;
import com.erggroup.buildtool.ripple.ReleaseManager;
import com.erggroup.buildtool.ripple.RippleEngine;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.junit.Test;
import org.junit.runner.JUnitCore;

import static org.junit.Assert.*;

public class ESCROWBuildTestCase
{
        private static final Logger mLogger = LoggerFactory.getLogger(DaemonBuildTestCase.class);
        ReleaseManager              releaseManager = null;
        RippleEngine                rippleEngine   = null;

        /**
         * constructor
         */
        public ESCROWBuildTestCase()
        {
                mLogger.debug("ESCROWBuildTestCase");
                setUpEscrow();
        }

        /**
         * Test Case main line
         */
        public static void main(String[] args)
        {
                mLogger.debug("main");
                JUnitCore.main("com.erggroup.buildtool.utf.ESCROWBuildTestCase");
        }

        /** Subclass and override key methods so that the test can control
         *  the data being used
         */
        public class myReleaseManager extends ReleaseManagerUtf
        {

                public myReleaseManager(final String connectionString, final String username, final String password)
                {
                        super(connectionString, username, password);
                }

                public String queryBaselineName(int baseline) throws SQLException, Exception
                {
                        return "TIMBUKTU (TIM) > R7 7.9";
                }

                public void queryPackageVersions(RippleEngine rippleEngine, PackageCollection packageCollection,
                                int baseline) throws SQLException, Exception
                {
                        /* prod_id pkg_name                pkg_version  v_ext pkg_vcs_tag
                         * 8       NotInAnyWayReproducible 1.0.0.tim    .tim  NA                                  NA
                         * 10      SolarisCentricProduct   1.0.0000.tim .tim  SolarisCentricProduct_1.0.0000.tim  \vob\SolarisCentricProduct
                         * 11      LinuxCentricProduct     1.0.0000.tim .tim  LinuxCentricProduct_1.0.0000.tim    \vob\LinuxCentricProduct
                         * 12      Win32CentricProduct     1.0.0000.tim .tim  Win32CentricProduct_1.0.0000.tim    \vob\Win32CentricProduct
                         * 13      GenericProduct          1.0.0000.tim .tim  GenericProduct_1.0.0000.tim         \vob\ToBeMovedFromHere
                         */
                        Package p8 = new Package(1, 8, "NotInAnyWayReproducible", "1.0.0.tim", ".tim", "NotInAnyWayReproducible.1.0.0.tim", "CC::NA::NA", 'x');
                        Package p10 = new Package(2, 10, "SolarisCentricProduct", "1.0.0000.tim", ".tim", "SolarisCentricProduct.1.0.0000.tim", "CC::/vob/SolarisCentricProduct::SolarisCentricProduct_1.0.0000.tim", 'x');
                        Package p11 = new Package(3, 11, "LinuxCentricProduct", "1.0.0000.tim", ".tim", "LinuxCentricProduct.1.0.0000.tim", "CC::/vob/LinuxCentricProduct::LinuxCentricProduct_1.0.0000.tim", 'x');
                        Package p12 = new Package(4, 12, "Win32CentricProduct", "1.0.0000.tim", ".tim", "Win32CentricProduct.1.0.0000.tim", "CC::/vob/Win32CentricProduct::Win32CentricProduct_1.0.0000.tim", 'x');
                        Package p13 = new Package(5, 13, "GenericProduct", "1.0.0000.tim", ".tim", "GenericProduct.1.0.0000.tim", "CC::/vob/ToBeMovedFromHere::GenericProduct_1.0.0000.tim", 'x');


                        /* the above products have the following dependencies which will be discovered in traverseDependencies
                         * pv_id   pkg_name, dpv.pkg_version, dpv.v_ext, dpv.pkg_vcs_tag
                         * 7     CotsWithFunnyVersion         hoopla2_x.cots   .cots CotsWithFunnyVersion_hoopla2_x.cots \vob\CotsWithFunnyVersion
                         * 9     CommonDependency             1.0.0000.tim     .tim  CommonDependency_1.0.0000.tim       \vob\CommonDependency
                         * 14    AdvisoryDependency           1.0.0000.tim     .tim  AdvisoryDependency_1.0.0000.tim     \vob\AdvisoryDependency
                         * the above packages have the following build info
                         * pv_id bm_name bsa_name
                         * 7     Solaris Debug
                         * 9     Linux   Debug
                         * 9     Solaris Debug
                         * 9     Win32   Production
                         * 10    Solaris Java 1.4
                         * 11    Linux   Production and Debug
                         * 12    Win32   Java 1.6
                         * 13    Generic Java 1.4
                         * 14    Linux   Debug
                         */

                        Package p9 = new Package(1, 9, "CommonDependency", "1.0.0000.tim", ".tim", "CommonDependency.1.0.0000.tim", "CC::/vob/CommonDependency::CommonDependency_1.0.0000.tim", 'x');
                        Package p7 = new Package(2, 7, "CotsWithFunnyVersion", "hoopla2_x.cots", ".cots", "CotsWithFunnyVersion.hoopla2_x.cots", "CC::/vob/CotsWithFunnyVersion::CotsWithFunnyVersion_hoopla2_x.cots", 'x');
                        Package p14 = new Package(3, 14, "AdvisoryDependency", "1.0.0000.tim", ".tim", "AdvisoryDependency.1.0.0000.tim", "CC::/vob/AdvisoryDependency::AdvisoryDependency_1.0.0000.tim", 'x');

                        // Insert in order created by original test harness
                        packageCollection.add(p8);
                        packageCollection.add(p7);
                        packageCollection.add(p9);
                        packageCollection.add(p10);
                        packageCollection.add(p11);
                        packageCollection.add(p14);
                        packageCollection.add(p12);
                        packageCollection.add(p13);
                        
                        p8.addDependency(p9);
                        p9.addDependency(p7);
                        p10.addDependency(p9);
                        p11.addDependency(p14);
                        p13.addDependency(p9);


                        BuildStandard bs7 = new BuildStandard(rippleEngine,"Solaris", "Debug");
                        p7.mBuildStandardCollection.add(bs7);

                        BuildStandard bs9 = new BuildStandard(rippleEngine, "Linux", "Debug");
                        p9.mBuildStandardCollection.add(bs9);
                        bs9 = new BuildStandard(rippleEngine, "Solaris", "Debug");
                        p9.mBuildStandardCollection.add(bs9);
                        bs9 = new BuildStandard(rippleEngine, "Win32", "Production");
                        p9.mBuildStandardCollection.add(bs9);

                        BuildStandard bs10 = new BuildStandard(rippleEngine, "Solaris", "Java 1.4");
                        p10.mBuildStandardCollection.add(bs10);

                        BuildStandard bs = new BuildStandard(rippleEngine, "Linux", "Production and Debug");
                        p11.mBuildStandardCollection.add(bs);

                        BuildStandard bs12 = new BuildStandard(rippleEngine, "Win32", "Java 1.6");
                        p12.mBuildStandardCollection.add(bs12);

                        BuildStandard bs13 = new BuildStandard(rippleEngine, "Generic", "Java 1.4");
                        p13.mBuildStandardCollection.add(bs13);

                        BuildStandard bs14 = new BuildStandard(rippleEngine, "Linux", "Debug");
                        p14.mBuildStandardCollection.add(bs14);
                }

        }


        /** Setup and Run the Escrow
         *  The tests will be the results of the escrow run
         */
        public void setUpEscrow()
        {
                mLogger.debug("TestESCROWBuild");


                //      Construct a Release Manager and Ripple Builder
                //      Run the Escrow Engine
                //
                releaseManager = new myReleaseManager("not used", "not used", "not used");
                releaseManager.mUseDatabase = false;
                rippleEngine = new RippleEngine(releaseManager, 99999, false);
                ESCROWBuild.generateEscrowFiles(rippleEngine, "build"); 
        }

        @Test
        public void TestEscrowBuildFiles()
        {
                //      Examine the results
                //
                boolean rv1 = Utilities.checkBuildfiles("build1.xml");
                boolean rv2 = Utilities.checkBuildfiles("build2.xml");
                boolean rv3 = Utilities.checkBuildfiles("build3.xml");

                //  Test assertions - after all files have been processed
                //
                assertTrue(rv1);
                assertTrue(rv2);
                assertTrue(rv3);
        }

        @Test
        public void TestEscrowDataFiles()
        {
                // Examine the other escrow files
                boolean rv4 = Utilities.checkBuildfiles("escrow_set_up");
                boolean rv5 = Utilities.checkBuildfiles("raw_data.csv");

                assertTrue(rv4);
                assertTrue(rv5);
        }


}