blob: 734786d701c531cbacb2759a705f149ae1c86c6f [file] [log] [blame]
package org.eclipse.jst.j2ee.archive.test;
import java.io.File;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import org.eclipse.emf.common.util.EList;
import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive;
import org.eclipse.jst.j2ee.commonarchivecore.internal.ArchiveTypeDiscriminatorRegistry;
import org.eclipse.jst.j2ee.commonarchivecore.internal.CommonarchiveFactory;
import org.eclipse.jst.j2ee.commonarchivecore.internal.GenericArchiveTypeDiscriminator;
import org.eclipse.jst.j2ee.core.tests.bvt.AutomatedBVT;
/*
* Licensed Material - Property of IBM
* (C) Copyright IBM Corp. 2001, 2002 - All Rights Reserved.
* US Government Users Restricted Rights - Use, duplication or disclosure
* restricted by GSA ADP Schedule Contract with IBM Corp.
*/
/**
* @author mdelder
*
*/
public class DiscriminatorTest
extends TestCase {
public boolean assertBarFile = false;
public DiscriminatorTest(String name) {
super(name);
}
public static Test suite() {
TestSuite suite = new TestSuite("DiscriminatorTest");
suite.addTest(new DiscriminatorTest("testDiscriminator"));
return suite;
}
// TODO Implement unit test for discriminator framework
public void testDiscriminator() throws Exception {
assertBarFile = true;
try {
ArchiveTypeDiscriminatorRegistry.registorDiscriminator(new BeverageArchiveDiscriminator());
Archive archive = CommonarchiveFactory.eINSTANCE.openArchive( AutomatedBVT.baseDirectory + File.separator + "my.bar");
assertNotNull("The archive was not found!", archive);
assertTrue("The archive extension (.bar) was not recognized as a custom extension!", archive.isNestedArchive("my.bar"));
boolean typeContributedSuccessfully = false;
EList types = archive.getTypes();
for (int i = 0; i < types.size(); i++) {
if (types.get(i).equals(BeverageArchiveDiscriminator.BEVERAGE_ARCHIVE_TYPE_KEY)) {
typeContributedSuccessfully = true;
break;
}
}
assertTrue("The BEVERAGE_ARCHIVE_TYPE_KEY was not found in the list of types of the archive!", typeContributedSuccessfully);
} finally {
assertBarFile = false;
}
}
public class BeverageArchiveDiscriminator
extends TestCase implements GenericArchiveTypeDiscriminator {
public static final String BEVERAGE_ARCHIVE_TYPE_KEY = "com.ibm.beverage.archive";
/*
* (non-Javadoc)
*
* @see com.ibm.etools.j2ee.commonarchivecore.GenericArchiveTypeDiscriminator#discriminate(com.ibm.etools.j2ee.commonarchivecore.Archive)
*/
public boolean discriminate(Archive anArchive) {
boolean result = anArchive.containsFile("META-INF/adult-beverage-imbibement-options.xml");
if (assertBarFile)
assertTrue(
"The BeverageArchiveDiscriminator did not recogniZe the file! (Ensure it contains a file named META-INF/adult-beverage-imbibement-venues.xml)",
result);
return result;
}
/*
* (non-Javadoc)
*
* @see com.ibm.etools.j2ee.commonarchivecore.GenericArchiveTypeDiscriminator#getCustomFileExtensions()
*/
public String[] getCustomFileExtensions() {
return new String[] { "bar"};
}
/*
* (non-Javadoc)
*
* @see com.ibm.etools.j2ee.commonarchivecore.GenericArchiveTypeDiscriminator#getTypeKey()
*/
public String getTypeKey() {
return BEVERAGE_ARCHIVE_TYPE_KEY;
}
}
}