[jboss-cvs] jbosside/core/tests/org.jboss.ide.eclipse.packages.test/src/org/jboss/ide/eclipse/packages/test ...
Marshall Culpepper
mculpepper at jboss.com
Mon Nov 6 16:38:13 EST 2006
User: mculpepper
Date: 06/11/06 16:38:13
Added: core/tests/org.jboss.ide.eclipse.packages.test/src/org/jboss/ide/eclipse/packages/test
PackagesTestPlugin.java NewProjectTest.java
AllTests.java PackagesEARTest.java
Log:
initial commit of the new "packages" test suite plugin
Revision Changes Path
1.1 date: 2006/11/06 21:38:13; author: mculpepper; state: Exp;jbosside/core/tests/org.jboss.ide.eclipse.packages.test/src/org/jboss/ide/eclipse/packages/test/PackagesTestPlugin.java
Index: PackagesTestPlugin.java
===================================================================
package org.jboss.ide.eclipse.packages.test;
import org.jboss.ide.eclipse.core.test.CoreTestPlugin;
import org.osgi.framework.BundleContext;
/**
* The activator class controls the plug-in life cycle
*/
public class PackagesTestPlugin extends CoreTestPlugin {
// The plug-in ID
public static final String PLUGIN_ID = "org.jboss.ide.eclipse.packages.test";
// The shared instance
private static PackagesTestPlugin plugin;
/**
* The constructor
*/
public PackagesTestPlugin() {
plugin = this;
}
/*
* (non-Javadoc)
* @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
*/
public void start(BundleContext context) throws Exception {
super.start(context);
}
/*
* (non-Javadoc)
* @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
*/
public void stop(BundleContext context) throws Exception {
plugin = null;
super.stop(context);
}
/**
* Returns the shared instance
*
* @return the shared instance
*/
public static PackagesTestPlugin getDefault() {
return plugin;
}
}
1.1 date: 2006/11/06 21:38:13; author: mculpepper; state: Exp;jbosside/core/tests/org.jboss.ide.eclipse.packages.test/src/org/jboss/ide/eclipse/packages/test/NewProjectTest.java
Index: NewProjectTest.java
===================================================================
package org.jboss.ide.eclipse.packages.test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;
import junit.framework.TestCase;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jdt.core.IJavaProject;
import org.jboss.ide.eclipse.core.test.util.JavaProjectHelper;
import org.jboss.ide.eclipse.packages.core.model.IPackage;
import org.jboss.ide.eclipse.packages.core.model.internal.PackagesModel;
import org.jboss.ide.eclipse.packages.core.model.internal.xb.XMLBinding;
import org.jboss.ide.eclipse.packages.core.model.internal.xb.XbPackage;
import org.jboss.ide.eclipse.packages.core.model.internal.xb.XbPackages;
public class NewProjectTest extends TestCase {
private IJavaProject newProject;
public NewProjectTest (String name)
{
super(name);
}
public void setUp () throws Exception
{
newProject = JavaProjectHelper.createJavaProject("newProject", new String[] { "src" }, "/bin");
}
public void testXbConsistency ()
{
XbPackages packages = new XbPackages();
XbPackage pkg = new XbPackage();
packages.addChild(pkg);
assertTrue(packages.getAllChildren().contains(pkg));
pkg.setName("test.jar");
assertEquals(pkg.getName(), "test.jar");
try {
NullProgressMonitor nullMonitor = new NullProgressMonitor();
File packagesFile = new File(newProject.getProject().getLocation().toFile(), ".packages");
FileWriter xmlWriter = new FileWriter(packagesFile);
XMLBinding.marshal(packages, xmlWriter, nullMonitor);
xmlWriter.close();
FileInputStream in = new FileInputStream(packagesFile);
XbPackages packages2 = XMLBinding.unmarshal(in, nullMonitor);
assertNotNull(packages2);
assertTrue(packages2.hasChildren());
assertEquals(packages2.getAllChildren().size(), 1);
assertEquals(packages2.getChildren(XbPackage.class).size(), 1);
XbPackage pkg2 = (XbPackage) packages2.getChildren(XbPackage.class).get(0);
assertEquals(pkg2.getName(), pkg.getName());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void testEclipseModelConsistency ()
{
NullProgressMonitor nullMonitor = new NullProgressMonitor();
testXbConsistency();
IFile packagesFile = newProject.getProject().getFile(".packages");
try {
packagesFile.refreshLocal(IResource.DEPTH_ONE, nullMonitor);
} catch (CoreException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
PackagesModel.instance().registerProject(newProject.getProject(), nullMonitor);
List packages = PackagesModel.instance().getProjectPackages(newProject.getProject());
assertNotNull(packages);
assertEquals(packages.size(), 1);
assertTrue(packages.get(0) instanceof IPackage);
IPackage pkg = (IPackage) packages.get(0);
assertEquals(pkg.getName(), "test.jar");
}
}
1.1 date: 2006/11/06 21:38:13; author: mculpepper; state: Exp;jbosside/core/tests/org.jboss.ide.eclipse.packages.test/src/org/jboss/ide/eclipse/packages/test/AllTests.java
Index: AllTests.java
===================================================================
package org.jboss.ide.eclipse.packages.test;
import junit.framework.Test;
import junit.framework.TestSuite;
public class AllTests {
public static Test suite()
{
TestSuite suite = new TestSuite();
suite.addTest(new PackagesEARTest("testCorrectBinding"));
suite.addTest(new PackagesEARTest("testModelBridge"));
suite.addTest(new PackagesEARTest("testSave"));
suite.addTest(new PackagesEARTest("testWorkingCopies"));
suite.addTest(new PackagesEARTest("testBuild"));
suite.addTest(new NewProjectTest("testXbConsistency"));
suite.addTest(new NewProjectTest("testEclipseModelConsistency"));
return suite;
}
}
1.1 date: 2006/11/06 21:38:13; author: mculpepper; state: Exp;jbosside/core/tests/org.jboss.ide.eclipse.packages.test/src/org/jboss/ide/eclipse/packages/test/PackagesEARTest.java
Index: PackagesEARTest.java
===================================================================
/*
* JBoss, a division of Red Hat
* Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
* by the @authors tag. See the copyright.txt in the distribution for a
* full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.jboss.ide.eclipse.packages.test;
import java.io.File;
import java.io.StringWriter;
import java.util.Arrays;
import java.util.List;
import java.util.Properties;
import junit.framework.TestCase;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jdt.core.IJavaProject;
import org.jboss.ide.eclipse.core.test.util.JavaProjectHelper;
import org.jboss.ide.eclipse.core.test.util.TestFileUtil;
import org.jboss.ide.eclipse.packages.core.model.IPackage;
import org.jboss.ide.eclipse.packages.core.model.IPackageFileSet;
import org.jboss.ide.eclipse.packages.core.model.IPackageFolder;
import org.jboss.ide.eclipse.packages.core.model.IPackageFolderWorkingCopy;
import org.jboss.ide.eclipse.packages.core.model.IPackageNode;
import org.jboss.ide.eclipse.packages.core.model.IPackageWorkingCopy;
import org.jboss.ide.eclipse.packages.core.model.PackagesCore;
import org.jboss.ide.eclipse.packages.core.model.internal.PackagesModel;
import org.jboss.ide.eclipse.packages.core.model.internal.xb.XMLBinding;
import org.jboss.ide.eclipse.packages.core.model.internal.xb.XbFileSet;
import org.jboss.ide.eclipse.packages.core.model.internal.xb.XbFolder;
import org.jboss.ide.eclipse.packages.core.model.internal.xb.XbPackage;
import org.jboss.ide.eclipse.packages.core.model.internal.xb.XbPackages;
public class PackagesEARTest extends TestCase {
private IJavaProject testPackagesProject;
private XbPackages packagesElement;
private String testPackagesProjectRoot;
public PackagesEARTest (String testName)
{
super(testName);
}
protected void setUp() throws Exception {
testPackagesProject = JavaProjectHelper.createJavaProject(
"testPackagesProject", new String[] { "/src" }, "/bin");
testPackagesProjectRoot = PackagesTestPlugin.getDefault().getBaseDir();
testPackagesProjectRoot += File.separator + "testPackagesProject";
TestFileUtil.copyDirectory (new File(testPackagesProjectRoot), testPackagesProject.getProject().getLocation().toFile(), true);
testPackagesProject.getProject().refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
packagesElement = XMLBinding.unmarshal(
testPackagesProject.getProject().getFile(PackagesModel.PROJECT_PACKAGES_FILE).getContents(), new NullProgressMonitor());
}
public void testCorrectBinding ()
{
assertNotNull(packagesElement);
List packages = packagesElement.getPackages();
assertNotNull(packages);
assertEquals(packages.size(), 1);
Properties properties = packagesElement.getProperties().getProperties();
assertNotNull(properties);
assertEquals(properties.get("test-property"), "test-value");
assertTrue(packages.get(0) instanceof XbPackage);
XbPackage pkg = (XbPackage) packages.get(0);
assertEquals(pkg.getName(), "MyApp.ear");
assertEquals(pkg.getToDir(), ".");
assertEquals(pkg.getPackageType(), "j2ee.ear");
assertNotNull(pkg.getFolders());
assertNull(pkg.getPackages());
assertNull(pkg.getFileSets());
assertEquals(pkg.getFolders().size(), 2);
assertTrue(pkg.getFolders().get(0) instanceof XbFolder);
assertTrue(pkg.getFolders().get(1) instanceof XbFolder);
XbFolder pkgsFolder = (XbFolder) pkg.getFolders().get(0);
XbFolder metaInfFolder = (XbFolder) pkg.getFolders().get(1);
assertEquals(pkgsFolder.getName(), "packages");
assertEquals(metaInfFolder.getName(), "META-INF");
assertEquals(pkgsFolder.getPackages().size(), 2);
assertEquals(metaInfFolder.getFileSets().size(), 1);
assertTrue(pkgsFolder.getPackages().get(0) instanceof XbPackage);
assertTrue(pkgsFolder.getPackages().get(1) instanceof XbPackage);
assertTrue(metaInfFolder.getFileSets().get(0) instanceof XbFileSet);
XbPackage ejbJar = (XbPackage) pkgsFolder.getPackages().get(0);
XbPackage war = (XbPackage) pkgsFolder.getPackages().get(1);
XbFileSet metaInfFiles = (XbFileSet) metaInfFolder.getFileSets().get(0);
assertEquals(ejbJar.getName(), "MyEJBs.jar");
assertFalse(ejbJar.isExploded());
assertEquals(ejbJar.getPackageType(), "j2ee.ejbjar");
assertNull(ejbJar.getRef(), null);
assertNull(ejbJar.getToDir());
assertEquals(metaInfFiles.getFile(), "descriptors/application.xml");
assertEquals(ejbJar.getFileSets().size(), 1);
assertEquals(ejbJar.getFolders().size(), 1);
assertTrue(ejbJar.getFileSets().get(0) instanceof XbFileSet);
assertTrue(ejbJar.getFolders().get(0) instanceof XbFolder);
XbFileSet ejbJarFileset = (XbFileSet) ejbJar.getFileSets().get(0);
XbFolder ejbJarMetaInf = (XbFolder) ejbJar.getFolders().get(0);
assertEquals(ejbJarFileset.getDir(), "bin");
assertEquals(ejbJarFileset.getIncludes(), "com/myapp/ejb/**/*.class");
assertNull(ejbJarFileset.getExcludes());
assertNull(ejbJarFileset.getFile());
assertNull(ejbJarFileset.getToFile());
assertEquals(ejbJarMetaInf.getName(), "META-INF");
assertEquals(ejbJarMetaInf.getFileSets().size(), 2);
assertTrue(ejbJarMetaInf.getFileSets().get(0) instanceof XbFileSet);
assertTrue(ejbJarMetaInf.getFileSets().get(1) instanceof XbFileSet);
XbFileSet metaInfFileSet1 = (XbFileSet) ejbJarMetaInf.getFileSets().get(0);
XbFileSet metaInfFileSet2 = (XbFileSet) ejbJarMetaInf.getFileSets().get(1);
assertEquals(metaInfFileSet1.getFile(), "descriptors/jboss.xml");
assertEquals(metaInfFileSet2.getFile(), "descriptors/ejb-jar.xml");
assertNull(metaInfFileSet1.getDir());
assertNull(metaInfFileSet1.getIncludes());
assertNull(metaInfFileSet1.getExcludes());
assertNull(metaInfFileSet1.getToFile());
assertNull(metaInfFileSet2.getDir());
assertNull(metaInfFileSet2.getIncludes());
assertNull(metaInfFileSet2.getExcludes());
assertNull(metaInfFileSet2.getToFile());
assertEquals(war.getName(), "MyApp.war");
assertEquals(war.getPackageType(), "j2ee.war");
assertFalse(war.isExploded());
assertEquals(war.getToDir(), ".");
assertNotNull(war.getFolders());
assertEquals(war.getFolders().size(), 1);
assertTrue(war.getFolders().get(0) instanceof XbFolder);
XbFolder webInf = (XbFolder) war.getFolders().get(0);
assertEquals(webInf.getName(), "WEB-INF");
assertNotNull(webInf.getFolders());
assertEquals(webInf.getFolders().size(), 2);
assertNotNull(webInf.getFileSets());
assertEquals(webInf.getFileSets().size(), 1);
assertTrue(webInf.getFolders().get(0) instanceof XbFolder);
assertTrue(webInf.getFolders().get(1) instanceof XbFolder);
assertTrue(webInf.getFileSets().get(0) instanceof XbFileSet);
XbFolder libFolder = (XbFolder) webInf.getFolders().get(0);
XbFolder classesFolder = (XbFolder) webInf.getFolders().get(1);
XbFileSet descriptors = (XbFileSet) webInf.getFileSets().get(0);
assertEquals(libFolder.getName(), "lib");
assertEquals(classesFolder.getName(), "classes");
assertEquals(descriptors.getDir(), "descriptors");
assertEquals(descriptors.getIncludes(), "*web.xml");
assertNotNull(libFolder.getFileSets());
assertEquals(libFolder.getFileSets().size(), 1);
assertNotNull(classesFolder.getFileSets());
assertEquals(classesFolder.getFileSets().size(), 1);
assertTrue(libFolder.getFileSets().get(0) instanceof XbFileSet);
assertTrue(classesFolder.getFileSets().get(0) instanceof XbFileSet);
XbFileSet libFileset = (XbFileSet) libFolder.getFileSets().get(0);
XbFileSet classesFileset = (XbFileSet) classesFolder.getFileSets().get(0);
assertEquals(libFileset.getDir(), "lib");
assertEquals(libFileset.getIncludes(), "**/*.jar");
assertEquals(classesFileset.getDir(), "bin");
assertEquals(classesFileset.getIncludes(), "com/myapp/web/**/*.class");
}
private void assertFileset (IPackageFileSet fileset, String srcPath, String[] filePaths, String includes, String excludes)
{
assertEquals(fileset.getSourceContainer(), testPackagesProject.getProject().getFolder(srcPath));
if (includes != null)
assertEquals(fileset.getIncludesPattern(), includes);
if (excludes != null)
assertEquals(fileset.getExcludesPattern(), excludes);
IFile matchingFiles[] = fileset.findMatchingFiles();
assertNotNull(matchingFiles);
assertEquals(matchingFiles.length, 2);
List matchingFileList = Arrays.asList(matchingFiles);
for (int i = 0; i < filePaths.length; i++)
{
IFile file = testPackagesProject.getProject().getFile(filePaths[i]);
assertTrue(matchingFileList.contains(file));
assertTrue(fileset.matchesFile(file));
}
}
public void testModelBridge ()
{
PackagesModel.instance().registerProject(testPackagesProject.getProject(), new NullProgressMonitor());
List packages = PackagesModel.instance().getProjectPackages(testPackagesProject.getProject());
assertNotNull(packages);
assertEquals(packages.size(), 1);
IPackage earPackage = (IPackage) packages.get(0);
assertEquals(earPackage.getProject(), testPackagesProject.getProject());
assertEquals(earPackage.getName(), "MyApp.ear");
assertEquals(earPackage.getNodeType(), IPackageNode.TYPE_PACKAGE);
assertEquals(earPackage.getPackageType(), "j2ee.ear");
IPackageFolder earPackageFolders[] = earPackage.getFolders();
assertNotNull(earPackageFolders);
assertEquals(earPackageFolders.length, 2);
IPackageFolder pkgsFolder = earPackageFolders[0];
assertEquals(pkgsFolder.getName(), "packages");
IPackage earPackages[] = pkgsFolder.getPackages();
assertNotNull(earPackages);
assertEquals(earPackages.length, 2);
IPackage ejbJarPackage = earPackages[0];
IPackage warPackage = earPackages[1];
assertEquals(ejbJarPackage.getProject(), testPackagesProject.getProject());
assertEquals(ejbJarPackage.getName(), "MyEJBs.jar");
assertEquals(ejbJarPackage.getNodeType(), IPackageNode.TYPE_PACKAGE);
assertEquals(ejbJarPackage.getPackageType(), "j2ee.ejbjar");
IPackageFileSet ejbJarFilesets[] = ejbJarPackage.getFileSets();
IPackageFolder ejbJarFolders[] = ejbJarPackage.getFolders();
assertNotNull(ejbJarFilesets);
assertNotNull(ejbJarFolders);
assertEquals(ejbJarFilesets.length, 1);
assertEquals(ejbJarFolders.length, 1);
assertFileset(ejbJarFilesets[0], "bin",
new String[] { "bin/com/myapp/ejb/TestClass1.class","bin/com/myapp/ejb/subpackage/TestClass2.class"},
"com/myapp/ejb/**/*.class", null);
IPackageFolder metaInf = ejbJarFolders[0];
assertEquals(metaInf.getName(), "META-INF");
IPackageFileSet metaInfFilesets[] = metaInf.getFileSets();
assertNotNull(metaInfFilesets);
assertEquals(metaInfFilesets.length, 2);
assertEquals(warPackage.getProject(), testPackagesProject.getProject());
assertEquals(warPackage.getName(), "MyApp.war");
assertEquals(warPackage.getNodeType(), IPackageNode.TYPE_PACKAGE);
assertEquals(warPackage.getPackageType(), "j2ee.war");
IPackageFolder[] warFolders = warPackage.getFolders();
assertNotNull(warFolders);
assertEquals(warFolders.length, 1);
IPackageFolder webInf = warFolders[0];
assertEquals(webInf.getName(), "WEB-INF");
IPackageFolder[] webInfFolders = webInf.getFolders();
IPackageFileSet[] webInfFilesets = webInf.getFileSets();
assertNotNull(webInfFolders);
assertNotNull(webInfFilesets);
assertEquals(webInfFolders.length, 2);
assertEquals(webInfFilesets.length, 1);
assertFileset(webInfFilesets[0], "descriptors", new String[] { "descriptors/web.xml","descriptors/jboss-web.xml"}, "*web.xml", null);
}
public void testWorkingCopies ()
{
List packages = PackagesModel.instance().getProjectPackages(testPackagesProject.getProject());
IPackage pkg = (IPackage) packages.get(0);
IPackageFolder packagesFolder = pkg.getFolders()[0];
IPackage oldPackage = pkg;
IPackageWorkingCopy wc = pkg.createPackageWorkingCopy();
wc.removeChild(packagesFolder);
pkg = wc.savePackage();
assertTrue(pkg != oldPackage);
assertFalse(pkg.hasChild(packagesFolder));
assertEquals(pkg.getFolders().length, 1);
packages =PackagesModel.instance().getProjectPackages(testPackagesProject.getProject());
assertEquals(packages.size(), 1);
wc = pkg.createPackageWorkingCopy();
wc.addChild(packagesFolder);
pkg = wc.savePackage();
assertTrue(pkg.hasChild(packagesFolder));
assertEquals(pkg.getFolders().length, 2);
assertEquals(packagesFolder.getParent(), pkg);
packages = PackagesModel.instance().getProjectPackages(testPackagesProject.getProject());
assertEquals(packages.size(), 1);
IPackageFolderWorkingCopy testFolder = PackagesCore.createPackageFolder(testPackagesProject.getProject());
testFolder.setName("testFolder");
wc = pkg.createPackageWorkingCopy();
wc.addChild(testFolder);
pkg = wc.savePackage();
assertTrue(pkg.hasChild(testFolder));
assertEquals(pkg.getFolders().length, 3);
assertEquals(testFolder.getParent(), pkg);
packages = PackagesModel.instance().getProjectPackages(testPackagesProject.getProject());
assertEquals(packages.size(), 1);
IPackageFolderWorkingCopy testFolder2 = PackagesCore.createPackageFolder(testPackagesProject.getProject());
testFolder2.setName("testFolder2");
wc = pkg.createPackageWorkingCopy();
wc.addChild(testFolder2);
pkg = wc.savePackage();
assertTrue(pkg.hasChild(testFolder2));
assertEquals(pkg.getFolders().length, 4);
assertEquals(testFolder2.getParent(), pkg);
packages = PackagesModel.instance().getProjectPackages(testPackagesProject.getProject());
assertEquals(packages.size(), 1);
}
public void testSave()
{
StringWriter writer = new StringWriter();
XMLBinding.marshal(packagesElement, writer, new NullProgressMonitor());
System.out.println(writer.getBuffer().toString());
assertTrue(writer.getBuffer().length() > 0);
}
public void testBuild ()
{
NullProgressMonitor nullMonitor = new NullProgressMonitor();
List packages = PackagesModel.instance().getProjectPackages(testPackagesProject.getProject());
assertTrue(packages.size() > 0);
IPackage pkg = (IPackage) packages.get(0);
assertNotNull(pkg);
PackagesCore.buildPackage(pkg, nullMonitor);
IFile packageFile = pkg.getPackageFile();
assertTrue(packageFile.exists());
}
}
More information about the jboss-cvs-commits
mailing list