package net.sourceforge.cruisecontrol.sourcecontrols; import junit.framework.TestCase; import org.jdom.Element; import net.sourceforge.cruisecontrol.testutil.TestUtil; import net.sourceforge.cruisecontrol.publishers.CMSynergyTaskPublisherTest; /** * @author Dan Rollo * Date: Feb 18, 2009 * Time: 12:42:23 PM */ public class CMSynergyModificationTest extends TestCase { private static void addCCMObjectToMod(final Element mod, final String name, final String version, final String type, final String instance, final String project, final String comment) { if (!mod.getName().equals("modification")) { throw new IllegalArgumentException("mod parameter must be a modification element, was: " + mod.getContent()); } final Element ccmobject = new Element("ccmobject"); CMSynergyTaskPublisherTest.addElementWithContent(ccmobject, "name", name); CMSynergyTaskPublisherTest.addElementWithContent(ccmobject, "version", version); CMSynergyTaskPublisherTest.addElementWithContent(ccmobject, "type", type); CMSynergyTaskPublisherTest.addElementWithContent(ccmobject, "instance", instance); CMSynergyTaskPublisherTest.addElementWithContent(ccmobject, "project", project); CMSynergyTaskPublisherTest.addElementWithContent(ccmobject, "comment", comment); mod.addContent(ccmobject); } public void testToFromElement() throws Exception { final Element log = TestUtil.createElement(true, true, "2 minutes 20 seconds", 0, null); final Element expectedMods = TestUtil.createModsElement(1); final String name = "1) AstNameRenderer.java"; final String version = "6"; final String type = "type"; final String instance = "1"; final String project = "asteron"; final String comment = "Version automatically created during work area reconciliation."; addCCMObjectToMod((Element) expectedMods.getContent().get(0), name, version, type, instance, project, comment); CMSynergyTaskPublisherTest.replaceMods(log, expectedMods); final CMSynergyModification cmsModExpected = new CMSynergyModification(); cmsModExpected.fromElement((Element) expectedMods.getContent().get(0)); final CMSynergyModification cmsMod = new CMSynergyModification(); cmsMod.createModifiedObject(name, version, type, instance, project, comment); // fake remaining fields to match cmsMod.revision = cmsModExpected.revision; cmsMod.userName = cmsModExpected.userName; cmsMod.modifiedTime = cmsModExpected.modifiedTime; cmsMod.comment = cmsModExpected.comment; assertEquals(cmsModExpected.toString(), cmsMod.toString()); } }