package org.oddjob.monitor.model;
import java.io.IOException;
import org.custommonkey.xmlunit.XMLTestCase;
import org.oddjob.Oddjob;
import org.oddjob.OddjobLookup;
import org.oddjob.arooa.parsing.DragPoint;
import org.oddjob.arooa.xml.XMLConfiguration;
import org.oddjob.monitor.context.ContextInitialiser;
import org.oddjob.monitor.context.ExplorerContext;
import org.oddjob.util.ThreadManager;
import org.xml.sax.SAXException;
public class ConfigContextSearchTest extends XMLTestCase{
class OurModel extends MockExplorerModel {
Oddjob oddjob;
@Override
public Oddjob getOddjob() {
return oddjob;
}
@Override
public ContextInitialiser[] getContextInitialisers() {
return new ContextInitialiser[] {
new ConfigContextInialiser(this)
};
}
@Override
public ThreadManager getThreadManager() {
return null;
}
}
public void testOddjobDragPoint() throws SAXException, IOException {
String xml =
"<oddjob>" +
" <job>" +
" <oddjob id='nested' name='Fred'/>" +
" </job>" +
"</oddjob>";
Oddjob oddjob = new Oddjob();
oddjob.setConfiguration(new XMLConfiguration("XML", xml));
oddjob.load();
OurModel model = new OurModel();
model.oddjob = oddjob;
ExplorerContext context = new ExplorerContextImpl(model);
Object nested = new OddjobLookup(oddjob).lookup("nested");
ExplorerContext nestedContext = context.addChild(nested);
DragPoint result =
new ConfigContextSearch().dragPointFor(nestedContext);
assertNotNull(result);
String copy = result.copy();
assertXMLEqual("<oddjob id='nested' name='Fred'/>", copy);
oddjob.destroy();
}
}