/******************************************************************************* * Copyright (c) 2010 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.cdi.core.test.tck.validation; import java.io.IOException; import java.text.MessageFormat; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.Path; import org.jboss.tools.cdi.core.CDICorePlugin; import org.jboss.tools.cdi.core.ICDIProject; import org.jboss.tools.cdi.internal.core.validation.CDIValidationMessages; import org.jboss.tools.common.base.test.validation.TestUtil; import org.jboss.tools.test.util.JobUtils; import org.jboss.tools.test.util.ResourcesUtils; import org.jboss.tools.tests.AbstractResourceMarkerTest; /** * @author Alexey Kazakov */ public class DependentProjectValidationTest extends ValidationTest { protected static String PLUGIN_ID = "org.jboss.tools.cdi.core.test"; IProject project1 = null; IProject project2 = null; IProject project3 = null; IProject project4 = null; IProject project5 = null; public void setUp() throws Exception { project1 = ResourcesUtils.importProject(PLUGIN_ID, "/projects/CDITest1"); TestUtil._waitForValidation(project1); project2 = ResourcesUtils.importProject(PLUGIN_ID, "/projects/CDITest2"); TestUtil._waitForValidation(project2); project3 = ResourcesUtils.importProject(PLUGIN_ID, "/projects/CDITest3"); TestUtil._waitForValidation(project3); project4 = ResourcesUtils.importProject(PLUGIN_ID, "/projects/CDITest4"); TestUtil._waitForValidation(project4); project5 = ResourcesUtils.importProject(PLUGIN_ID, "/projects/CDITest5"); TestUtil._waitForValidation(project5); } int getVersionIndex(IProject p) { ICDIProject cdi = CDICorePlugin.getCDIProject(p, true); return cdi == null ? 0 : cdi.getVersion().getIndex(); } /** * https://issues.jboss.org/browse/JBIDE-7946 */ public void testDependentProjects() throws CoreException, IOException { boolean saveAutoBuild = ResourcesUtils.setBuildAutomatically(false); IFile testBean3 = project3.getFile("src/cdi/test3/TestBean3.java"); AbstractResourceMarkerTest.assertMarkerIsNotCreated(testBean3, MessageFormat.format(CDIValidationMessages.UNPROXYABLE_BEAN_PRIMITIVE_TYPE[getVersionIndex(project3)], "boolean", "TestBean3.foo()"), 10); IFile testBean4 = project4.getFile("src/cdi/test4/TestBean4.java"); AbstractResourceMarkerTest.assertMarkerIsNotCreated(testBean4, MessageFormat.format(CDIValidationMessages.UNPROXYABLE_BEAN_PRIMITIVE_TYPE[getVersionIndex(project4)], "int", "TestBean4.foo()"), 10); IFile testBean5 = project5.getFile("src/cdi/test5/TestBean5.java"); AbstractResourceMarkerTest.assertMarkerIsNotCreated(testBean5, MessageFormat.format(CDIValidationMessages.UNPROXYABLE_BEAN_PRIMITIVE_TYPE[getVersionIndex(project5)], "boolean", "TestBean5.foo()"), 10); IFile scope = project2.getFile(new Path("src/test/TestScope.java")); IFile normalScope = project2.getFile(new Path("src/test/TestNormalScope.validation")); scope.setContents(normalScope.getContents(), IFile.FORCE, new NullProgressMonitor()); TestUtil.validate(scope); AbstractResourceMarkerTest.assertMarkerIsCreated(testBean3, MessageFormat.format(CDIValidationMessages.UNPROXYABLE_BEAN_PRIMITIVE_TYPE[getVersionIndex(project3)], "boolean", "TestBean3.foo()"), 10); AbstractResourceMarkerTest.assertMarkerIsCreated(testBean4, MessageFormat.format(CDIValidationMessages.UNPROXYABLE_BEAN_PRIMITIVE_TYPE[getVersionIndex(project4)], "int", "TestBean4.foo()"), 10); AbstractResourceMarkerTest.assertMarkerIsCreated(testBean5, MessageFormat.format(CDIValidationMessages.UNPROXYABLE_BEAN_PRIMITIVE_TYPE[getVersionIndex(project5)], "boolean", "TestBean5.foo()"), 10); normalScope = project2.getFile(new Path("src/test/TestScope.java")); scope = project2.getFile(new Path("src/test/TestScope.validation")); normalScope.setContents(scope.getContents(), IFile.FORCE, new NullProgressMonitor()); TestUtil.validate(normalScope); AbstractResourceMarkerTest.assertMarkerIsNotCreated(testBean3, MessageFormat.format(CDIValidationMessages.UNPROXYABLE_BEAN_PRIMITIVE_TYPE[getVersionIndex(project3)], "boolean", "TestBean3.foo()"), 10); AbstractResourceMarkerTest.assertMarkerIsNotCreated(testBean4, MessageFormat.format(CDIValidationMessages.UNPROXYABLE_BEAN_PRIMITIVE_TYPE[getVersionIndex(project4)], "int", "TestBean4.foo()"), 10); AbstractResourceMarkerTest.assertMarkerIsNotCreated(testBean5, MessageFormat.format(CDIValidationMessages.UNPROXYABLE_BEAN_PRIMITIVE_TYPE[getVersionIndex(project5)], "boolean", "TestBean5.foo()"), 10); ResourcesUtils.setBuildAutomatically(saveAutoBuild); } public void tearDown() throws Exception { boolean saveAutoBuild = ResourcesUtils.setBuildAutomatically(false); project1.delete(true, true, null); project2.delete(true, true, null); project3.delete(true, true, null); project4.delete(true, true, null); project5.delete(true, true, null); JobUtils.waitForIdle(); ResourcesUtils.setBuildAutomatically(saveAutoBuild); } }