Skip to content

Instantly share code, notes, and snippets.

@aslakknutsen
Created April 23, 2012 20:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aslakknutsen/2473765 to your computer and use it in GitHub Desktop.
Save aslakknutsen/2473765 to your computer and use it in GitHub Desktop.
A Descriptor aware ShrinkWrap view. Knows the common location for the different Descriptors in the different Archives
public class DescriptiveArchiveTestCase {
/*
* beans.xml
*/
@Test
public void shouldBeAbleToAddBeansDescriptorToWebArchive() {
WebArchive archive = create(WebArchive.class, BeansDescriptor.class);
ArchivePath target = ArchivePaths.create("WEB-INF/beans.xml");
Assert.assertTrue("should be located in " + target, archive.contains(target));
}
@Test
public void shouldBeAbleToAddBeansDescriptorToJavaArchive() {
JavaArchive archive = create(JavaArchive.class, BeansDescriptor.class);
ArchivePath target = ArchivePaths.create("META-INF/beans.xml");
Assert.assertTrue("should be located in " + target, archive.contains(target));
}
/*
* persistence.xml
*/
@Test
public void shouldBeAbleToAddPersistenceDescriptorToWebArchive() {
WebArchive archive = create(WebArchive.class, PersistenceDescriptor.class);
ArchivePath target = ArchivePaths.create("WEB-INF/classes/META-INF/persistence.xml");
Assert.assertTrue("should be located in " + target, archive.contains(target));
}
@Test
public void shouldBeAbleToAddPersistenceDescriptorToJavaArchive() {
JavaArchive archive = create(JavaArchive.class, PersistenceDescriptor.class);
ArchivePath target = ArchivePaths.create("META-INF/persistence.xml");
Assert.assertTrue("should be located in " + target, archive.contains(target));
}
/*
* application.xml
*/
@Test
public void shouldBeAbleToAddApplicationDescriptorToEnterpriseArchive() {
EnterpriseArchive archive = create(EnterpriseArchive.class, ApplicationDescriptor.class);
ArchivePath target = ArchivePaths.create("META-INF/application.xml");
Assert.assertTrue("should be located in " + target, archive.contains(target));
}
/*
* web.xml
*/
@Test
public void shouldBeAbleToAddWebDescriptorToEnterpriseArchive() {
WebArchive archive = create(WebArchive.class, WebAppDescriptor.class);
ArchivePath target = ArchivePaths.create("WEB-INF/web.xml");
Assert.assertTrue("should be located in " + target, archive.contains(target));
}
@Test
public void shouldBeAbleToGetBeansDescriptorFromWebArchive() {
String alternativeName = "XYXA";
WebArchive archive = create(WebArchive.class,
Descriptors.create(BeansDescriptor.class).createAlternatives().clazz(alternativeName).up());
BeansDescriptor desc = archive.as(DescriptiveArchive.class).get(BeansDescriptor.class);
Assert.assertTrue("should contain word " + alternativeName, desc.exportAsString().contains(alternativeName));
}
@Test
public void shouldBeAbleToGetBeansDescriptorFromJavaArchive() {
String alternativeName = "XYXA";
JavaArchive archive = create(JavaArchive.class,
Descriptors.create(BeansDescriptor.class).createAlternatives().clazz(alternativeName).up());
BeansDescriptor desc = archive.as(DescriptiveArchive.class).get(BeansDescriptor.class);
Assert.assertTrue("should contain word " + alternativeName, desc.exportAsString().contains(alternativeName));
}
private <T extends Archive<T>, X extends Descriptor> T create(Class<T> archiveType, Class<X> descriptorType) {
return ShrinkWrap.create(archiveType)
.as(DescriptiveArchive.class)
.add(Descriptors.create(descriptorType))
.as(archiveType);
}
private <T extends Archive<T>, X extends Descriptor> T create(Class<T> archiveType, X descriptor) {
return ShrinkWrap.create(archiveType)
.as(DescriptiveArchive.class)
.add(descriptor)
.as(archiveType);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment