package org.oddjob.jobs.structural; import junit.framework.TestCase; import org.oddjob.Oddjob; import org.oddjob.OddjobLookup; import org.oddjob.arooa.ArooaParseException; import org.oddjob.arooa.parsing.DragPoint; import org.oddjob.arooa.parsing.DragTransaction; import org.oddjob.arooa.registry.ChangeHow; import org.oddjob.arooa.xml.XMLConfiguration; import org.oddjob.state.ParentState; import org.oddjob.tools.FragmentHelper; import org.oddjob.tools.OddjobTestHelper; public class JobFolderTest extends TestCase { public void testInOddjob() { String config = "<oddjob>" + " <job>" + " <folder>" + " <jobs>" + " <echo id='job1'>Job1</echo>" + " <echo id='job2'>Job2</echo>" + " </jobs>" + " </folder>" + " </job>" + "</oddjob>"; Oddjob oddjob = new Oddjob(); oddjob.setConfiguration(new XMLConfiguration("XML", config)); oddjob.run(); assertEquals(ParentState.COMPLETE, OddjobTestHelper.getJobState(oddjob)); assertNotNull(new OddjobLookup(oddjob).lookup("job1")); assertNotNull(new OddjobLookup(oddjob).lookup("job2")); } String xml = "<oddjob id='this'>" + " <job>" + " <folder id='folder'/>" + " </job>" + "</oddjob>"; String job = "<bean id='child'/>"; public void testCutAndPaste() throws ArooaParseException { Oddjob oddjob = new Oddjob(); oddjob.setConfiguration(new XMLConfiguration("XML", xml)); oddjob.run(); DragPoint point = oddjob.provideConfigurationSession().dragPointFor( new OddjobLookup(oddjob).lookup("folder")); DragTransaction trn = point.beginChange(ChangeHow.FRESH); point.paste(0, job); trn.commit(); assertNotNull(new OddjobLookup(oddjob).lookup("child")); oddjob.destroy(); } public void testCutFolder() throws ArooaParseException { Oddjob oddjob = new Oddjob(); oddjob.setConfiguration(new XMLConfiguration("XML", xml)); oddjob.run(); DragPoint point = oddjob.provideConfigurationSession().dragPointFor( new OddjobLookup(oddjob).lookup("folder")); DragTransaction trn = point.beginChange(ChangeHow.FRESH); point.paste(0, "<bean/>"); trn.commit(); trn = point.beginChange(ChangeHow.FRESH); point.paste(1, "<bean/>"); trn.commit(); trn = point.beginChange(ChangeHow.FRESH); point.cut(); trn.commit(); assertNull(new OddjobLookup(oddjob).lookup("folder")); oddjob.destroy(); } public void testExample() throws ArooaParseException { // Just parse XML. FragmentHelper helper = new FragmentHelper(); helper.createComponentFromResource( "org/oddjob/jobs/structural/JobFolderExample.xml"); } }