package org.zend.php.zendserver.deployment.core.internal.descriptor;
import java.io.IOException;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactoryConfigurationError;
import javax.xml.xpath.XPathExpressionException;
import junit.framework.TestCase;
import org.eclipse.core.runtime.CoreException;
import org.xml.sax.SAXException;
import org.zend.php.zendserver.deployment.core.descriptor.DeploymentDescriptorFactory;
import org.zend.php.zendserver.deployment.core.descriptor.DeploymentDescriptorPackage;
import org.zend.php.zendserver.deployment.core.descriptor.IDirectiveDependency;
import org.zend.php.zendserver.deployment.core.descriptor.IExtensionDependency;
import org.zend.php.zendserver.deployment.core.descriptor.IPHPDependency;
import org.zend.php.zendserver.deployment.core.descriptor.IParameter;
import org.zend.php.zendserver.deployment.core.descriptor.IVariable;
import org.zend.php.zendserver.deployment.core.descriptor.IZendServerDependency;
public class ModelSerializerWriteTests extends TestCase {
public void testSerializeEmpty() throws SAXException, IOException, XPathExpressionException, ParserConfigurationException, CoreException, TransformerFactoryConfigurationError, TransformerException {
ModelSerializer lm = new ModelSerializer();
TextOutput txt = new TextOutput();
lm.setOutput(txt);
DeploymentDescriptor descr = new DeploymentDescriptor();
lm.serialize(descr);
lm.write();
assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n" +
"<package xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" packagerversion=\"1.4.11\" version=\"2.0\" xsi:schemaLocation=\"http://www.zend.com packageDescriptor.xsd\"/>\n", txt.toString());
}
public void testSerializeEmpty1() throws SAXException, IOException, XPathExpressionException, ParserConfigurationException, CoreException, TransformerFactoryConfigurationError, TransformerException {
ModelSerializer lm = new ModelSerializer();
TextOutput txt = new TextOutput();
lm.setOutput(txt);
DeploymentDescriptor descr = new DeploymentDescriptor();
descr.setName("Magento");
descr.setDocumentRoot("/usr/local/htdocs");
descr.setSummary("This is a quick test");
descr.setApiVersion("1.0.0");
descr.setReleaseVersion("3.2.1");
descr.setApplicationDir("public");
descr.setScriptsRoot("scripts");
descr.setDescription("My very cool first package");
lm.serialize(descr);
lm.write();
assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n" +
"<package xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" packagerversion=\"1.4.11\" version=\"2.0\" xsi:schemaLocation=\"http://www.zend.com packageDescriptor.xsd\">\n" +
" <name>Magento</name>\n" +
" <summary>This is a quick test</summary>\n" +
" <description>My very cool first package</description>\n" +
" <version>\n" +
" <release>3.2.1</release>\n" +
" <api>1.0.0</api>\n" +
" </version>\n" +
" <appdir>public</appdir>\n" +
" <docroot>/usr/local/htdocs</docroot>\n" +
" <scriptsdir>scripts</scriptsdir>\n" +
"</package>\n", txt.toString());
}
public void testSerializeEmpty2() throws SAXException, IOException, XPathExpressionException, ParserConfigurationException, CoreException, TransformerFactoryConfigurationError, TransformerException {
ModelSerializer lm = new ModelSerializer();
TextOutput txt = new TextOutput();
lm.setOutput(txt);
DeploymentDescriptor descr = new DeploymentDescriptor();
IParameter param = (IParameter) DeploymentDescriptorFactory.createModelElement(DeploymentDescriptorPackage.PARAMETERS);
descr.getParameters().add(param);
param.setId("myNewParam1");
param.setDisplay("What is your name");
param.setDefaultValue("Jacek");
param.setReadOnly(true);
param.setType(IParameter.STRING);
lm.serialize(descr);
lm.write();
assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n" +
"<package xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" packagerversion=\"1.4.11\" version=\"2.0\" xsi:schemaLocation=\"http://www.zend.com packageDescriptor.xsd\">\n" +
" <parameters>\n" +
" <parameter display=\"What is your name\" id=\"myNewParam1\" readonly=\"true\" required=\"false\" type=\"string\">\n" +
" <defaultvalue>Jacek</defaultvalue>\n" +
" </parameter>\n" +
" </parameters>\n" +
"</package>\n", txt.toString());
}
public void testSerializeEmpty3() throws SAXException, IOException, XPathExpressionException, ParserConfigurationException, CoreException, TransformerFactoryConfigurationError, TransformerException {
ModelSerializer lm = new ModelSerializer();
TextOutput txt = new TextOutput();
lm.setOutput(txt);
DeploymentDescriptor descr = new DeploymentDescriptor();
IParameter param = (IParameter) DeploymentDescriptorFactory.createModelElement(DeploymentDescriptorPackage.PARAMETERS);
descr.getParameters().add(param);
param.setId("myNewParam1");
param.setDisplay("What is your name");
param.setDefaultValue("Jacek");
param.setReadOnly(true);
param.setType(IParameter.STRING);
param = (IParameter) DeploymentDescriptorFactory.createModelElement(DeploymentDescriptorPackage.PARAMETERS);
descr.getParameters().add(param);
param.setId("myNewParam2");
param.setDisplay("Host name");
param.setDescription("A target host name");
param.setIdentical("identical123");
param.setDefaultValue("www.zend.com");
param.setRequired(true);
param.setType(IParameter.HOSTNAME);
lm.serialize(descr);
lm.write();
assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n" +
"<package xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" packagerversion=\"1.4.11\" version=\"2.0\" xsi:schemaLocation=\"http://www.zend.com packageDescriptor.xsd\">\n" +
" <parameters>\n" +
" <parameter display=\"What is your name\" id=\"myNewParam1\" readonly=\"true\" required=\"false\" type=\"string\">\n" +
" <defaultvalue>Jacek</defaultvalue>\n" +
" </parameter>\n" +
" <parameter display=\"Host name\" id=\"myNewParam2\" identical=\"identical123\" readonly=\"false\" required=\"true\" type=\"hostname\">\n" +
" <defaultvalue>www.zend.com</defaultvalue>\n" +
" <description>A target host name</description>\n" +
" </parameter>\n" +
" </parameters>\n" +
"</package>\n", txt.toString());
}
public void testSerializeEmpty4() throws SAXException, IOException, XPathExpressionException, ParserConfigurationException, CoreException, TransformerFactoryConfigurationError, TransformerException {
ModelSerializer lm = new ModelSerializer();
TextOutput txt = new TextOutput();
lm.setOutput(txt);
DeploymentDescriptor descr = new DeploymentDescriptor();
IParameter param = (IParameter) DeploymentDescriptorFactory.createModelElement(DeploymentDescriptorPackage.PARAMETERS);
descr.getParameters().add(param);
param.setId("myNewParam1");
param.setDisplay("What is your name");
param.setDefaultValue("Jacek");
param.setReadOnly(true);
param.setType(IParameter.STRING);
IVariable var = (IVariable) DeploymentDescriptorFactory.createModelElement(DeploymentDescriptorPackage.VARIABLES);
descr.getVariables().add(var);
var.setName("variable1");
var.setValue("ls -l");
lm.serialize(descr);
lm.write();
assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n" +
"<package xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" packagerversion=\"1.4.11\" version=\"2.0\" xsi:schemaLocation=\"http://www.zend.com packageDescriptor.xsd\">\n" +
" <parameters>\n" +
" <parameter display=\"What is your name\" id=\"myNewParam1\" readonly=\"true\" required=\"false\" type=\"string\">\n" +
" <defaultvalue>Jacek</defaultvalue>\n" +
" </parameter>\n" +
" </parameters>\n" +
" <variables>\n" +
" <variable name=\"variable1\" value=\"ls -l\"/>\n" +
" </variables>\n" +
"</package>\n", txt.toString());
}
public void testSerializeEmpty5() throws SAXException, IOException, XPathExpressionException, ParserConfigurationException, CoreException, TransformerFactoryConfigurationError, TransformerException {
ModelSerializer lm = new ModelSerializer();
TextOutput txt = new TextOutput();
lm.setOutput(txt);
DeploymentDescriptor descr = new DeploymentDescriptor();
descr.getPersistentResources().add("/test1.txt");
descr.getPersistentResources().add("file2.txt");
lm.serialize(descr);
lm.write();
assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n" +
"<package xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" packagerversion=\"1.4.11\" version=\"2.0\" xsi:schemaLocation=\"http://www.zend.com packageDescriptor.xsd\">\n" +
" <persistentresources>\n" +
" <resource>/test1.txt</resource>\n" +
" <resource>file2.txt</resource>\n" +
" </persistentresources>\n" +
"</package>\n", txt.toString());
}
public void testSerializeEmpty6() throws SAXException, IOException, XPathExpressionException, ParserConfigurationException, CoreException, TransformerFactoryConfigurationError, TransformerException {
ModelSerializer lm = new ModelSerializer();
TextOutput txt = new TextOutput();
lm.setOutput(txt);
DeploymentDescriptor descr = new DeploymentDescriptor();
IPHPDependency dep = (IPHPDependency) DeploymentDescriptorFactory.createModelElement(DeploymentDescriptorPackage.DEPENDENCIES_PHP);
descr.getPHPDependencies().add(dep);
dep.setEquals("3.2.1");
lm.serialize(descr);
lm.write();
assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n" +
"<package xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" packagerversion=\"1.4.11\" version=\"2.0\" xsi:schemaLocation=\"http://www.zend.com packageDescriptor.xsd\">\n" +
" <dependencies>\n" +
" <required>\n" +
" <php>\n" +
" <equals>3.2.1</equals>\n" +
" </php>\n" +
" </required>\n" +
" </dependencies>\n" +
"</package>\n", txt.toString());
}
public void testSerializeEmpty7() throws SAXException, IOException, XPathExpressionException, ParserConfigurationException, CoreException, TransformerFactoryConfigurationError, TransformerException {
ModelSerializer lm = new ModelSerializer();
TextOutput txt = new TextOutput();
lm.setOutput(txt);
DeploymentDescriptor descr = new DeploymentDescriptor();
IPHPDependency dep = (IPHPDependency) DeploymentDescriptorFactory.createModelElement(DeploymentDescriptorPackage.DEPENDENCIES_PHP);
descr.getPHPDependencies().add(dep);
dep.setMin("3.2.1");
dep.setMax("5.2.5");
dep.getExclude().add("1.2.3");
dep.getExclude().add("2.3.4");
dep.getExclude().add("4.1.2");
lm.serialize(descr);
lm.write();
assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n" +
"<package xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" packagerversion=\"1.4.11\" version=\"2.0\" xsi:schemaLocation=\"http://www.zend.com packageDescriptor.xsd\">\n" +
" <dependencies>\n" +
" <required>\n" +
" <php>\n" +
" <min>3.2.1</min>\n" +
" <max>5.2.5</max>\n" +
" <exclude>1.2.3</exclude>\n" +
" <exclude>2.3.4</exclude>\n" +
" <exclude>4.1.2</exclude>\n" +
" </php>\n" +
" </required>\n" +
" </dependencies>\n" +
"</package>\n", txt.toString());
}
public void testSerializeEmpty8() throws SAXException, IOException, XPathExpressionException, ParserConfigurationException, CoreException, TransformerFactoryConfigurationError, TransformerException {
ModelSerializer lm = new ModelSerializer();
TextOutput txt = new TextOutput();
lm.setOutput(txt);
DeploymentDescriptor descr = new DeploymentDescriptor();
IPHPDependency dep = (IPHPDependency) DeploymentDescriptorFactory.createModelElement(DeploymentDescriptorPackage.DEPENDENCIES_PHP);
descr.getPHPDependencies().add(dep);
dep.setMin("3.2.1");
dep.setMax("5.2.5");
dep.getExclude().add("1.2.3");
dep.getExclude().add("2.3.4");
dep.getExclude().add("4.1.2");
IDirectiveDependency dir = (IDirectiveDependency) DeploymentDescriptorFactory.createModelElement(DeploymentDescriptorPackage.DEPENDENCIES_DIRECTIVE);
descr.getDirectiveDependencies().add(dir);
dir.setName("register_globals");
dir.setEquals("off");
lm.serialize(descr);
lm.write();
assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n" +
"<package xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" packagerversion=\"1.4.11\" version=\"2.0\" xsi:schemaLocation=\"http://www.zend.com packageDescriptor.xsd\">\n" +
" <dependencies>\n" +
" <required>\n" +
" <php>\n" +
" <min>3.2.1</min>\n" +
" <max>5.2.5</max>\n" +
" <exclude>1.2.3</exclude>\n" +
" <exclude>2.3.4</exclude>\n" +
" <exclude>4.1.2</exclude>\n" +
" </php>\n" +
" <directive>\n" +
" <name>register_globals</name>\n" +
" <equals>off</equals>\n" +
" </directive>\n" +
" </required>\n" +
" </dependencies>\n" +
"</package>\n", txt.toString());
}
public void testSerializeRemoveEmptyParents() throws SAXException, IOException, XPathExpressionException, ParserConfigurationException, CoreException, TransformerFactoryConfigurationError, TransformerException {
ModelSerializer lm = new ModelSerializer();
TextOutput txt = new TextOutput();
lm.setOutput(txt);
DeploymentDescriptor descr = new DeploymentDescriptor();
IPHPDependency dep = (IPHPDependency) DeploymentDescriptorFactory.createModelElement(DeploymentDescriptorPackage.DEPENDENCIES_PHP);
descr.getPHPDependencies().add(dep);
dep.setMin("3.2.1");
lm.serialize(descr);
descr.getPHPDependencies().remove(dep);
lm.serialize(descr);
lm.write();
assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n" +
"<package xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" packagerversion=\"1.4.11\" version=\"2.0\" xsi:schemaLocation=\"http://www.zend.com packageDescriptor.xsd\"/>\n", txt.toString());
}
public void testSerializeRemoveEmptyParents1() throws SAXException, IOException, XPathExpressionException, ParserConfigurationException, CoreException, TransformerFactoryConfigurationError, TransformerException {
ModelSerializer lm = new ModelSerializer();
TextOutput txt = new TextOutput();
lm.setOutput(txt);
DeploymentDescriptor descr = new DeploymentDescriptor();
IPHPDependency dep = (IPHPDependency) DeploymentDescriptorFactory.createModelElement(DeploymentDescriptorPackage.DEPENDENCIES_PHP);
descr.getPHPDependencies().add(dep);
dep.setMin("3.2.1");
IVariable var = (IVariable) DeploymentDescriptorFactory.createModelElement(DeploymentDescriptorPackage.VARIABLES);
descr.getVariables().add(var);
descr.setName("notemptyname");
lm.serialize(descr);
descr.setName(null);
descr.getVariables().clear();
descr.getPHPDependencies().clear();
lm.serialize(descr);
lm.write();
assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n" +
"<package xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" packagerversion=\"1.4.11\" version=\"2.0\" xsi:schemaLocation=\"http://www.zend.com packageDescriptor.xsd\"/>\n", txt.toString());
}
public void testSerializeRemoveEmptyParents2() throws SAXException, IOException, XPathExpressionException, ParserConfigurationException, CoreException, TransformerFactoryConfigurationError, TransformerException {
ModelSerializer lm = new ModelSerializer();
TextOutput txt = new TextOutput();
lm.setOutput(txt);
DeploymentDescriptor descr = new DeploymentDescriptor();
IPHPDependency dep = (IPHPDependency) DeploymentDescriptorFactory.createModelElement(DeploymentDescriptorPackage.DEPENDENCIES_PHP);
descr.getPHPDependencies().add(dep);
dep.setMin("3.2.1");
dep = (IPHPDependency) DeploymentDescriptorFactory.createModelElement(DeploymentDescriptorPackage.DEPENDENCIES_PHP);
descr.getPHPDependencies().add(dep);
dep.setMin("3.2.1");
lm.serialize(descr);
descr.getPHPDependencies().remove(dep);
lm.serialize(descr);
lm.write();
assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n" +
"<package xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" packagerversion=\"1.4.11\" version=\"2.0\" xsi:schemaLocation=\"http://www.zend.com packageDescriptor.xsd\">\n"+
" <dependencies>\n" +
" <required>\n" +
" <php>\n" +
" <min>3.2.1</min>\n" +
" </php>\n" +
" </required>\n" +
" </dependencies>\n" +
"</package>\n", txt.toString());
}
public void testSerializeRemoveEmptyParents3() throws SAXException, IOException, XPathExpressionException, ParserConfigurationException, CoreException, TransformerFactoryConfigurationError, TransformerException {
ModelSerializer lm = new ModelSerializer();
TextOutput txt = new TextOutput();
lm.setOutput(txt);
DeploymentDescriptor descr = new DeploymentDescriptor();
descr.setDocumentRoot("newRoot");
lm.serialize(descr);
lm.write();
lm.load(txt.getInputStream(), txt.getInputStream(), descr);
assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n" +
"<package xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" packagerversion=\"1.4.11\" version=\"2.0\" xsi:schemaLocation=\"http://www.zend.com packageDescriptor.xsd\">\n" +
" <docroot>newRoot</docroot>\n" +
"</package>\n", txt.toString());
descr.setDocumentRoot(null);
lm.serialize(descr);
lm.write();
assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n" +
"<package xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" packagerversion=\"1.4.11\" version=\"2.0\" xsi:schemaLocation=\"http://www.zend.com packageDescriptor.xsd\">\n" +
" </package>\n", txt.toString());
}
public void testAddInOrder() throws SAXException, IOException, XPathExpressionException, ParserConfigurationException, CoreException, TransformerFactoryConfigurationError, TransformerException {
ModelSerializer lm = new ModelSerializer();
TextOutput txt = new TextOutput();
lm.setOutput(txt);
DeploymentDescriptor descr = new DeploymentDescriptor();
IVariable var = (IVariable) DeploymentDescriptorFactory.createModelElement(DeploymentDescriptorPackage.VARIABLES);
descr.getVariables().add(var);
lm.serialize(descr);
IParameter param = (IParameter) DeploymentDescriptorFactory.createModelElement(DeploymentDescriptorPackage.PARAMETERS);
descr.getParameters().add(param);
lm.serialize(descr);
lm.write();
assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n" +
"<package xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" packagerversion=\"1.4.11\" version=\"2.0\" xsi:schemaLocation=\"http://www.zend.com packageDescriptor.xsd\">\n"+
" <parameters>\n" +
" <parameter readonly=\"false\" required=\"false\"/>\n" +
" </parameters>\n" +
" <variables>\n" +
" <variable/>\n" +
" </variables>\n" +
"</package>\n", txt.toString());
}
public void testAddInOrder2() throws SAXException, IOException, XPathExpressionException, ParserConfigurationException, CoreException, TransformerFactoryConfigurationError, TransformerException {
ModelSerializer lm = new ModelSerializer();
TextOutput txt = new TextOutput();
lm.setOutput(txt);
DeploymentDescriptor descr = new DeploymentDescriptor();
descr.setDocumentRoot("homeDir");
lm.serialize(descr);
lm.write();
lm.load(txt.getInputStream(), txt.getInputStream(), descr);
IParameter p = (IParameter) DeploymentDescriptorFactory.createModelElement(DeploymentDescriptorPackage.PARAMETERS);
descr.getParameters().add(p);
lm.serialize(descr);
lm.write();
lm.load(txt.getInputStream(), txt.getInputStream(), descr);
descr.setDocumentRoot("homeDir");
lm.serialize(descr);
lm.write();
lm.load(txt.getInputStream(), txt.getInputStream(), descr);
assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n" +
"<package xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" packagerversion=\"1.4.11\" version=\"2.0\" xsi:schemaLocation=\"http://www.zend.com packageDescriptor.xsd\">\n"+
" <docroot>homeDir</docroot>\n" +
" <parameters>\n" +
" <parameter readonly=\"false\" required=\"false\"/>\n" +
" </parameters>\n" +
"</package>\n", txt.toString());
}
public void testAddDependenciesInOrder() throws SAXException, IOException, XPathExpressionException, ParserConfigurationException, CoreException, TransformerFactoryConfigurationError, TransformerException {
ModelSerializer lm = new ModelSerializer();
TextOutput txt = new TextOutput();
lm.setOutput(txt);
DeploymentDescriptor descr = new DeploymentDescriptor();
lm.serialize(descr);
lm.write();
lm.load(txt.getInputStream(), txt.getInputStream(), descr);
IDirectiveDependency dirdep = (IDirectiveDependency) DeploymentDescriptorFactory.createModelElement(DeploymentDescriptorPackage.DEPENDENCIES_DIRECTIVE);
dirdep.setName("log_errors");
descr.getDirectiveDependencies().add(dirdep);
lm.serialize(descr);
lm.write();
lm.load(txt.getInputStream(), txt.getInputStream(), descr);
IExtensionDependency extdep = (IExtensionDependency) DeploymentDescriptorFactory.createModelElement(DeploymentDescriptorPackage.DEPENDENCIES_EXTENSION);
extdep.setName("ctype");
descr.getExtensionDependencies().add(extdep);
lm.serialize(descr);
lm.write();
lm.load(txt.getInputStream(), txt.getInputStream(), descr);
IPHPDependency phpdep = (IPHPDependency) DeploymentDescriptorFactory.createModelElement(DeploymentDescriptorPackage.DEPENDENCIES_PHP);
phpdep.setEquals("1.2.3");
descr.getPHPDependencies().add(phpdep);
lm.serialize(descr);
lm.write();
lm.load(txt.getInputStream(), txt.getInputStream(), descr);
IZendServerDependency zsdep = (IZendServerDependency) DeploymentDescriptorFactory.createModelElement(DeploymentDescriptorPackage.DEPENDENCIES_ZENDSERVER);
zsdep.setEquals("1.2.3");
descr.getZendServerDependencies().add(zsdep);
lm.serialize(descr);
lm.write();
assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n" +
"<package xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" packagerversion=\"1.4.11\" version=\"2.0\" xsi:schemaLocation=\"http://www.zend.com packageDescriptor.xsd\">\n"+
" <dependencies>\n" +
" <required>\n" +
" <php>\n" +
" <equals>1.2.3</equals>\n" +
" </php>\n" +
" <extension>\n" +
" <name>ctype</name>\n" +
" </extension>\n" +
" <directive>\n" +
" <name>log_errors</name>\n" +
" </directive>\n" +
" <zendserver>\n" +
" <equals>1.2.3</equals>\n" +
" </zendserver>\n" +
" </required>\n" +
" </dependencies>\n" +
"</package>\n", txt.toString());
}
public void testParamChoices() throws SAXException, IOException, XPathExpressionException, ParserConfigurationException, CoreException, TransformerFactoryConfigurationError, TransformerException {
ModelSerializer lm = new ModelSerializer();
TextOutput txt = new TextOutput();
lm.setOutput(txt);
DeploymentDescriptor descr = new DeploymentDescriptor();
lm.serialize(descr);
lm.write();
lm.load(txt.getInputStream(), txt.getInputStream(), descr);
IParameter param = (IParameter) DeploymentDescriptorFactory.createModelElement(DeploymentDescriptorPackage.PARAMETERS);
descr.getParameters().add(param);
param.getValidValues().add("value1");
param.getValidValues().add("value2");
param.getValidValues().add("value3");
lm.serialize(descr);
lm.write();
assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n" +
"<package xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" packagerversion=\"1.4.11\" version=\"2.0\" xsi:schemaLocation=\"http://www.zend.com packageDescriptor.xsd\">\n"+
" <parameters>\n" +
" <parameter readonly=\"false\" required=\"false\">\n" +
" <validation>\n" +
" <enums>\n" +
" <enum>value1</enum>\n" +
" <enum>value2</enum>\n" +
" <enum>value3</enum>\n" +
" </enums>\n" +
" </validation>\n" +
" </parameter>\n" +
" </parameters>\n" +
"</package>\n", txt.toString());
}
}