/*
* JBoss, Home of Professional Open Source.
*
* See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing.
*
* See the AUTHORS.txt file distributed with this work for a full listing of individual contributors.
*/
package org.teiid.designer.vdb;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.io.File;
import java.util.Collection;
import org.junit.Test;
import org.teiid.core.util.SmartTestDesignerSuite;
import org.teiid.designer.vdb.VdbConstants;
import org.teiid.designer.vdb.VdbUtil;
import org.teiid.designer.vdb.manifest.MetadataElement;
import org.teiid.designer.vdb.manifest.ModelElement;
import org.teiid.designer.vdb.manifest.VdbElement;
/**
*
*/
@SuppressWarnings( "javadoc" )
public class VdbUtilTest implements VdbConstants {
private File PRODUCT_VIEW_DYNAMIC_VDB = SmartTestDesignerSuite.getTestDataFile(getClass(), "dynamic_vdbs" + File.separator + "product-view-vdb.xml");
private File PORTVOLIO_DYNAMIC_VDB = SmartTestDesignerSuite.getTestDataFile(getClass(), "dynamic_vdbs" + File.separator + "portfolio-vdb.xml");
@Test
public void testGetVdbManifestWithXmlString() {
StringBuilder sb = new StringBuilder();
sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>");
sb.append("<vdb name=\"DynamicProducts\" version=\"1\">");
sb.append("<description>Product Dynamic VDB</description>");
sb.append("<property name=\"UseConnectorMetadata\" value=\"true\" />");
sb.append("<model name=\"ProductsMySQL_Dynamic\">");
sb.append("<source name=\"jdbc\" translator-name=\"mysql\" connection-jndi-name=\"java:/ProductsMySQL\"/>");
sb.append("</model>");
sb.append("<model name=\"ProductViews\" type=\"VIRTUAL\">");
sb.append("<metadata type=\"DDL\"><![CDATA[");
sb.append("CREATE VIEW PRODUCT_INFO (");
sb.append("ID string,");
sb.append("name string,");
sb.append("type string");
sb.append(") AS SELECT INSTR_ID AS ID, NAME, TYPE");
sb.append("FROM ProductsMySQL_Dynamic.PRODUCTS.PRODUCTDATA;");
sb.append("]]> </metadata>");
sb.append("</model>");
sb.append("<model name=\"ProductSummary\" type=\"VIRTUAL\">");
sb.append("<metadata type=\"DDL\"><![CDATA[");
sb.append("CREATE VIEW PRODUCT_INFO (");
sb.append("ID string,");
sb.append("name string,");
sb.append("type string");
sb.append(") AS SELECT INSTR_ID AS ID, NAME, TYPE");
sb.append("FROM ProductsMySQL_Dynamic.PRODUCTS.PRODUCTDATA;");
sb.append("]]> </metadata>");
sb.append("</model>");
sb.append("</vdb>");
try {
VdbElement element = VdbUtil.getVdbManifest(sb.toString());
assertEquals(3, element.getModels().size());
MetadataElement viewModelMetadata = element.getModels().get(2).getMetadata().get(0);
assertNotNull(viewModelMetadata);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Test
public void testGetVdbManifestWithDynamicVdbFile_1() {
try {
VdbElement element = VdbUtil.getVdbManifest(PRODUCT_VIEW_DYNAMIC_VDB);
assertEquals(3, element.getModels().size());
MetadataElement viewModelMetadata = element.getModels().get(2).getMetadata().get(0);
assertNotNull(viewModelMetadata);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Test
public void testGetVdbManifestWithDynamicVdbFile_2() {
try {
VdbElement element = VdbUtil.getVdbManifest(PORTVOLIO_DYNAMIC_VDB);
assertEquals(5, element.getModels().size());
MetadataElement viewModelMetadata = element.getModels().get(2).getMetadata().get(0);
assertNotNull(viewModelMetadata);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}