package org.eclipse.emf.emfstore.client.test.server; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import java.io.IOException; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.ecore.resource.ResourceSet; import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.emf.emfstore.client.model.util.EMFStoreCommand; import org.eclipse.emf.emfstore.client.test.WorkspaceTest; import org.eclipse.emf.emfstore.client.test.testmodel.TestmodelFactory; import org.eclipse.emf.emfstore.server.model.versioning.Version; import org.eclipse.emf.emfstore.server.model.versioning.VersioningFactory; import org.eclipse.emf.emfstore.server.taskmanager.tasks.CleanMemoryTask; import org.junit.Test; public class CleanMemoryTest extends WorkspaceTest { @Test public void testUnload() throws IOException { ResourceSet resourceSet = new ResourceSetImpl(); final Resource res = resourceSet.createResource(URI.createFileURI("C:\\Users\\Edgar\\Documents\\test.xmi")); final Resource res2 = resourceSet.createResource(URI.createFileURI("C:\\Users\\Edgar\\Documents\\test2.xmi")); final Version version = VersioningFactory.eINSTANCE.createVersion(); final Version nextVersion = VersioningFactory.eINSTANCE.createVersion(); new EMFStoreCommand() { @Override protected void doRun() { getProject().addModelElement(TestmodelFactory.eINSTANCE.createTestElement()); version.setProjectState(getProject()); res.getContents().add(getProject()); res2.getContents().add(version); res2.getContents().add(nextVersion); nextVersion.setProjectState(EcoreUtil.copy(getProject())); version.setNextVersion(nextVersion); } }.run(false); res.save(null); res2.save(null); CleanMemoryTask task = new CleanMemoryTask(resourceSet); task.executeTask(); // this is wrong? assertEquals(2, resourceSet.getResources().size()); assertEquals(1, version.getProjectState().getModelElements().size()); assertFalse(version.getProjectState() == getProject()); assertEquals(2, resourceSet.getResources().size()); } }