Subversion Repositories DevTools

Rev

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

package com.erggroup.buildtool.utf;

import static org.junit.Assert.*;

import java.sql.SQLException;
import java.util.Iterator;
import java.util.Vector;

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

import com.erggroup.buildtool.ripple.BuildStandard;
import com.erggroup.buildtool.ripple.ReleaseManager;
import com.erggroup.buildtool.ripple.RippleEngine;
import com.erggroup.buildtool.ripple.Package;
import com.erggroup.buildtool.ripple.ReleaseConfig;
import com.erggroup.buildtool.utilities.XmlBuilder;


@SuppressWarnings("unused")
public class BuildStandardTest
{
    private static final Logger mLogger        = LoggerFactory.getLogger(BuildStandardTest.class);
    ReleaseManager              releaseManager = null;
    RippleEngine                rippleEngine   = null;

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

    /**
     * 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 void queryReleaseConfig(final int rtag_id) throws SQLException, Exception
        {
            mReleaseConfigCollection.resetData();
            ReleaseConfig releaseConfig;
            
            releaseConfig = new ReleaseConfig(1,1,'M', "LinuxHost","BuildLinux", "linux_i386", "Linux");
            mReleaseConfigCollection.add(releaseConfig);

            releaseConfig = new ReleaseConfig(1,2,'S', "SparcHost","BuildSparc", "sparc", "Solaris");
            mReleaseConfigCollection.add(releaseConfig);

            releaseConfig = new ReleaseConfig(1,3,'S', "Sparc10X86Host","BuildSparc10X86", "solaris10_x86", "Solaris");
            mReleaseConfigCollection.add(releaseConfig);

            releaseConfig = new ReleaseConfig(1,4,'S', "Win32Host","BuildWin32", "win32", "Win32");
            mReleaseConfigCollection.add(releaseConfig);
        }

    }

    /**
     * set up performed prior to each test method
     */
    @Before
    public void TestSetUp()
    {
        mLogger.debug("TestSetUp");
        mLogger.error("TestSetUp: Property:" + System.getProperty("vix.utf.name"));

        releaseManager = new myReleaseManager("BuildStandardTest", "not used", "not used");
        releaseManager.mUseDatabase = false;
        rippleEngine = new RippleEngine(releaseManager, 11111, true);

        // Force a known machtype
        Package.mGenericMachtype = "win32";
        
        try
        {
            rippleEngine.collectMetaData();
        }
        catch (Exception e)
        {
        }
    }

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

    @Test
    public void testBuildStandardJatsAll()
    {

        BuildStandard bs = new BuildStandard(rippleEngine, "Linux", "Production and Debug");

        XmlBuilder xml = new XmlBuilder("test");
        bs.getBuildStandardXml(xml);
        //System.out.println("getBuildStandardEntryXml:"+xml.toOneLine());
        assertTrue(xml.toOneLine().equals("<test>  <buildinfo machtype='linux_i386' method='jats' arg='all'/></test>"));

        //System.out.println(bs.getPlatform(false));
        //System.out.println(bs.getBuildStandard(false));
        //System.out.println("getBuildStandardEntry:"+bs.getBuildStandardEntry());
        //System.out.println("getBuildStandardEntryText:"+bs.getBuildStandardEntryText());
        
        assertTrue(bs.getBuildStandardText().equals("Linux:Jats All"));
        assertTrue(bs.getBuildStandard().equals("linux_i386:Jats All"));
        
    }

    @Test
    public void testBuildStandardJatsProdMulti()
    {

        BuildStandard bs = new BuildStandard(rippleEngine, "Solaris", "Production");

        assertTrue(bs.supportedBuildStandard());
        assertFalse(bs.isGeneric());
        
        XmlBuilder xml = new XmlBuilder("test");
        bs.getBuildStandardXml(xml);
        //System.out.println("getBuildStandardEntryXml:"+xml.toOneLine());
        assertTrue(xml.toOneLine().equals("<test>  <buildinfo machtype='sparc' method='jats' arg='production'/>  <buildinfo machtype='solaris10_x86' method='jats' arg='production'/></test>"));

        //System.out.println(bs.getPlatform(false));
        //System.out.println(bs.getBuildStandard(false));
        //System.out.println("getBuildStandardEntry"+bs.getBuildStandardEntry());
        //System.out.println("getBuildStandardEntryText:"+bs.getBuildStandardEntryText());

        assertTrue(bs.getBuildStandardText().equals("Solaris:Jats Production"));
        assertTrue(bs.getBuildStandard().equals("sparc:Jats Production<br>solaris10_x86:Jats Production"));
    }

    @Test
    public void testBuildStandardJatsDebug()
    {

        BuildStandard bs = new BuildStandard(rippleEngine, "Win32", "Debug");

        assertTrue(bs.supportedBuildStandard());
        assertFalse(bs.isGeneric());
        
        XmlBuilder xml = new XmlBuilder("test");
        bs.getBuildStandardXml(xml);
        //System.out.println("getBuildStandardEntryXml:"+xml.toOneLine());
        assertTrue(xml.toOneLine().equals("<test>  <buildinfo machtype='win32' method='jats' arg='debug'/></test>"));

        //System.out.println("'" + bs.getPlatform(false) + "'");
        //System.out.println("'" + bs.getBuildStandard(false) + "'");
        //System.out.println("'" + bs.getBuildStandardText() + "'");
        //System.out.println("getBuildStandardEntry"+bs.getBuildStandardEntry());
        //System.out.println("getBuildStandardEntryText:"+bs.getBuildStandardEntryText());
        
        assertTrue(bs.getBuildStandardText().equals("Win32:Jats Debug"));
        assertTrue(bs.getBuildStandard().equals("win32:Jats Debug"));
    }

    @Test
    public void testBuildStandardWin32Java1_7()
    {

        BuildStandard bs = new BuildStandard(rippleEngine, "Win32", "Java 1.7");

        assertTrue(bs.supportedBuildStandard());
        assertFalse(bs.isGeneric());
        
        XmlBuilder xml = new XmlBuilder("test");
        bs.getBuildStandardXml(xml);
        //System.out.println("getBuildStandardEntryXml:"+xml.toOneLine());
        assertTrue(xml.toOneLine().equals("<test>  <buildinfo machtype='win32' method='ant' arg='1.7'/></test>"));
        
        //System.out.println(bs.getPlatform(false));
        //System.out.println(bs.getBuildStandard(false));
        //System.out.println("getBuildStandardEntry"+bs.getBuildStandardEntry());
        //System.out.println("getBuildStandardEntryText:"+bs.getBuildStandardEntryText());

        assertTrue(bs.getBuildStandardText().equals("Win32:Ant Java 1.7"));
        assertTrue(bs.getBuildStandard().equals("win32:Ant Java 1.7"));
    }

    @Test
    public void testBuildStandardWin32Java1_99()
    {

        BuildStandard bs = new BuildStandard(rippleEngine, "Win32", "Java 1.99");

        assertTrue(bs.supportedBuildStandard());
        assertFalse(bs.isGeneric());
        
        XmlBuilder xml = new XmlBuilder("test");
        bs.getBuildStandardXml(xml);
        //System.out.println("getBuildStandardEntryXml:"+xml.toOneLine());
        assertTrue(xml.toOneLine().equals("<test>  <buildinfo machtype='win32' method='ant' arg='1.99'/></test>"));

        //System.out.println(bs.getPlatform(false));
        //System.out.println(bs.getBuildStandard(false));
        //System.out.println("getBuildStandardEntry"+bs.getBuildStandardEntry());
        //System.out.println("getBuildStandardEntryText:"+bs.getBuildStandardEntryText());

        assertTrue(bs.getBuildStandardText().equals("Win32:Ant Java 1.99"));
        assertTrue(bs.getBuildStandard().equals("win32:Ant Java 1.99"));
    }


    @Test
    public void testBuildStandardGeneric()
    {

        BuildStandard bs = new BuildStandard(rippleEngine, "Generic", "Debug");

        assertTrue(bs.supportedBuildStandard());
        assertTrue(bs.isGeneric());

        XmlBuilder xml = new XmlBuilder("test");
        bs.getBuildStandardXml(xml);
        //System.out.println("getBuildStandardEntryXml:"+xml.toOneLine());
        assertTrue(xml.toOneLine().equals("<test>  <buildinfo machtype='win32' method='jats' arg='debug'/></test>"));

        
        //System.out.println(bs.getPlatform(false));
        //System.out.println(bs.getBuildStandard(false));
        //System.out.println("getBuildStandardEntry"+bs.getBuildStandardEntry());
        //System.out.println("getBuildStandardEntryText:"+bs.getBuildStandardEntryText());
        
        assertTrue(bs.getBuildStandardText().equals("Generic:Jats Debug"));
        assertTrue(bs.getBuildStandard().equals("win32:Jats Debug"));
    }
    
    @Test
    public void testBuildStandardGenericJava()
    {

        BuildStandard bs = new BuildStandard(rippleEngine, "Generic", "Java 1.7");

        assertTrue(bs.supportedBuildStandard());
        assertTrue(bs.isGeneric());

        XmlBuilder xml = new XmlBuilder("test");
        bs.getBuildStandardXml(xml);
        //System.out.println("getBuildStandardEntryXml:"+xml.toOneLine());
        assertTrue(xml.toOneLine().equals("<test>  <buildinfo machtype='win32' method='ant' arg='1.7'/></test>"));

        //System.out.println("getBuildStandardText:"+bs.getBuildStandardText());
        //System.out.println("getBuildStandardXml:"+bs.getBuildStandardXml());
        //System.out.println("getBuildStandard:"+bs.getBuildStandard());
        
        assertTrue(bs.getBuildStandardText().equals("Generic:Ant Java 1.7"));
        assertTrue(bs.getBuildStandard().equals("win32:Ant Java 1.7"));
    }
    
    @Test
    public void testBuildStandardGenericEscrow()
    {
        // Setting escrow mode will change the processing of arguments 
        rippleEngine.mDaemon = false;
        BuildStandard bs = new BuildStandard(rippleEngine, "Generic", "Production");

        assertTrue(bs.supportedBuildStandard());
        assertTrue(bs.isGeneric());
        
        XmlBuilder xml = new XmlBuilder("test");
        bs.getBuildStandardXml(xml);
        //System.out.println("getBuildStandardEntryXml:"+xml.toOneLine());
        String expected =
                        "<test>" +
                "  <buildinfo machtype='linux_i386' method='jats' arg='production'/>" +
                "  <buildinfo machtype='sparc' method='jats' arg='production'/>" +
                "  <buildinfo machtype='solaris10_x86' method='jats' arg='production'/>" +
                "  <buildinfo machtype='win32' method='jats' arg='production'/>" +
                "</test>";
        assertTrue(xml.toOneLine().equals(expected));

        //System.out.println("--testBuildStandardGenericEscrow");
        //System.out.println(bs.getPlatform(false));
        //System.out.println(bs.getBuildStandard(false));
        //System.out.println("getBuildStandardEntry"+bs.getBuildStandardEntry());
        //System.out.println("getBuildStandardEntryText:"+bs.getBuildStandardEntryText());
        
        assertTrue(bs.getBuildStandardText().equals("Generic:Jats Production"));
        assertTrue(bs.getBuildStandard().equals("linux_i386:Jats Production<br>sparc:Jats Production<br>solaris10_x86:Jats Production<br>win32:Jats Production"));
    }

    @Test
    public void testBuildStandardUnknownMachClass()
    {

        BuildStandard bs = new BuildStandard(rippleEngine, "UnknownMachineFamily", "Debug");
        XmlBuilder xml = new XmlBuilder("test");
        assertFalse(bs.supportedBuildStandard());
        assertFalse(bs.isGeneric());
        assertFalse(bs.isActive());

        bs.getBuildStandardXml(xml);
        //System.out.println("getBuildStandardEntryXml:"+xml.toOneLine());
        assertTrue(xml.toOneLine().equals("<test/>"));

        //System.out.println(bs.getPlatform(false));
        //System.out.println(bs.getBuildStandard(false));
        //System.out.println(bs.getBuildStandardText());
        //System.out.println("getBuildStandardEntry"+bs.getBuildStandardEntry());
        //System.out.println("getBuildStandardEntryText:"+bs.getBuildStandardEntryText());

        assertTrue(bs.getBuildStandardText().equals(""));
        assertTrue(bs.getBuildStandard().equals(""));

    }

    @Test
    public void testBuildStandardBadAddend()
    {

        BuildStandard bs = new BuildStandard(rippleEngine, "Linux", "Guess");

        
        assertFalse(bs.supportedBuildStandard());
        assertFalse(bs.isGeneric());
        assertFalse(bs.isActive());
        assertFalse(bs.supportedBuildStandard());

        XmlBuilder xml = new XmlBuilder("test");
        bs.getBuildStandardXml(xml);
        //System.out.println("getBuildStandardEntryXml:"+xml.toOneLine());
        assertTrue(xml.toOneLine().equals("<test/>"));

        //System.out.println(bs.getPlatform(false));
        //System.out.println(bs.getBuildStandard(false));
        //System.out.println(bs.getBuildStandardText());
        //System.out.println("getBuildStandardEntry"+bs.getBuildStandardEntry());
        //System.out.println("getBuildStandardEntryText:"+bs.getBuildStandardEntryText());
        
        assertTrue(bs.getBuildStandardText().equals(""));
        assertTrue(bs.getBuildStandard().equals(""));
    }
  
}