blob: c5a05caede56a005c574a56a0985e365dccd0386 [file] [log] [blame]
/*
* Created on Jan 5, 2004
*
* To change the template for this generated file go to
* Window - Preferences - Java - Code Generation - Code and Comments
*/
package org.eclipse.wtp.j2ee.headless.tets.ear.verifiers;
import java.util.List;
import junit.framework.Assert;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject;
import org.eclipse.jst.j2ee.earcreation.IEarFacetInstallDataModelProperties;
import org.eclipse.jst.j2ee.internal.J2EEConstants;
import org.eclipse.jst.j2ee.internal.J2EEVersionConstants;
import org.eclipse.jst.j2ee.internal.project.J2EEProjectUtilities;
import org.eclipse.jst.javaee.application.Application;
import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetProjectCreationDataModelProperties;
import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetProjectCreationDataModelProperties.FacetDataModelMap;
import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
import org.eclipse.wtp.j2ee.headless.tests.j2ee.verifiers.JEEProjectCreationDataModelVerifier;
/**
* @author Administrator
*
* To change the template for this generated type comment go to
* Window - Preferences - Java - Code Generation - Code and Comments
*/
public class EARProjectCreationDataModelVerifier extends JEEProjectCreationDataModelVerifier {
@Override
public void verify(IDataModel model) throws Exception {
super.verify(model);
this.verifyContentDir();
this.verifyProjectDependencies();
}
@Override
protected void setFacetProjectType() {
this.facetProjectType = J2EEProjectUtilities.ENTERPRISE_APPLICATION;
}
@Override
protected IFile getDDFile() {
return component.getRootFolder().getFile(J2EEConstants.APPLICATION_DD_URI).getUnderlyingFile();
}
@Override
protected void verifyDD(Object modelObj) {
String version = J2EEProjectUtilities.getJ2EEProjectVersion(project);
if(version.equals(J2EEVersionConstants.VERSION_5_0_TEXT)){
Application ear = (Application)modelObj;
Assert.assertEquals("Invalid project version", J2EEVersionConstants.VERSION_5_TEXT, ear.getVersion());
} else if(version.equals(J2EEVersionConstants.VERSION_6_0_TEXT)){
Application ear = (Application)modelObj;
Assert.assertEquals("Invalid project version", J2EEVersionConstants.VERSION_6_TEXT, ear.getVersion());
} else {
org.eclipse.jst.j2ee.application.Application ear = (org.eclipse.jst.j2ee.application.Application)modelObj;
Assert.assertEquals("Invalid project version", version, ear.getVersion());
}
}
private void verifyContentDir() {
FacetDataModelMap factMap = (FacetDataModelMap) model.getProperty(IFacetProjectCreationDataModelProperties.FACET_DM_MAP);
IDataModel earModel = (IDataModel) factMap.get(IEarFacetInstallDataModelProperties.ENTERPRISE_APPLICATION);
String contentDir = earModel.getStringProperty(IEarFacetInstallDataModelProperties.CONTENT_DIR);
IFolder contentFolder = project.getFolder(contentDir);
Assert.assertTrue("Content directory should exist", contentFolder.exists());
}
private void verifyProjectDependencies()throws Exception {
FacetDataModelMap factMap = (FacetDataModelMap) model.getProperty(IFacetProjectCreationDataModelProperties.FACET_DM_MAP);
IDataModel earModel = (IDataModel) factMap.get(IEarFacetInstallDataModelProperties.ENTERPRISE_APPLICATION);
List j2eeDependencies = (List)earModel.getProperty(IEarFacetInstallDataModelProperties.J2EE_PROJECTS_LIST);
List javaDependencies = (List)earModel.getProperty(IEarFacetInstallDataModelProperties.JAVA_PROJECT_LIST);
IProject[] referencedProjs = project.getReferencedProjects();
boolean foundDependency = false;
IProject dependencyProj = null;
//be sure this EAR has a referenced project for each J2EE dependency
if(j2eeDependencies != null) {
for(int i = 0; i < j2eeDependencies.size(); i++) {
dependencyProj = (IProject)j2eeDependencies.get(i);
for(int j = 0; j < referencedProjs.length && !foundDependency; j++) {
foundDependency = (dependencyProj == referencedProjs[j]);
}
Assert.assertTrue("EAR should have a referenced project " + dependencyProj.getName(), foundDependency);
}
}
//be sure this EAR has a referenced project for each Java dependency
if(javaDependencies != null) {
for(int i = 0; i < javaDependencies.size(); i++) {
dependencyProj = (IProject)javaDependencies.get(i);
for(int j = 0; j < referencedProjs.length && !foundDependency; j++) {
foundDependency = (dependencyProj == referencedProjs[j]);
}
Assert.assertTrue("EAR should have a referenced project " + dependencyProj.getName(), foundDependency);
}
}
}
}