[nobug]: Updating ModuleCore API. Committed for MDE.
diff --git a/tests/org.eclipse.wst.common.tests/apitools/org/eclipse/etools/common/test/apitools/ProjectUnzipUtil.java b/tests/org.eclipse.wst.common.tests/apitools/org/eclipse/etools/common/test/apitools/ProjectUnzipUtil.java
index 0a8b7ac..5767d21 100644
--- a/tests/org.eclipse.wst.common.tests/apitools/org/eclipse/etools/common/test/apitools/ProjectUnzipUtil.java
+++ b/tests/org.eclipse.wst.common.tests/apitools/org/eclipse/etools/common/test/apitools/ProjectUnzipUtil.java
@@ -13,6 +13,7 @@
 import org.eclipse.core.internal.resources.ProjectDescription;
 import org.eclipse.core.internal.resources.ProjectDescriptionReader;
 import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
@@ -38,6 +39,7 @@
 	public boolean createProjects() {
 		try {
 			expandZip();
+			ResourcesPlugin.getWorkspace().getRoot().refreshLocal(IResource.DEPTH_INFINITE, null);
 			buildProjects();
 		} catch (CoreException e) {
 			e.printStackTrace();
diff --git a/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/componentcore/tests/ComponentCoreTest.java b/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/componentcore/tests/ComponentCoreTest.java
index 02d509c..c5a4179 100644
--- a/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/componentcore/tests/ComponentCoreTest.java
+++ b/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/componentcore/tests/ComponentCoreTest.java
@@ -13,7 +13,8 @@
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.etools.common.test.apitools.ProjectUnzipUtil;
 import org.eclipse.wst.common.componentcore.ComponentCore;
-import org.eclipse.wst.common.componentcore.internal.resources.VirtualContainer;
+import org.eclipse.wst.common.componentcore.internal.resources.VirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
 import org.eclipse.wst.common.tests.CommonTestsPlugin;
 
 public class ComponentCoreTest extends TestCase {
@@ -93,7 +94,7 @@
 	}
 
 	public void testCreateReference() {
-		VirtualContainer container = new VirtualContainer(project, "test", new Path("test/runtimePath/file"));
+		IVirtualComponent container = new VirtualComponent(project, "test", new Path("test/runtimePath/file"));
 		
 		try {
 			ComponentCore.createReference(container,container);
diff --git a/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/componentcore/virtualpath/tests/IVirtualComponentAPITest.java b/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/componentcore/virtualpath/tests/IVirtualComponentAPITest.java
index 809c1f3..e01489d 100644
--- a/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/componentcore/virtualpath/tests/IVirtualComponentAPITest.java
+++ b/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/componentcore/virtualpath/tests/IVirtualComponentAPITest.java
@@ -10,40 +10,72 @@
  *******************************************************************************/ 
 package org.eclipse.wst.common.frameworks.componentcore.virtualpath.tests;
 
+import java.util.List;
 import java.util.Properties;
 
+import junit.framework.TestSuite;
+
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.Path;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.wst.common.componentcore.ComponentCore;
+import org.eclipse.wst.common.componentcore.StructureEdit;
+import org.eclipse.wst.common.componentcore.UnresolveableURIException;
+import org.eclipse.wst.common.componentcore.internal.ReferencedComponent;
+import org.eclipse.wst.common.componentcore.internal.WorkbenchComponent;
+import org.eclipse.wst.common.componentcore.internal.impl.ModuleURIUtil;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualReference;
 import org.eclipse.wst.common.componentcore.resources.IVirtualResource;
-import org.eclipse.wst.common.frameworks.componentcore.tests.BaseVirtualTest;
 
-public class IVirtualComponentAPITest extends BaseVirtualTest {
+public class IVirtualComponentAPITest extends IVirtualContainerAPITest {
 
+	private IVirtualComponent virtualComponent;
+	private WorkbenchComponent workbenchComponent;
+	private StructureEdit structureEdit;
+	
 	public IVirtualComponentAPITest(String name) {
-		super(name);
-		// TODO Auto-generated constructor stub
+		super(name); 
+	}
+	
+	public static TestSuite suite() {
+		TestSuite suite = new TestSuite();
+		suite.addTest(new IVirtualComponentAPITest("testGetReferences"));
+		return suite;
+	}
+	
+	protected void doSetup() throws Exception { 
+		virtualComponent = ComponentCore.createComponent(TestWorkspace.TEST_PROJECT, TestWorkspace.WEB_MODULE_1_NAME);
+		structureEdit = StructureEdit.getStructureEditForRead(TestWorkspace.TEST_PROJECT);
+		workbenchComponent = structureEdit.findComponentByName(TestWorkspace.WEB_MODULE_1_NAME);
+	}
+	
+	protected void tearDown() throws Exception { 
+		super.tearDown();
+		if(structureEdit != null)
+			structureEdit.dispose();
 	}
 
 	public void testGetName() {
 		
-		String name = component.getName();
+		String name = virtualComponent.getName();
 	}
 
 	public void testGetComponentTypeId() {
-		String id = component.getComponentTypeId() ;
+		String id = virtualComponent.getComponentTypeId() ;
 	}
 
 	public void testSetComponentTypeId() {
 		String id = "jst.ejb";
-		component.setComponentTypeId(id) ;
+		virtualComponent.setComponentTypeId(id) ;
 	}
 
 	public void testGetMetaProperties() {
-		Properties properties = component.getMetaProperties() ;
+		Properties properties = virtualComponent.getMetaProperties() ;
 	}
 
 	public void testGetMetaResources() {
-		IPath[] metaresources = component.getMetaResources() ;
+		IPath[] metaresources = virtualComponent.getMetaResources() ;
 
 	}
 
@@ -51,14 +83,47 @@
 		
 		IPath[] metaresources = new IPath[1];
 		metaresources[0] = new Path("/test");
-		component.setMetaResources(metaresources) ;
+		virtualComponent.setMetaResources(metaresources) ;
 
 	}
 	
 	public void testGetResources() {
 		String resource = "/test";
-		IVirtualResource[] virtualResource = component.getResources(resource) ;
+		IVirtualResource[] virtualResource = virtualComponent.getResources(resource) ;
 
 	}
+	
+	public void testGetReferences() {
+		IVirtualReference[] references = virtualComponent.getReferences();
+		
+		for(int i=0; i<references.length;i++)
+			assertReference(references[i]);
+	}
+	
+	private void assertReference(IVirtualReference reference) { 
+		List referencedComponents = workbenchComponent.getReferencedComponents();
+		ReferencedComponent referencedComponent = null;
+		String componentName = null;
+		for(int i=0; i<referencedComponents.size(); i++) {
+			referencedComponent = (ReferencedComponent) referencedComponents.get(i);
+			try {
+				componentName = ModuleURIUtil.getDeployedName(referencedComponent.getHandle());
+			} catch (UnresolveableURIException e) {  
+			}
+			if(componentName != null && componentName.equals(reference.getReferencedComponent().getName())) {					
+				assertEquals("The runtime paths must match.", referencedComponent.getRuntimePath(), reference.getRuntimePath());
+				assertEquals("The workbench component should match the enclosing component.", virtualComponent, reference.getEnclosingComponent());
+				assertEquals("The dependencyTypes should match.", referencedComponent.getDependencyType().getValue(), reference.getDependencyType());
+				URI actualHandle = ModuleURIUtil.fullyQualifyURI(reference.getReferencedComponent().getProject(), reference.getReferencedComponent().getName());
+				assertEquals("The handles should match.", referencedComponent.getHandle(), actualHandle); 
+				return;
+			}
+		}
+		fail("A matching reference was not found for "+reference.getRuntimePath()); 
+	}
+
+	public void testSetReferences() {
+		
+	}
 
 }
diff --git a/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/componentcore/virtualpath/tests/IVirtualContainerAPITest.java b/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/componentcore/virtualpath/tests/IVirtualContainerAPITest.java
index 83761ee..b5c2946 100644
--- a/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/componentcore/virtualpath/tests/IVirtualContainerAPITest.java
+++ b/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/componentcore/virtualpath/tests/IVirtualContainerAPITest.java
@@ -53,9 +53,9 @@
 
 	protected void assertRequirements() {
 		super.assertRequirements();
-		assertNotNull("The target virtual container must be specified.", targetVirtualContainer);
-		assertNotNull("The target platform container must be specified.", targetPlatformContainer);
-		assertNotNull("The expected platform container path must be specified.", expectedPlatformContainerPath);
+//		assertNotNull("The target virtual container must be specified.", targetVirtualContainer);
+//		assertNotNull("The target platform container must be specified.", targetPlatformContainer);
+//		assertNotNull("The expected platform container path must be specified.", expectedPlatformContainerPath);
 	}
 	
 
diff --git a/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/componentcore/virtualpath/tests/TestWorkspace.java b/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/componentcore/virtualpath/tests/TestWorkspace.java
index bf3beed..9ca5ad4 100644
--- a/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/componentcore/virtualpath/tests/TestWorkspace.java
+++ b/tests/org.eclipse.wst.common.tests/frameworktests/org/eclipse/wst/common/frameworks/componentcore/virtualpath/tests/TestWorkspace.java
@@ -14,7 +14,6 @@
 import java.net.URL;
 
 import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
@@ -49,9 +48,9 @@
 		
 		try {
 			IProject project = getTargetProject();
-			if (!project.exists())
-				createProject();
-			project.refreshLocal(IResource.DEPTH_INFINITE, null);
+			if (project.exists())
+				project.delete(true, true, null);
+			createProject(); 
 		} catch (CoreException e) { 
 			e.printStackTrace();
 		}
diff --git a/tests/org.eclipse.wst.common.tests/testData/TestVirtualAPI.zip b/tests/org.eclipse.wst.common.tests/testData/TestVirtualAPI.zip
index 160fb16..694f112 100644
--- a/tests/org.eclipse.wst.common.tests/testData/TestVirtualAPI.zip
+++ b/tests/org.eclipse.wst.common.tests/testData/TestVirtualAPI.zip
Binary files differ
diff --git a/tests/org.eclipse.wst.common.tests/testData/virtual-api-test_workspace.zip b/tests/org.eclipse.wst.common.tests/testData/virtual-api-test_workspace.zip
deleted file mode 100644
index 68fc9de..0000000
--- a/tests/org.eclipse.wst.common.tests/testData/virtual-api-test_workspace.zip
+++ /dev/null
Binary files differ