/* * 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.core.workspace; import java.io.File; import junit.extensions.TestSetup; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.Path; import org.teiid.core.util.SmartTestDesignerSuite; import org.teiid.designer.common.xmi.XMIHeader; /** * TestModelUtil */ public class TestModelUtil extends TestCase { /** * Test suite, with one-time setup. */ public static Test suite() { final TestSuite suite = new TestSuite("TestModelUtil"); //$NON-NLS-1$ suite.addTestSuite(TestModelUtil.class); // One-time setup and teardown return new TestSetup(suite) { @Override public void setUp() { // do nothing } @Override public void tearDown() { // do nothing } }; } /** * Constructor for TestModelUtil. * * @param name */ public TestModelUtil( final String name ) { super(name); } public void testAlmostEmptyModelFileNameWithAllCapsXMLExtension() { assertTrue(false == ModelUtil.isValidModelFileName(".XML")); //$NON-NLS-1$ } public void testAlmostEmptyModelFileNameWithWrongExtension() { assertTrue(false == ModelUtil.isValidModelFileName(".xyz")); //$NON-NLS-1$ } public void testAlmostEmptyModelFileNameWithXMLExtension() { assertTrue(true == ModelUtil.isValidModelFileName(".xml")); //$NON-NLS-1$ } public void testGetFileExtensionForFileWithExtension() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "testFileWithExtension.abc"); //$NON-NLS-1$ assertEquals("abc", ModelUtil.getFileExtension(f)); //$NON-NLS-1$ } public void testGetFileExtensionForFileWithNoExtension() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "testFileWithNoExtension"); //$NON-NLS-1$ assertEquals("", ModelUtil.getFileExtension(f)); //$NON-NLS-1$ } public void testGetFileExtensionForFileWithNoExtension2() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "testFileWithNoExtension."); //$NON-NLS-1$ assertEquals("", ModelUtil.getFileExtension(f)); //$NON-NLS-1$ } public void testGetRelativePath() { IPath s = new Path("/a/b/c/x.xsd");//$NON-NLS-1$ IPath b = new Path("/a/b");//$NON-NLS-1$ assertEquals("c/x.xsd", ModelUtil.getRelativePath(s, b));//$NON-NLS-1$ s = new Path("/a/b/c/x.xsd");//$NON-NLS-1$ b = new Path("/a/b/y.xsd");//$NON-NLS-1$ assertEquals("c/x.xsd", ModelUtil.getRelativePath(s, b));//$NON-NLS-1$ s = new Path("/a/b/x.xsd");//$NON-NLS-1$ b = new Path("/a/b/c/y.xsd");//$NON-NLS-1$ assertEquals("../x.xsd", ModelUtil.getRelativePath(s, b));//$NON-NLS-1$ s = new Path("/a/b/x.xsd");//$NON-NLS-1$ b = new Path("/a/b/c");//$NON-NLS-1$ assertEquals("../x.xsd", ModelUtil.getRelativePath(s, b));//$NON-NLS-1$ s = new Path("/a/b/x.xsd");//$NON-NLS-1$ b = new Path("a/b/c");//$NON-NLS-1$ assertEquals("../x.xsd", ModelUtil.getRelativePath(s, b));//$NON-NLS-1$ s = new Path("/a/b/x.xsd");//$NON-NLS-1$ b = new Path("/b/c");//$NON-NLS-1$ assertEquals("../../a/b/x.xsd", ModelUtil.getRelativePath(s, b));//$NON-NLS-1$ s = new Path("a/b/c/x.xsd");//$NON-NLS-1$ b = new Path("a/b/y.xsd");//$NON-NLS-1$ assertEquals("c/x.xsd", ModelUtil.getRelativePath(s, b));//$NON-NLS-1$ s = new Path("/a/b/c/x.xsd");//$NON-NLS-1$ b = new Path("/a/b/d/y.xsd");//$NON-NLS-1$ assertEquals("../c/x.xsd", ModelUtil.getRelativePath(s, b));//$NON-NLS-1$ } // Currently only works when run inside Eclipse environment ... // public void testModelFileNameWithInvalidCharacters() { // assertTrue( false == ModelUtil.isValidModelFileName("Model / file with invalid ? characters.xml") ); //$NON-NLS-1$ // } public void testGetXmiHeaderWith0200File() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "partsSupplierOracle_v0200.xml"); //$NON-NLS-1$ final XMIHeader header = ModelFileUtil.getXmiHeader(f); assertTrue(null != header); assertTrue(header.getXmiVersion().startsWith("1.")); //$NON-NLS-1$ assertTrue(null == header.getUUID()); } public void testGetXmiHeaderWith0300File() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "VirtualNorthwind.xml"); //$NON-NLS-1$ final XMIHeader header = ModelFileUtil.getXmiHeader(f); assertTrue(null != header); assertTrue(header.getXmiVersion().startsWith("1.")); //$NON-NLS-1$ assertTrue(null == header.getUUID()); } public void testGetXmiHeaderWithEmptyModelFile() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "emptyModel.xmi"); //$NON-NLS-1$ final XMIHeader header = ModelFileUtil.getXmiHeader(f); assertTrue(null != header); assertTrue(header.getXmiVersion().startsWith("2.")); //$NON-NLS-1$ assertTrue(null != header.getUUID()); } public void testGetXmiHeaderWithMsWordFile() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "sampleMSWord.doc"); //$NON-NLS-1$ assertTrue(null == ModelFileUtil.getXmiHeader(f)); } public void testGetXmiHeaderWithNonEmptyModelFile() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "nonEmptyModel.xmi"); //$NON-NLS-1$ final XMIHeader header = ModelFileUtil.getXmiHeader(f); assertTrue(null != header); assertTrue(header.getXmiVersion().startsWith("2.")); //$NON-NLS-1$ assertTrue(null != header.getUUID()); } public void testGetXmiHeaderWithNonExistentFile() { assertTrue(null == ModelFileUtil.getXmiHeader(new File(""))); //$NON-NLS-1$ } public void testGetXmiHeaderWithNonModelFile() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "nonModelFile.txt"); //$NON-NLS-1$ assertTrue(null == ModelFileUtil.getXmiHeader(f)); } public void testGetXmiHeaderWithXsdFile() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "Books.xsd"); //$NON-NLS-1$ assertTrue(null != ModelFileUtil.getXmiHeader(f)); } public void testGetXmiHeaderWithZipFile() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "builtInDatatypes.zip"); //$NON-NLS-1$ assertTrue(null == ModelFileUtil.getXmiHeader(f)); } public void testGetXsdHeaderWithEmptyModelFile() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "emptyModel.xmi"); //$NON-NLS-1$ assertTrue(null == ModelUtil.getXsdHeader(f)); } public void testGetXsdHeaderWithMsWordFile() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "sampleMSWord.doc"); //$NON-NLS-1$ assertTrue(null == ModelUtil.getXsdHeader(f)); } public void testGetXsdHeaderWithNonEmptyModelFile() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "nonEmptyModel.xmi"); //$NON-NLS-1$ assertTrue(null == ModelUtil.getXsdHeader(f)); } public void testGetXsdHeaderWithNonExistentFile() { assertTrue(null == ModelUtil.getXsdHeader(new File(""))); //$NON-NLS-1$ } public void testGetXsdHeaderWithNonModelFile() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "nonModelFile.txt"); //$NON-NLS-1$ assertTrue(null == ModelUtil.getXsdHeader(f)); } public void testGetXsdHeaderWithVdbArchive() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "PartSupplierVirtual.vdb"); //$NON-NLS-1$ assertTrue(null == ModelUtil.getXsdHeader(f)); } public void testGetXsdHeaderWithXsdFile() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "Books.xsd"); //$NON-NLS-1$ assertTrue(null != ModelUtil.getXsdHeader(f)); } public void testGetXsdHeaderWithZipFile() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "builtInDatatypes.zip"); //$NON-NLS-1$ assertTrue(null == ModelUtil.getXsdHeader(f)); } public void testIsModelFileWith0200File() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "partsSupplierOracle_v0200.xml"); //$NON-NLS-1$ assertTrue(false == ModelFileUtil.isModelFile(f)); } public void testIsModelFileWith0300File() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "VirtualNorthwind.xml"); //$NON-NLS-1$ assertTrue(false == ModelFileUtil.isModelFile(f)); } public void testIsModelFileWithEmptyModelFile() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "emptyModel.xmi"); //$NON-NLS-1$ assertTrue(true == ModelFileUtil.isModelFile(f)); } public void testIsModelFileWithMsWordFile() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "sampleMSWord.doc"); //$NON-NLS-1$ assertTrue(false == ModelFileUtil.isModelFile(f)); } public void testIsModelFileWithNonEmptyModelFile() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "nonEmptyModel.xmi"); //$NON-NLS-1$ assertTrue(true == ModelFileUtil.isModelFile(f)); } public void testIsModelFileWithNonExistentFile() { assertTrue(false == ModelFileUtil.isModelFile(new File(""))); //$NON-NLS-1$ } public void testIsModelFileWithNonModelFile() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "nonModelFile.txt"); //$NON-NLS-1$ assertTrue(false == ModelFileUtil.isModelFile(f)); } public void testIsModelFileWithVdbArchive() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "PartSupplierVirtual.vdb"); //$NON-NLS-1$ assertTrue(false == ModelFileUtil.isModelFile(f)); } public void testIsModelFileWithXmiFile() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "PartSupplier_Oracle.xmi"); //$NON-NLS-1$ assertTrue(true == ModelFileUtil.isModelFile(f)); } public void testIsModelFileWithXmiFileAndMixedCaseExtension() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "PartSupplier_Oracle.xMI"); //$NON-NLS-1$ assertTrue(false == ModelFileUtil.isModelFile(f)); } public void testIsModelFileWithXmiFileAndUpperCaseExtension() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "PartSupplier_Oracle.XMI"); //$NON-NLS-1$ assertTrue(false == ModelFileUtil.isModelFile(f)); } public void testIsModelFileWithXsdFile() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "Books.xsd"); //$NON-NLS-1$ assertTrue(true == ModelFileUtil.isModelFile(f)); } public void testIsModelFileWithZipFile() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "builtInDatatypes.zip"); //$NON-NLS-1$ assertTrue(false == ModelFileUtil.isModelFile(f)); } public void testIsVdbArchiveFileWithNonExistentFile() { assertTrue(false == ModelFileUtil.isVdbArchiveFile(new File(""))); //$NON-NLS-1$ } public void testIsVdbArchiveFileWithNonVdbFile() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "builtInDatatypes.zip"); //$NON-NLS-1$ assertTrue(false == ModelFileUtil.isVdbArchiveFile(f)); } public void testIsVdbArchiveFileWithVdbFile() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "PartSupplierVirtual.vdb"); //$NON-NLS-1$ assertTrue(true == ModelFileUtil.isVdbArchiveFile(f)); } public void testIsVdbArchiveFileWithVdbFileAndMixedCaseExtension() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "PartSupplierVirtual.vDb"); //$NON-NLS-1$ assertTrue(false == ModelFileUtil.isVdbArchiveFile(f)); } public void testIsVdbArchiveFileWithVdbFileAndUpperCaseExtension() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "PartSupplierVirtual.VDB"); //$NON-NLS-1$ assertTrue(false == ModelFileUtil.isVdbArchiveFile(f)); } public void testIsXmiFileWith0200File() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "partsSupplierOracle_v0200.xml"); //$NON-NLS-1$ assertTrue(false == ModelUtil.isXmiFile(f)); } public void testIsXmiFileWith0300File() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "VirtualNorthwind.xml"); //$NON-NLS-1$ assertTrue(false == ModelUtil.isXmiFile(f)); } public void testIsXmiFileWithEmptyModelFile() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "emptyModel.xmi"); //$NON-NLS-1$ assertTrue(true == ModelUtil.isXmiFile(f)); } public void testIsXmiFileWithMsWordFile() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "sampleMSWord.doc"); //$NON-NLS-1$ assertTrue(false == ModelUtil.isXmiFile(f)); } public void testIsXmiFileWithNonEmptyModelFile() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "nonEmptyModel.xmi"); //$NON-NLS-1$ assertTrue(true == ModelUtil.isXmiFile(f)); } public void testIsXmiFileWithNonExistentFile() { assertTrue(false == ModelUtil.isXmiFile(new File(""))); //$NON-NLS-1$ } public void testIsXmiFileWithNonModelFile() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "nonModelFile.txt"); //$NON-NLS-1$ assertTrue(false == ModelUtil.isXmiFile(f)); } public void testIsXmiFileWithVdbArchive() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "PartSupplierVirtual.vdb"); //$NON-NLS-1$ assertTrue(false == ModelUtil.isXmiFile(f)); } public void testIsXmiFileWithXmiFile() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "PartSupplier_Oracle.xmi"); //$NON-NLS-1$ assertTrue(true == ModelUtil.isXmiFile(f)); } public void testIsXmiFileWithXmiFileAndMixedCaseExtension() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "PartSupplier_Oracle.xMI"); //$NON-NLS-1$ assertTrue(false == ModelUtil.isXmiFile(f)); } public void testIsXmiFileWithXmiFileAndUpperCaseExtension() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "PartSupplier_Oracle.XMI"); //$NON-NLS-1$ assertTrue(false == ModelUtil.isXmiFile(f)); } public void testIsXmiFileWithXsdFile() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "Books.xsd"); //$NON-NLS-1$ assertTrue(false == ModelUtil.isXmiFile(f)); } public void testIsXmiFileWithZipFile() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "builtInDatatypes.zip"); //$NON-NLS-1$ assertTrue(false == ModelUtil.isXmiFile(f)); } public void testIsXsdFileWithNonExistentFile() { assertTrue(false == ModelFileUtil.isXsdFile(new File(""))); //$NON-NLS-1$ } public void testIsXsdFileWithNonXsdFile() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "nonModelFile.txt"); //$NON-NLS-1$ assertTrue(false == ModelFileUtil.isXsdFile(f)); } public void testIsXsdFileWithXsdFile() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "Books.xsd"); //$NON-NLS-1$ assertTrue(true == ModelFileUtil.isXsdFile(f)); } public void testIsXsdFileWithXsdFileAndMixedCaseExtension() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "Books.xsD"); //$NON-NLS-1$ assertTrue(false == ModelFileUtil.isXsdFile(f)); } public void testIsXsdFileWithXsdFileAndUpperCaseExtension() { final File f = SmartTestDesignerSuite.getTestDataFile(getClass(), "Books.XSD"); //$NON-NLS-1$ assertTrue(false == ModelFileUtil.isXsdFile(f)); } public void testModelFileNameWithAllCapsVDBExtension() { assertTrue(false == ModelUtil.isValidModelFileName("SomeModel.VDB")); //$NON-NLS-1$ } public void testModelFileNameWithAllCapsXMIExtension() { assertTrue(false == ModelUtil.isValidModelFileName("SomeModel.XMI")); //$NON-NLS-1$ } public void testModelFileNameWithAllCapsXMLExtension() { assertTrue(false == ModelUtil.isValidModelFileName("SomeModel.XML")); //$NON-NLS-1$ } public void testModelFileNameWithAllCapsXSDExtension() { assertTrue(false == ModelUtil.isValidModelFileName("SomeModel.XSD")); //$NON-NLS-1$ } public void testModelFileNameWithMixedCaseXMIExtension() { assertTrue(false == ModelUtil.isValidModelFileName("SomeModel.xMi")); //$NON-NLS-1$ } public void testModelFileNameWithMixedCaseXSDExtension() { assertTrue(false == ModelUtil.isValidModelFileName("SomeModel.xSd")); //$NON-NLS-1$ } public void testModelFileNameWithVdbExtension() { assertTrue(false == ModelUtil.isValidModelFileName("SomeModel.vdb")); //$NON-NLS-1$ } public void testModelFileNameWithWrongExtension() { assertTrue(false == ModelUtil.isValidModelFileName("SomeModel.xyz")); //$NON-NLS-1$ } public void testModelFileNameWithXMLExtension() { assertTrue(true == ModelUtil.isValidModelFileName("SomeModel.xml")); //$NON-NLS-1$ } public void testNullModelFileName() { assertTrue(false == ModelUtil.isValidModelFileName(null)); } public void testNullPackageName() { assertTrue(false == ModelUtil.isValidFolderNameForPackage(null)); } public void testValidModelFileNameWithSpaces() { assertTrue(true == ModelUtil.isValidModelFileName("Model file with spaces.xml")); //$NON-NLS-1$ } public void testValidPackageName() { assertTrue(true == ModelUtil.isValidFolderNameForPackage("ThisIsAValidPackage")); //$NON-NLS-1$ } public void testValidPackageNameWithExtension() { assertTrue(true == ModelUtil.isValidFolderNameForPackage("This Is A Valid Package.txt")); //$NON-NLS-1$ } public void testValidPackageNameWithSpaces() { assertTrue(true == ModelUtil.isValidFolderNameForPackage("This Is A Valid Package")); //$NON-NLS-1$ } public void testValidPackageNameWithXMLExtension() { assertTrue(true == ModelUtil.isValidFolderNameForPackage("This Is A Valid Package.xml")); //$NON-NLS-1$ } public void testZeroLengthModelFileName() { assertTrue(false == ModelUtil.isValidModelFileName("")); //$NON-NLS-1$ } public void testZeroLengthPackageName() { assertTrue(false == ModelUtil.isValidFolderNameForPackage("")); //$NON-NLS-1$ } public void tstAlmostEmptyModelFileNameWithAllCapsMMMExtension() { assertTrue(false == ModelUtil.isValidModelFileName(".MMM")); //$NON-NLS-1$ } public void tstAlmostEmptyModelFileNameWithMMMExtension() { assertTrue(false == ModelUtil.isValidModelFileName(".mmm")); //$NON-NLS-1$ } public void tstModelFileNameWithAllCapsMMMExtension() { assertTrue(false == ModelUtil.isValidModelFileName("SomeModel.MMM")); //$NON-NLS-1$ } public void tstModelFileNameWithMMMExtension() { assertTrue(false == ModelUtil.isValidModelFileName("SomeModel.mmm")); //$NON-NLS-1$ } }