/******************************************************************************* * Copyright (c) 2008, 2011 Thomas Holland (thomas@innot.de) and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Thomas Holland - initial API and implementation *******************************************************************************/ /** * */ package de.innot.avreclipse.core.avrdude; import static org.junit.Assert.*; import java.util.ArrayList; import java.util.List; import org.junit.Test; import org.osgi.service.prefs.BackingStoreException; /** * @author Thomas Holland * */ public class ProgrammerConfigTest { /** * Test method for * {@link de.innot.avreclipse.core.avrdude.ProgrammerConfig#ProgrammerConfig(java.lang.String)}. * * @throws BackingStoreException */ @Test public void testProgrammerConfig() throws BackingStoreException { ProgrammerConfigManager manager = ProgrammerConfigManager.getDefault(); // create a new ProgrammerConfig ProgrammerConfig config = manager.createNewConfig(); assertNotNull(config); // test all options config.setName("test1"); config.setDescription("testdescription"); config.setProgrammer("c2n232i"); // last entry config.setPort("/test/port"); config.setBaudrate("123456"); config.setExitspecResetline("reset"); config.setExitspecVCCline("novcc"); assertEquals("test1", config.getName()); assertEquals("testdescription", config.getDescription()); assertEquals("c2n232i", config.getProgrammer()); assertEquals("/test/port", config.getPort()); assertEquals("123456", config.getBaudrate()); assertEquals("reset", config.getExitspecResetline()); assertEquals("novcc", config.getExitspecVCCline()); // Test Commandline arguments List<String> expected = new ArrayList<String>(); expected.add("-cc2n232i"); expected.add("-P/test/port"); expected.add("-b123456"); expected.add("-Ereset,novcc"); List<String> actual = config.getArguments(); assertEquals(expected, actual); // Test cloning ProgrammerConfig config2 = manager.getConfigEditable(config); assertEquals("testdescription", config2.getDescription()); assertEquals("c2n232i", config2.getProgrammer()); assertEquals("/test/port", config2.getPort()); assertEquals("123456", config2.getBaudrate()); assertEquals("reset", config2.getExitspecResetline()); assertEquals("novcc", config2.getExitspecVCCline()); // Test save config.setDescription("changeddesription"); config.setProgrammer("avrisp"); // first entry config.setPort("/test/port/2"); config.setBaudrate("654321"); config.setExitspecResetline("noreset"); config.setExitspecVCCline("vcc"); manager.saveConfig(config); // Test if the last changes have been persisted ProgrammerConfig config3 = manager.getConfig(config.getId()); assertEquals("changeddesription", config3.getDescription()); assertEquals("avrisp", config3.getProgrammer()); assertEquals("/test/port/2", config3.getPort()); assertEquals("654321", config3.getBaudrate()); assertEquals("noreset", config3.getExitspecResetline()); assertEquals("vcc", config3.getExitspecVCCline()); // Test delete manager.deleteConfig(config); assertTrue(manager.getConfig(config.getId()) == null); } }