package net.sf.colossus.server; import java.util.logging.Logger; import junit.framework.TestCase; import net.sf.colossus.common.Constants; import net.sf.colossus.common.Options; import net.sf.colossus.common.TestConstants; import net.sf.colossus.common.WhatNextManager; import net.sf.colossus.util.ErrorUtils; import net.sf.colossus.variant.Variant; public class StartEachVariant extends TestCase { private static final Logger LOGGER = Logger .getLogger(StartEachVariant.class.getName()); public StartEachVariant(String name) { super(name); } public void testDefault() { testStartOneVariant("Default", 6); } public void testAbyssal3() { testStartOneVariant("Abyssal3", 3); } public void testAbyssal6() { testStartOneVariant("Abyssal6", 6); } /* public void testIllegalVariant() { testStartOneVariant("NoSuchVariant", 6); } */ // TODO nrOfAIs still dummy... private void testStartOneVariant(String variantName, int nrOfAIs) { LOGGER.info("test: starting variant " + variantName + " with " + nrOfAIs + "AIs"); Options.setStartupTest(true); ErrorUtils.clearErrorDuringFunctionalTest(); // noFile argument true, we never want the START options to be saved. Options startOptions = new Options(Constants.OPTIONS_START, true); WhatNextManager whatNextManager = new WhatNextManager(startOptions); // use colossus-home from resource directory. // Get -server.cf file from there. // The booleans are: noFile=false, readOnly=true Options serverOptions = new Options(Constants.OPTIONS_SERVER_NAME, TestConstants.TEST_COLOSSUS_HOME, false, true); serverOptions.loadOptions(); serverOptions.setOption(Options.variant, variantName); Variant variant = VariantSupport.loadVariantByName(variantName, true); GameServerSide game = new GameServerSide(whatNextManager, serverOptions, variant); game.startNewGameAndWaitUntilOver(null); assertFalse("Starting game with variant " + variantName + " failed!", ErrorUtils.checkErrorDuringFunctionalTest()); LOGGER.info("OK: starting variant Default COMPLETED."); } }