package org.camunda.bpm.extension.osgi.fileinstall.impl;
import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.notNullValue;
import static org.junit.Assert.assertThat;
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.camunda.bpm.extension.osgi.fileinstall.impl.BpmnDeploymentListener;
import org.junit.Before;
import org.junit.Test;
import org.w3c.dom.Document;
import org.xml.sax.SAXParseException;
public class BpmnDeploymentListenerTest {
private BpmnDeploymentListener listener;
@Before
public void setUp() {
listener = new BpmnDeploymentListener();
}
@Test
public void canHandleBpmnFile() {
File file = new File("src/test/resources/testprocess.bpmn");
boolean canHandle = listener.canHandle(file);
assertThat(canHandle, is(true));
}
@Test
public void canHandleBpmnXmlFile() throws IOException {
File bpmnXmlFile = new File("testprocess.bpmn20.xml");
FileUtils.copyFile(new File("src/test/resources/testprocess.bpmn"),
bpmnXmlFile);
bpmnXmlFile.deleteOnExit();
boolean canHandle = listener.canHandle(bpmnXmlFile);
assertThat(canHandle, is(true));
}
@Test
public void parseBpmnFile() throws Exception {
Document doc = listener.parse(new File(
"src/test/resources/testprocess.bpmn"));
assertThat(doc, is(notNullValue()));
assertThat(doc.getDocumentElement().toString(),
containsString("bpmn2:definitions"));
}
@Test(expected = IllegalArgumentException.class)
public void parseNull() throws Exception {
Document doc = listener.parse(null);
assertThat(doc, is(notNullValue()));
}
@Test(expected=SAXParseException.class)
public void parseWrongFile() throws Exception {
File file = new File("test.txt");
file.deleteOnExit();
FileUtils.write(file, "bpmn xml process defintion task");
Document doc = listener.parse(file);
assertThat(doc, is(notNullValue()));
}
}