/*******************************************************************************
* Copyright (c) 2007-2012 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.jsf.test;
import java.util.ArrayList;
import java.util.List;
import junit.framework.TestCase;
import org.eclipse.core.resources.IProject;
import org.jboss.tools.common.model.XModel;
import org.jboss.tools.common.model.XModelObject;
import org.jboss.tools.common.model.filesystems.FileSystemsHelper;
import org.jboss.tools.common.model.project.IModelNature;
import org.jboss.tools.common.model.util.EclipseResourceUtil;
import org.jboss.tools.jsf.model.pv.JSFProjectsRoot;
import org.jboss.tools.jsf.model.pv.JSFProjectsTree;
import org.jboss.tools.test.util.ProjectImportTestSetup;
public class ModelFormat_2_0_0_Test extends TestCase {
IProject project = null;
public ModelFormat_2_0_0_Test() {}
public void setUp() throws Exception {
project = ProjectImportTestSetup.loadProject("JSFKickStartOldFormat");
}
public void testModelExists() {
IModelNature n = EclipseResourceUtil.getModelNature(project);
assertTrue("Test project " + project.getName() + " has no model nature.", n != null);
assertTrue("XModel for project " + project.getName() + " is not loaded.", n.getModel() != null);
}
public void testObjects() {
IModelNature n = EclipseResourceUtil.getModelNature(project);
XModel model = n.getModel();
XModelObject fs = FileSystemsHelper.getFileSystems(model);
assertTrue("XModel for project " + project.getName() + " is not loaded.", fs != null);
String applicationName = fs.getAttributeValue("application name");
assertTrue("Project application name is " + applicationName + "; should be JSFKickStartOldFormat", "JSFKickStartOldFormat".equals(applicationName));
String[] fileSystemList = {
"WEB-ROOT",
"WEB-INF",
"lib-jstl-1.1.0.jar"
};
List<String> unfound = new ArrayList<String>();
for (int i = 0; i < fileSystemList.length; i++) {
XModelObject fs1 = FileSystemsHelper.getFileSystem(model, fileSystemList[i]);
if(fs1 == null) {
unfound.add(fileSystemList[i]);
}
}
if(unfound.size() > 0) {
String message = "File systems not found: ";
for (int i = 0; i < unfound.size(); i++) {
if(i > 0) message += ", ";
message += unfound.get(i);
}
assertTrue(message, false);
}
}
public void testJSFProjectStructure() {
IModelNature n = EclipseResourceUtil.getModelNature(project);
JSFProjectsRoot root = JSFProjectsTree.getProjectsRoot(n.getModel());
assertTrue("Cannot find root object.", root != null);
XModelObject[] cs = root.getTreeChildren();
for (int i = 0; i < cs.length; i++) {
System.out.println(cs[i].getPath());
}
}
// protected void tearDown() throws Exception {
// if(provider!=null) {
// provider.dispose();
// provider=null;
// }
// }
}