package com.hundsun.ares.studio.core; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFolder; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IWorkspaceRoot; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.Path; import org.junit.Before; import org.junit.Test; /** * ����create()���� * @author sundl * */ public class TestElementFactory extends AbstractAresCoreTester{ private IWorkspaceRoot workspaceRoot; @Before public void init() { workspaceRoot = ResourcesPlugin.getWorkspace().getRoot(); } /** * �ļ����create */ @Test public void testIFilebased() { IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path("/testproject1/testroot1/aaa.test")); IARESElement ce = ARESCore.create(file); assertNotNull(ce); assertEquals(IARESElement.ARES_RESOURCE, ce.getElementType()); assertTrue(ce.exists()); // ����δע�����Դ file = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path("/testproject1/testroot1/aa/bb/ccc.test1")); IARESElement resourceNotRegistered = ARESCore.create(file); assertTrue(resourceNotRegistered == null); } /** * ModuleRoot��Create���� */ @Test public void testCreateModuleRoot() { IFolder root1 = workspaceRoot.getFolder(new Path("/testproject1/testroot1")); assertNotNull(root1); assertTrue(root1.exists()); IFolder root100 = workspaceRoot.getFolder(new Path("/testproject1/testroot100")); assertNotNull(root100); assertTrue(!root100.exists()); } @Test public void testCreateModule() { IFolder module1 = workspaceRoot.getFolder(new Path("/testproject1/testroot1/aa")); assertNotNull(module1); assertTrue(module1.exists()); IFolder module2 = workspaceRoot.getFolder(new Path("/testproject1/testroot1/aaaaaaaaaaaaaaaaa")); assertNotNull(module2); assertTrue(!module2.exists()); } @Test public void testIProjectbased() { IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(Helper.TEST_PROJECT_1); IARESProject cProject = ARESCore.create(project); assertNotNull(cProject); assertTrue(cProject.exists()); } @Test public void testElementIdentifier() { try { // ��Ŀ�ڵ���Դ IARESResource res = project.findResource("aa.bb.bbb", "test"); assertNotNull(res); assertTrue(res.exists()); String id = res.getHandleIdentifier(); IARESResource resFromId = (IARESResource) ARESCore.create(id); assertEquals(res, resFromId); // �������ڵ����ð� res = lib.findResource("aaa", "test"); assertNotNull(res); assertTrue(res.exists()); id = res.getHandleIdentifier(); resFromId = (IARESResource) ARESCore.create(id); assertEquals(res, resFromId); assertTrue(resFromId.exists()); // ������������ð� res = externalLib.findResource("aaa", "test"); assertNotNull(res); assertTrue(res.exists()); id = res.getHandleIdentifier(); resFromId = (IARESResource) ARESCore.create(id); assertEquals(res, resFromId); assertTrue(resFromId.exists()); } catch (ARESModelException e) { e.printStackTrace(); } } }