Package org.codehaus.xharness.types

Source Code of org.codehaus.xharness.types.EnvSetTest

package org.codehaus.xharness.types;

import java.io.File;

import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.types.Path;
import org.apache.tools.ant.types.Reference;
import org.easymock.MockControl;
import org.easymock.classextension.MockClassControl;

import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;

public class EnvSetTest extends TestCase {
    public EnvSetTest(String name) {
        super(name);
    }

    public static void main(String[] args) throws Exception {
        if (System.getProperty("gui") != null) {
            String[] newArgs = new String[args.length + 2];
            System.arraycopy(args, 0, newArgs, 0, args.length);
            newArgs[args.length] = EnvSetTest.class.getName();
            newArgs[args.length + 1] = "-noloading";
            junit.swingui.TestRunner.main(newArgs);
        } else {
            String[] newArgs = new String[args.length + 1];
            System.arraycopy(args, 0, newArgs, 0, args.length);
            newArgs[args.length] = EnvSetTest.class.getName();
            junit.textui.TestRunner.main(newArgs);
        }
    }

    public static Test suite() {
        return new TestSuite(EnvSetTest.class);
    }
   
    public void testAddEnv() throws Exception {
        EnvSet set = new EnvSet();
        EnvironmentVariable var = new EnvironmentVariable("foo", "bar");
        set.addEnv(var);
        EnvironmentVariable[] vars = set.getVariables(new Project());
        assertEquals("Wrong number of variables", 1, vars.length);
        assertEquals("Wrong env var", var, vars[0]);

        vars = set.getVariables(new Project());
        assertEquals("Wrong number of variables", 1, vars.length);
        assertEquals("Wrong env var", var, vars[0]);
    }
   
    public void testReference() throws Exception {
        EnvSet set1 = new EnvSet();
        EnvironmentVariable var = new EnvironmentVariable("foo", "bar");
        set1.addEnv(var);

        MockControl prCtrl = MockClassControl.createControl(Project.class);
        Project project = (Project)prCtrl.getMock();
        project.getReference("ref");
        prCtrl.setReturnValue(set1, 2);
       
       
        EnvSet set2 = new EnvSet();
        set2.setRefid(new Reference(null, "ref"));
        prCtrl.replay();
       
        try {
            set2.addEnv(new EnvironmentVariable("spam", "eggs"));
            fail("Expected BuildException");
        } catch (BuildException be) {
            // reference mustn't have child elements
        }
       
        EnvironmentVariable[] vars = set2.getVariables(project);
        assertEquals("Wrong number of variables", 1, vars.length);
        assertEquals("Wrong env var", var, vars[0]);
       
        prCtrl.verify();
    }
   
    public void testBadReference() throws Exception {
        MockControl prCtrl = MockClassControl.createControl(Project.class);
        Project project = (Project)prCtrl.getMock();
        project.getReference("ref");
        prCtrl.setReturnValue(new Object(), 2);
       
       
        EnvSet set = new EnvSet();
        set.setRefid(new Reference(null, "ref"));
        prCtrl.replay();
       
        try {
            set.getVariables(project);
            fail("Expected BuildException");
        } catch (BuildException be) {
            // reference mustn't have child elements
        }
       
        prCtrl.verify();
    }
   
    public void testLoadEnvironment() throws Exception {
        MockControl prCtrl = MockClassControl.createControl(Project.class);
        Project project = (Project)prCtrl.getMock();

        prCtrl.replay();

        EnvSet set1 = new EnvSet();
        set1.setLoadenvironment(false);
        assertEquals("Wrong number of variables", 0, set1.getVariables(project).length);
       
        EnvSet set2 = new EnvSet();
        set2.setLoadenvironment(true);
        EnvironmentVariable[] vars = set2.getVariables(project);
        assertTrue("Wrong number of variables", vars.length > 0);
       
        prCtrl.verify();
    }
   
    public void testLoadEnvironmentNoDefault() throws Exception {
        MockControl prCtrl = MockClassControl.createControl(Project.class);
        Project project = (Project)prCtrl.getMock();
        project.resolveFile("/foo/bar");
        prCtrl.setReturnValue(new File("/foo/bar"));
       

        prCtrl.replay();

        String pathVar = System.getProperty("os.name").toLowerCase().startsWith("win")
                         ? "Path"
                         : "PATH";
        Path pathVal = new Path(project, "/foo/bar");
        EnvironmentVariable var = new EnvironmentVariable(pathVar, pathVal);
        var.setAppend(true);

        EnvSet set = new EnvSet();
        set.setLoadenvironment(true);
        set.setNodefault(true);
        set.addEnv(var);
        EnvironmentVariable[] vars = set.getVariables(project);
        assertEquals("Wrong number of variables", 1, vars.length);
        boolean found = false;
        for (int i = 0; i < vars.length; i++) {
            if (pathVar.equals(vars[i].getKey())) {
                assertTrue("Path not appended: " + vars[i].getContent(),
                           vars[i].getContent().endsWith("foo" + File.separator + "bar"));
                found = true;
                break;
            }
        }
        assertTrue("Path variable not found", found);
       
        prCtrl.verify();
    }
   
    public void testAddConfiguredEnvset() throws Exception {
        EnvSet set1 = new EnvSet();
        EnvironmentVariable var = new EnvironmentVariable("foo", "bar");
        set1.addEnv(var);

        EnvSet set2 = new EnvSet();
        set2.setRefid(new Reference(null, "ref"));
        try {
            set2.addConfiguredEnvset(set1);
            fail("Expected BuildException");
        } catch (BuildException be) {
            // reference mustn't have child elements
        }

        EnvSet set3 = new EnvSet();
        set3.addConfiguredEnvset(set1);
        EnvironmentVariable[] vars = set3.getVariables(new Project());
        assertEquals("Wrong number of variables", 1, vars.length);
        assertEquals("Wrong env var", var, vars[0]);
    }
}
TOP

Related Classes of org.codehaus.xharness.types.EnvSetTest

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.