Code Search for Developers
 
 
  

DistributedMasterBuilderNoLookupTest.java from cruisecontrol at Krugle


Show DistributedMasterBuilderNoLookupTest.java syntax highlighted

package net.sourceforge.cruisecontrol.builders;

import junit.framework.TestCase;
import net.sourceforge.cruisecontrol.Builder;
import net.sourceforge.cruisecontrol.CruiseControlException;
import net.sourceforge.cruisecontrol.distributed.core.MulticastDiscoveryTest;
import net.sourceforge.cruisecontrol.distributed.core.PropertiesHelper;

import java.util.HashMap;
import java.util.Map;

/**
 * @author Dan Rollo
 * Date: Jan 5, 2007
 * Time: 2:08:30 AM
 */
public class DistributedMasterBuilderNoLookupTest extends TestCase {

    protected void setUp() throws Exception {
        DistributedMasterBuilderTest.setupInsecurePolicy();
    }

    public void testDistAttribs() throws Exception {

        final DistributedMasterBuilder masterBuilder = new DistributedMasterBuilder();

        try {
            masterBuilder.validate();
            fail("mising child builder");
        } catch (CruiseControlException e) {
            assertEquals("A nested Builder is required for DistributedMasterBuilder", e.getMessage());
        }
        final Builder mockBuilder = new MockBuilder();
        masterBuilder.add(mockBuilder);

        masterBuilder.validate();
    }

    public void testScheduleDay() throws Exception {

        final DistributedMasterBuilder masterBuilder = new DistributedMasterBuilder();

        final Builder nestedBuilder = new MockBuilder();
        nestedBuilder.setDay("Saturday");
        nestedBuilder.setMultiple(2);

        masterBuilder.add(nestedBuilder);
        masterBuilder.validate();
        assertEquals("Distributed builder should wrap nested builder schedule fields",
                7, masterBuilder.getDay());
        assertEquals("Distributed builder should wrap nested builder schedule fields",
                Builder.NOT_SET, masterBuilder.getTime());
        assertEquals("Distributed builder should wrap nested builder schedule fields",
                2, masterBuilder.getMultiple());
    }

    public void testScheduleTime() throws Exception {

        final DistributedMasterBuilder masterBuilder = new DistributedMasterBuilder();
        final Builder nestedBuilder = new MockBuilder();
        nestedBuilder.setTime("530");
        masterBuilder.add(nestedBuilder);
        masterBuilder.validate();
        assertEquals("Distributed builder should wrap nested builder schedule fields",
                530, masterBuilder.getTime());
        assertEquals("Distributed builder should wrap nested builder schedule fields",
                Builder.NOT_SET, masterBuilder.getDay());
        assertEquals("Distributed builder should wrap nested builder schedule fields",
                Builder.NOT_SET, masterBuilder.getMultiple());
    }

    public void testScheduleMultiple() throws Exception {

        final DistributedMasterBuilder masterBuilder = new DistributedMasterBuilder();
        final Builder nestedBuilder = new MockBuilder();
        nestedBuilder.setMultiple(2);
        masterBuilder.add(nestedBuilder);
        masterBuilder.validate();
        assertEquals("Distributed builder should wrap nested builder schedule fields",
                2, masterBuilder.getMultiple());
        assertEquals("Distributed builder should wrap nested builder schedule fields",
                Builder.NOT_SET, masterBuilder.getTime());
        assertEquals("Distributed builder should wrap nested builder schedule fields",
                Builder.NOT_SET, masterBuilder.getDay());
    }

    public void testProjectNameValue() throws Exception {

        final DistributedMasterBuilder masterBuilder = DistributedMasterBuilderTest.getMasterBuilder_LocalhostONLY();

        final Builder nestedBuilder = new MockBuilder();
        masterBuilder.add(nestedBuilder);

        try {
            masterBuilder.build(new HashMap(), null);
            fail("Missing projectname property should have failed.");
        } catch (CruiseControlException e) {
            assertEquals(DistributedMasterBuilder.MSG_MISSING_PROJECT_NAME, e.getMessage());
        }

        final Map projectProperties = new HashMap();
        projectProperties.put(PropertiesHelper.PROJECT_NAME, "testProjectName");
        try {
            masterBuilder.build(projectProperties, null);
            fail("Null agent should have failed.");
        } catch (CruiseControlException e) {
            assertEquals("Distributed build runtime exception", e.getMessage());
        }
    }

    /**
     * This test lives here so we don't have to kill the Jini LUS to run it.
     * @throws Exception if test fails
     */
    public void testPickAgentNoRegistrars() throws Exception {
        // setup discovery so default logic will not wait to find a LUS
        MulticastDiscoveryTest.setDiscovery(MulticastDiscoveryTest.getLocalDiscovery());

        DistributedMasterBuilder masterBuilder = DistributedMasterBuilderTest.getMasterBuilder_LocalhostONLY();
        assertNull("Shouldn't find any available agents", masterBuilder.pickAgent(null, null));
    }

}




See more files for this project here

cruisecontrol

CruiseControl is a framework for a continuous build process. It includes, but is not limited to, plugins for email notification, Ant, and various source control tools. A web interface is provided to view the details of the current and previous builds.

Project homepage: http://sourceforge.net/projects/cruisecontrol
Programming language(s): Java,XML
License: other

  DistributedMasterBuilderNoLookupTest.java
  DistributedMasterBuilderTest.java