package org.rubypeople.rdt.internal.ui;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.rubypeople.rdt.core.IRubyElement;
import org.rubypeople.rdt.core.IRubyProject;
import org.rubypeople.rdt.core.IRubyScript;
import org.rubypeople.rdt.core.tests.ModifyingResourceTest;
import org.rubypeople.rdt.internal.core.RubyProject;
import org.rubypeople.rdt.internal.core.RubyScript;
public class TC_ResourceAdapterFactory extends ModifyingResourceTest {
private static final String PROJECT_NAME = "adapterTest";
private ResourceAdapterFactory factory;
private IProject project;
public TC_ResourceAdapterFactory(String name) {
super(name);
}
protected void setUp() throws Exception {
super.setUp();
this.project = createProject(PROJECT_NAME);
factory = new ResourceAdapterFactory();
}
@Override
protected void tearDown() throws Exception {
super.tearDown();
deleteProject(PROJECT_NAME);
}
public void testGetAdapterForRBFile() throws CoreException {
IFile file = createFile(PROJECT_NAME + "/mustBeA.rb", "");
assertEquals(RubyScript.class, factory.getAdapter(file, IRubyElement.class).getClass());
assertTrue(factory.getAdapter(file, IRubyElement.class) instanceof IRubyScript);
}
public void testGetAdapterForRBWFile() throws CoreException {
IFile file = createFile(PROJECT_NAME + "/mustBeA.rbw", "");
assertEquals(RubyScript.class, factory.getAdapter(file, IRubyElement.class).getClass());
assertTrue(factory.getAdapter(file, IRubyElement.class) instanceof IRubyScript);
}
public void testGetAdapterForProject() throws CoreException {
addRubyNature(PROJECT_NAME);
assertEquals(RubyProject.class, factory.getAdapter(project, IRubyElement.class).getClass());
assertTrue(factory.getAdapter(project, IRubyElement.class) instanceof IRubyProject);
}
}