}
@Test
public void testSimpleAddonProject() throws FileNotFoundException, FacetNotFoundException
{
Project project = projectFactory.createTempProject();
project.getRoot().reify(DirectoryResource.class).deleteOnExit();
MetadataFacet metadataFacet = project.getFacet(MetadataFacet.class);
metadataFacet.setProjectName("testproject");
metadataFacet.setProjectVersion("1.0.0-SNAPSHOT");
metadataFacet.setProjectGroupName("com.acme.testproject");
Version forgeVersion = furnace.getVersion();
configurator.setupSimpleAddonProject(project, forgeVersion, Collections.<AddonId> emptyList());
Assert.assertTrue(project.hasFacet(ForgeBOMFacet.class));
Assert.assertTrue(project.hasFacet(DefaultFurnaceContainerFacet.class));
Assert.assertTrue(project.hasFacet(FurnacePluginFacet.class));
Assert.assertTrue(project.hasFacet(AddonTestFacet.class));
Assert.assertTrue(project.hasFacet(JavaSourceFacet.class));
Assert.assertTrue(project.hasFacet(JavaCompilerFacet.class));
Assert.assertTrue(project.hasFacet(CDIFacet.class));
Assert.assertTrue(project.hasFacet(CDIFacet_1_1.class));
Assert.assertFalse(project.getFacet(DependencyFacet.class).getManagedDependencies().isEmpty());
Assert.assertTrue(project.getFacet(JavaSourceFacet.class)
.getJavaResource("com.acme.testproject.package-info.java").exists());
/**
* Verify test harness dependencies
*/
Assert.assertTrue(project.getFacet(DependencyFacet.class).hasDirectDependency(
AddonTestFacet.FURNACE_TEST_ADAPTER_DEPENDENCY));
Assert.assertTrue(project.getFacet(DependencyFacet.class).hasDirectDependency(
AddonTestFacet.FURNACE_TEST_HARNESS_DEPENDENCY));
Assert.assertTrue(project.getFacet(DependencyFacet.class).hasEffectiveManagedDependency(
AddonTestFacet.FURNACE_TEST_ADAPTER_DEPENDENCY));
Assert.assertTrue(project.getFacet(DependencyFacet.class).hasEffectiveManagedDependency(
AddonTestFacet.FURNACE_TEST_HARNESS_DEPENDENCY));
Assert.assertTrue(project.getFacet(DependencyFacet.class).hasEffectiveDependency(
DependencyBuilder.create("junit:junit").setScopeType("test")));
/**
* Verify container dependencies
*/
Assert.assertTrue(project.getFacet(DependencyFacet.class).hasDirectDependency(
DefaultFurnaceContainerFacet.FURNACE_CONTAINER_DEPENDENCY));
Assert.assertNull(project.getFacet(DependencyFacet.class).getDirectDependency(
DefaultFurnaceContainerFacet.FURNACE_CONTAINER_DEPENDENCY).getCoordinate().getVersion());
Assert.assertTrue(project.getFacet(DependencyFacet.class).hasEffectiveManagedDependency(
DefaultFurnaceContainerFacet.FURNACE_CONTAINER_DEPENDENCY));
Assert.assertNotNull(project.getFacet(DependencyFacet.class).getEffectiveManagedDependency(
DefaultFurnaceContainerFacet.FURNACE_CONTAINER_DEPENDENCY).getCoordinate().getVersion());
Assert.assertTrue(project.getFacet(DependencyFacet.class).hasEffectiveDependency(
DefaultFurnaceContainerAPIFacet.FURNACE_CONTAINER_API_DEPENDENCY));
Assert.assertEquals(forgeVersion.toString(), project.getFacet(DependencyFacet.class).getEffectiveDependency(
DefaultFurnaceContainerAPIFacet.FURNACE_CONTAINER_API_DEPENDENCY).getCoordinate().getVersion());
Assert.assertFalse(project.getFacet(DependencyFacet.class).hasDirectDependency(
DefaultFurnaceContainerAPIFacet.FURNACE_CONTAINER_API_DEPENDENCY));
Assert.assertFalse(project.getFacet(DependencyFacet.class).hasDirectDependency(
DependencyBuilder.create("javax.annotation:jsr250-api:1.0")));
Assert.assertTrue(project.getRoot().getChild("README.asciidoc").exists());
project.getRoot().delete(true);
}