/**
* Copyright (C) 2013 Colorado School of Mines
*
* This file is part of the Interface Software Development Kit (SDK).
*
* The InterfaceSDK is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* The InterfaceSDK is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with the InterfaceSDK. If not, see <http://www.gnu.org/licenses/>.
*/
package edu.mines.acmX.exhibit.module_management.modules;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.util.HashMap;
import java.util.Map;
import org.junit.Test;
import edu.mines.acmX.exhibit.input_services.hardware.BadDeviceFunctionalityRequestException;
import edu.mines.acmX.exhibit.input_services.hardware.HardwareManagerManifestException;
import edu.mines.acmX.exhibit.module_management.ModuleManager;
import edu.mines.acmX.exhibit.module_management.loaders.ManifestLoadException;
import edu.mines.acmX.exhibit.module_management.loaders.ModuleLoadException;
import edu.mines.acmX.exhibit.module_management.metas.DependencyType;
import edu.mines.acmX.exhibit.module_management.metas.ModuleMetaData;
import edu.mines.acmX.exhibit.module_management.modules.implementation.ModuleHelper;
/**
* Unit test for ModuleHelper.
*
*/
public class ModuleHelperTest {
/**
* All this tests is that ModuleHelper can create a new singleton instance
* of ModuleManager and call the setNextModule function on it.
*
* @throws ModuleLoadException
* @throws ManifestLoadException
* @throws BadDeviceFunctionalityRequestException
* @throws HardwareManagerManifestException
*/
@Test
public void testNextValidModule() throws ManifestLoadException,
ModuleLoadException, HardwareManagerManifestException, BadDeviceFunctionalityRequestException {
ModuleManager.createEmptyInstance();
ModuleManager m = ModuleManager.getInstance();
//m.createHardwareInstance();
ModuleMetaData before = new ModuleMetaData(null, null, null, null, null, null, null, null, null, null, true);
m.setCurrentModuleMetaData(before);
Map<String, ModuleMetaData> meta = new HashMap<String, ModuleMetaData>();
String nextToLoad = "should.change.to.this";
ModuleMetaData garblygook = new ModuleMetaData(nextToLoad, nextToLoad,
nextToLoad, nextToLoad, nextToLoad, nextToLoad, nextToLoad,
nextToLoad, new HashMap<String, DependencyType>(), new HashMap<String, DependencyType>(), false);
meta.put(nextToLoad, garblygook);
m.setModuleMetaDataMap(meta);
ModuleHelper mod = new ModuleHelper();
assertTrue(mod.setNextModule(nextToLoad));
assertEquals(nextToLoad, m.getNextModuleName());
}
}