/* * Lokomo OneCMDB - An Open Source Software for Configuration * Management of Datacenter Resources * * Copyright (C) 2006 Lokomo Systems AB * * This program 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 2 of the License, or (at * your option) any later version. * * This program 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 this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * 02110-1301 USA. * * Lokomo Systems AB can be contacted via e-mail: info@lokomo.com or via * paper mail: Lokomo Systems AB, Sv�rdv�gen 27, SE-182 33 * Danderyd, Sweden. * */ package org.onecmdb.core.tests.xml; import java.util.ArrayList; import java.util.List; import org.onecmdb.core.ICi; import org.onecmdb.core.internal.job.workflow.WorkflowParameter; import org.onecmdb.core.internal.job.workflow.WorkflowRelevantData; import org.onecmdb.core.internal.job.workflow.sample.CommitRfcProcess; import org.onecmdb.core.internal.job.workflow.sample.ProcessBeanProvider; import org.onecmdb.core.internal.model.primitivetypes.SimpleTypeFactory; import org.onecmdb.core.tests.AbstractOneCmdbTestCase; import org.onecmdb.core.utils.IBeanProvider; import org.onecmdb.core.utils.bean.CiBean; import org.onecmdb.core.utils.bean.ValueBean; public class TestXmlHandling extends AbstractOneCmdbTestCase { public void testSetAttribute() { ICi ci = testUtils.createTemplate(this.ciRoot, "Parent"); testUtils.newAttribute(ci, "a1", SimpleTypeFactory.STRING, null, 1, 1); ICi child = testUtils.createInstance(ci, "Child"); // MOdify the ci through the xml interface. final CiBean bean = new CiBean(); bean.setAlias("Child"); bean.setDerivedFrom("Parent"); bean.setTemplate(false); ValueBean vBean = new ValueBean(); vBean.setValue("a1-value"); vBean.setAlias("a1"); bean.addAttributeValue(vBean); // Process beans. ProcessBeanProvider process = new ProcessBeanProvider(); // Add session. WorkflowRelevantData data = new WorkflowRelevantData(); data.put("session", this.session); process.setRelevantData(data); // Add Provider. WorkflowParameter in = new WorkflowParameter(); in.put("provider", new IBeanProvider() { public List<CiBean> getBeans() { List<CiBean> beans = new ArrayList<CiBean>(); beans.add(bean); return(beans); } public CiBean getBean(String alias) { for (CiBean lbean : getBeans()) { if (lbean.getAlias().equals(alias)) { return(lbean); } } return(null); } }); process.setInParameter(in); process.run(); // Need to commit the rfcs. CommitRfcProcess commit = new CommitRfcProcess(); commit.setRelevantData(data); commit.setInParameter(process.getOutParameter()); try { commit.run(); } catch (Throwable e) { // TODO Auto-generated catch block e.printStackTrace(); } // Check output.. System.out.println(child.toString()); } }