blob: 3ec9343c353aa5e5d42a5512853da73111a595a5 [file] [log] [blame]
package org.eclipse.pde.ds.internal.annotations.tests;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assume.assumeTrue;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.Path;
import org.eclipse.jface.text.Document;
import org.eclipse.pde.internal.ds.core.IDSModel;
import org.eclipse.pde.internal.ds.core.text.DSModel;
import org.junit.After;
import org.junit.Before;
@SuppressWarnings("restriction")
public abstract class AnnotationProcessorTest extends TestBase {
protected IProject testProject;
protected IDSModel dsModel;
protected abstract String getTestProjectName();
protected abstract String getComponentDescriptorPath();
@Before
public void setUp() throws Exception {
testProject = ResourcesPlugin.getWorkspace().getRoot().getProject(getTestProjectName());
assumeTrue("Test project does not exist!", testProject.exists());
IFile dsFile = testProject.getFile(new Path(getComponentDescriptorPath()));
assertTrue("Missing component descriptor!", dsFile.exists());
ByteArrayOutputStream buf = new ByteArrayOutputStream();
try (InputStream src = dsFile.getContents()) {
byte[] bytes = new byte[4096];
int c;
while ((c = src.read(bytes)) != -1) {
buf.write(bytes, 0, c);
}
}
dsModel = new DSModel(new Document(buf.toString(dsFile.getCharset())), false);
dsModel.setUnderlyingResource(dsFile);
dsModel.load();
assertNotNull(dsModel.getDSComponent());
}
@After
public void tearDown() throws Exception {
if (dsModel != null) {
dsModel.dispose();
}
}
}