/* * 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.framework.TestCase; import org.eclipse.core.resources.IResource; import org.teiid.core.util.SmartTestDesignerSuite; /** */ public class TestDotProjectUtil extends TestCase { private IResource buildMockResourceFromTestData( final File file ) { if (file.isDirectory()) { final MockContainer container = new MockContainer(); final File[] files = file.listFiles(); if (files != null && files.length > 0) for (final File file2 : files) { final IResource resource = buildMockResourceFromTestData(file2); container.addResource(resource); } return container; } final MockFileResource resource = new MockFileResource(file); return resource; } public void testGetDotProjectCountFromFiles() throws Exception { assertEquals("The wrong .project count was found.", 0, DotProjectUtils.getDotProjectCount(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/nodotproject"), true, false)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 1, DotProjectUtils.getDotProjectCount(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/modelerdotproject"), true, false)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 1, DotProjectUtils.getDotProjectCount(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/simpleproject"), true, false)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 1, DotProjectUtils.getDotProjectCount(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/modelerdotproject"), true, true)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 0, DotProjectUtils.getDotProjectCount(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/simpleproject"), true, true)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 2, DotProjectUtils.getDotProjectCount(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/nestedsimpleproject"), true, false)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 0, DotProjectUtils.getDotProjectCount(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/nestedsimpleproject"), true, true)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 2, DotProjectUtils.getDotProjectCount(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/nestedmodelerproject"), true, false)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 2, DotProjectUtils.getDotProjectCount(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/nestedmodelerproject"), true, true)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 2, DotProjectUtils.getDotProjectCount(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/nestedcompound"), true, false)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 1, DotProjectUtils.getDotProjectCount(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/nestedcompound"), true, true)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 1, DotProjectUtils.getDotProjectCount(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/nestedsimpleproject"), false, false)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 0, DotProjectUtils.getDotProjectCount(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/nestedsimpleproject"), false, true)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 1, DotProjectUtils.getDotProjectCount(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/nestedmodelerproject"), false, false)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 1, DotProjectUtils.getDotProjectCount(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/nestedmodelerproject"), false, true)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 1, DotProjectUtils.getDotProjectCount(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/nestedcompound"), false, false)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 0, DotProjectUtils.getDotProjectCount(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/nestedcompound"), false, true)); //$NON-NLS-1$ //$NON-NLS-2$ // Test that multiple nested compounds return 2 even if more than 2 dot projects exist. // This tests fail fast. assertEquals("The wrong .project count was found.", 1, DotProjectUtils.getDotProjectCount(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/multiplenestedcompound"), false, false)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 0, DotProjectUtils.getDotProjectCount(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/multiplenestedcompound"), false, true)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 2, DotProjectUtils.getDotProjectCount(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/multiplenestedcompound"), true, false)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 2, DotProjectUtils.getDotProjectCount(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/multiplenestedcompound"), true, true)); //$NON-NLS-1$ //$NON-NLS-2$ } public void testGetDotProjectCountFromResource() throws Exception { assertEquals("The wrong .project count was found.", 0, DotProjectUtils.getDotProjectCount(buildMockResourceFromTestData(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/nodotproject")), true, false)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 1, DotProjectUtils.getDotProjectCount(buildMockResourceFromTestData(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/modelerdotproject")), true, false)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 1, DotProjectUtils.getDotProjectCount(buildMockResourceFromTestData(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/simpleproject")), true, false)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 1, DotProjectUtils.getDotProjectCount(buildMockResourceFromTestData(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/modelerdotproject")), true, true)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 0, DotProjectUtils.getDotProjectCount(buildMockResourceFromTestData(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/simpleproject")), true, true)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 2, DotProjectUtils.getDotProjectCount(buildMockResourceFromTestData(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/nestedsimpleproject")), true, false)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 0, DotProjectUtils.getDotProjectCount(buildMockResourceFromTestData(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/nestedsimpleproject")), true, true)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 2, DotProjectUtils.getDotProjectCount(buildMockResourceFromTestData(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/nestedmodelerproject")), true, false)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 2, DotProjectUtils.getDotProjectCount(buildMockResourceFromTestData(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/nestedmodelerproject")), true, true)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 2, DotProjectUtils.getDotProjectCount(buildMockResourceFromTestData(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/nestedcompound")), true, false)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 1, DotProjectUtils.getDotProjectCount(buildMockResourceFromTestData(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/nestedcompound")), true, true)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 1, DotProjectUtils.getDotProjectCount(buildMockResourceFromTestData(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/nestedsimpleproject")), false, false)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 0, DotProjectUtils.getDotProjectCount(buildMockResourceFromTestData(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/nestedsimpleproject")), false, true)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 1, DotProjectUtils.getDotProjectCount(buildMockResourceFromTestData(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/nestedmodelerproject")), false, false)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 1, DotProjectUtils.getDotProjectCount(buildMockResourceFromTestData(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/nestedmodelerproject")), false, true)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 1, DotProjectUtils.getDotProjectCount(buildMockResourceFromTestData(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/nestedcompound")), false, false)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 0, DotProjectUtils.getDotProjectCount(buildMockResourceFromTestData(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/nestedcompound")), false, true)); //$NON-NLS-1$ //$NON-NLS-2$ // Test that multiple nested compounds return 2 even if more than 2 dot projects exist. // This tests fail fast. assertEquals("The wrong .project count was found.", 1, DotProjectUtils.getDotProjectCount(buildMockResourceFromTestData(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/multiplenestedcompound")), false, false)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 0, DotProjectUtils.getDotProjectCount(buildMockResourceFromTestData(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/multiplenestedcompound")), false, true)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 2, DotProjectUtils.getDotProjectCount(buildMockResourceFromTestData(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/multiplenestedcompound")), true, false)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 2, DotProjectUtils.getDotProjectCount(buildMockResourceFromTestData(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/multiplenestedcompound")), true, true)); //$NON-NLS-1$ //$NON-NLS-2$ // Test with files assertEquals("The wrong .project count was found.", 1, DotProjectUtils.getDotProjectCount(buildMockResourceFromTestData(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/simpleproject/.project")), false, false)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 0, DotProjectUtils.getDotProjectCount(buildMockResourceFromTestData(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/simpleproject/.project")), false, true)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 1, DotProjectUtils.getDotProjectCount(buildMockResourceFromTestData(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/simpleproject/.project")), true, false)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 0, DotProjectUtils.getDotProjectCount(buildMockResourceFromTestData(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/simpleproject/.project")), true, true)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 1, DotProjectUtils.getDotProjectCount(buildMockResourceFromTestData(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/modelerdotproject/.project")), false, false)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 1, DotProjectUtils.getDotProjectCount(buildMockResourceFromTestData(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/modelerdotproject/.project")), false, true)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 1, DotProjectUtils.getDotProjectCount(buildMockResourceFromTestData(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/modelerdotproject/.project")), true, false)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 1, DotProjectUtils.getDotProjectCount(buildMockResourceFromTestData(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/modelerdotproject/.project")), true, true)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 0, DotProjectUtils.getDotProjectCount(buildMockResourceFromTestData(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/modelerdotproject/Books.xsd")), false, false)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 0, DotProjectUtils.getDotProjectCount(buildMockResourceFromTestData(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/modelerdotproject/Books.xsd")), false, true)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 0, DotProjectUtils.getDotProjectCount(buildMockResourceFromTestData(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/modelerdotproject/Books.xsd")), true, false)); //$NON-NLS-1$ //$NON-NLS-2$ assertEquals("The wrong .project count was found.", 0, DotProjectUtils.getDotProjectCount(buildMockResourceFromTestData(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/modelerdotproject/Books.xsd")), true, true)); //$NON-NLS-1$ //$NON-NLS-2$ // Test Nature final MockFileResource fileResource = (MockFileResource)buildMockResourceFromTestData(SmartTestDesignerSuite.getTestDataFile(getClass(), "/dotProjectFiles/modelerdotproject/.project")); //$NON-NLS-1$ fileResource.setAccessible(true); fileResource.setModelNature(false); assertEquals("The wrong .project count was found.", 1, DotProjectUtils.getDotProjectCount(fileResource, false, false)); //$NON-NLS-1$ // Test change since the model nature setter above makes it a non-modelling project assertEquals("The wrong .project count was found.", 0, DotProjectUtils.getDotProjectCount(fileResource, false, true)); //$NON-NLS-1$ fileResource.setModelNature(true); assertEquals("The wrong .project count was found.", 1, DotProjectUtils.getDotProjectCount(fileResource, false, false)); //$NON-NLS-1$ assertEquals("The wrong .project count was found.", 1, DotProjectUtils.getDotProjectCount(fileResource, false, true)); //$NON-NLS-1$ } }