/*
* JBoss, Home of Professional Open Source.
* See the COPYRIGHT.txt file distributed with this work for information
* regarding copyright ownership. Some portions may be licensed
* to Red Hat, Inc. under one or more contributor license agreements.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301 USA.
*/
package org.teiid.adminapi.jboss;
import static org.junit.Assert.*;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import org.jboss.dmr.ModelNode;
import org.junit.Test;
import org.teiid.adminapi.impl.TestVDBUtility;
import org.teiid.adminapi.impl.VDBMetaData;
import org.teiid.adminapi.impl.VDBMetadataParser;
import org.teiid.core.util.ObjectConverterUtil;
import org.teiid.core.util.PropertiesUtils;
import org.teiid.core.util.UnitTestUtil;
@SuppressWarnings("nls")
public class TestVDBMetaData {
@Test
public void testMarshellUnmarshellDirectParsing() throws Exception {
VDBMetaData vdb = TestVDBUtility.buildVDB();
ByteArrayOutputStream out = new ByteArrayOutputStream();
VDBMetadataParser.marshell(vdb, out);
//System.out.println(new String(out.toByteArray()));
// UnMarshell
vdb = VDBMetadataParser.unmarshell(new ByteArrayInputStream(out.toByteArray()));
TestVDBUtility.validateVDB(vdb);
}
@Test
public void testAdminMOCreation() {
VDBMetaData vdb = new VDBMetaData();
PropertiesUtils.setBeanProperty(vdb, "name", "x");
assertEquals("x", vdb.getName());
}
@Test public void testVDBMetaDataMapper() {
VDBMetaData vdb = TestVDBUtility.buildVDB();
ModelNode node = VDBMetadataMapper.INSTANCE.wrap(vdb, new ModelNode());
vdb = VDBMetadataMapper.INSTANCE.unwrap(node);
TestVDBUtility.validateVDB(vdb);
}
@Test
public void testVDBMetaDataDescribe() throws Exception {
ModelNode node = VDBMetadataMapper.INSTANCE.describe(new ModelNode());
String actual = node.toJSONString(false);
assertEquals(ObjectConverterUtil.convertFileToString(new File(UnitTestUtil.getTestDataPath() + "/vdb-describe.txt")), actual);
}
@Test
public void testClone() {
VDBMetaData vdb = TestVDBUtility.buildVDB();
vdb.setXmlDeployment(true);
VDBMetaData clone = vdb.clone();
assertTrue(clone.isXmlDeployment());
assertEquals(1, vdb.getVDBImports().size());
assertNotSame(clone.getModelMetaDatas(), vdb.getModelMetaDatas());
//assertNotSame(clone.getDataPolicyMap(), vdb.getDataPolicyMap());
}
}