/* * 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.sdt; import java.io.File; import java.util.Iterator; import java.util.List; import junit.extensions.TestSetup; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.resource.ResourceSet; import org.eclipse.xsd.XSDSchema; import org.eclipse.xsd.XSDSimpleTypeDefinition; import org.eclipse.xsd.impl.XSDPackageImpl; import org.eclipse.xsd.impl.XSDSchemaImpl; import org.eclipse.xsd.util.XSDConstants; import org.eclipse.xsd.util.XSDResourceImpl; import org.teiid.designer.core.types.DatatypeConstants; import org.teiid.designer.sdt.ModelerSdtPlugin; /** * @since 4.3 */ public class TestModelerSdtPlugin extends TestCase { // ------------------------------------------------- // Variables initialized during one-time startup ... // ------------------------------------------------- // --------------------------------------- // Variables initialized for each test ... // --------------------------------------- // ========================================================================= // F R A M E W O R K // ========================================================================= /** * Constructor for TestDefaultEObjectFinder. * @param name */ public TestModelerSdtPlugin(String name) { super(name); } // ========================================================================= // T E S T C O N T R O L // ========================================================================= /** * Construct the test suite, which uses a one-time setup call * and a one-time tear-down call. */ public static Test suite() { TestSuite suite = new TestSuite("TestModelerSdtPlugin"); //$NON-NLS-1$ suite.addTest(new TestModelerSdtPlugin("testNothing")); //$NON-NLS-1$ //suite.addTestSuite(TestModelerSdtPlugin.class); return new TestSetup(suite) { // junit.extensions package // One-time setup and teardown @Override public void setUp() throws Exception { oneTimeSetUp(); } @Override public void tearDown() { oneTimeTearDown(); } }; } // ========================================================================= // M A I N // ========================================================================= public static void main(String args[]) { junit.textui.TestRunner.run(suite()); System.exit(0); } // ========================================================================= // S E T U P A N D T E A R D O W N // ========================================================================= public static void oneTimeSetUp() { // Ensure that the metamodels are initialized XSDPackageImpl.init(); // Ensure that the XSD global resources are initialized XSDSchemaImpl.getMagicSchemaForSchema(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001); XSDSchemaImpl.getSchemaForSchema(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001); XSDSchemaImpl.getSchemaInstance(XSDConstants.SCHEMA_INSTANCE_URI_2001); } public static void oneTimeTearDown() { } @Override protected void setUp() throws Exception { } @Override protected void tearDown() throws Exception { } // ========================================================================= // H E L P E R M E T H O D S // ========================================================================= // ========================================================================= // T E S T C A S E S // ========================================================================= public void testNothing() { // placeholder until I can get the ModelerSdtPlugin.getBuiltInTypesResource() // method to work in the nightly test environment. I do not have to comment // out all the test methods. } public void testGetDefault() { assertNotNull(ModelerSdtPlugin.getDefault()); } public void testGetBaseUrl() { System.out.println(ModelerSdtPlugin.getDefault().getBaseURL()); assertNotNull(ModelerSdtPlugin.getDefault().getBaseURL()); } public void testBuiltInResourceFileExists() { String baseURL = ModelerSdtPlugin.getDefault().getBaseURL().toString(); URI uri = URI.createURI(baseURL + "cache/www.metamatrix.com/metamodels/builtInDataTypes.xsd"); //$NON-NLS-1$ File f = new File(uri.toFileString()); assertTrue(f.exists()); } public void testGetBuiltInTypesResource() { XSDResourceImpl xsdResource = (XSDResourceImpl)ModelerSdtPlugin.getBuiltInTypesResource(); assertNotNull(xsdResource); XSDSchema schema = xsdResource.getSchema(); List contents = schema.eContents(); assertNotNull(contents); assertEquals(52,contents.size()); for (Iterator iter = contents.iterator(); iter.hasNext();) { assertTrue(iter.next() instanceof XSDSimpleTypeDefinition); } } public void testGetGlobalResourceSet() { ResourceSet rs = ModelerSdtPlugin.getGlobalResourceSet(); assertNotNull(rs); assertEquals(1,rs.getResources().size()); assertEquals(ModelerSdtPlugin.getBuiltInTypesResource(),rs.getResources().get(0)); } public void testGetBuiltInTypesResourceByLogicalUri() { ResourceSet rs = ModelerSdtPlugin.getGlobalResourceSet(); assertNotNull(rs); assertEquals(1,rs.getResources().size()); URI logicalURI = URI.createURI(DatatypeConstants.BUILTIN_DATATYPES_URI); assertNotNull(rs.getResource(logicalURI, false)); assertTrue(rs.getResource(logicalURI, false).isLoaded()); } }