package org.dresdenocl.tracer.test.standardlibrary;
import static org.junit.Assert.assertTrue;
import java.io.File;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import org.dresdenocl.facade.Ocl2ForEclipseFacade;
import org.dresdenocl.interpreter.test.OclInterpreterTestPlugin;
import org.dresdenocl.tracer.test.AbstractTracerTest;
import org.dresdenocl.tracer.test.TracerTestPlugin;
import org.dresdenocl.tracer.tracermodel.TracerRoot;
public class TestBag extends AbstractTracerTest {
private static final String CONSTRAINT_DIRECTORY =
"resources/constraints/standardlibrary/";
@BeforeClass
public static void setUp() throws Exception {
AbstractTracerTest.setUp();
}
@AfterClass
public static void tearDown() {
AbstractTracerTest.tearDown();
}
@Test
public void testBag01() throws Exception {
/* local variables to be passed */
String constraintFilePath = CONSTRAINT_DIRECTORY + "bag/equals01.ocl";
String[] objectTypeNames = { "Class1" };
TracerRoot tracedRoot;
tracedRoot =
getTraceFromInterpretation(MODEL1_PATH, INSTANCE1_PATH,
constraintFilePath, OclInterpreterTestPlugin.PLUGIN_ID,
objectTypeNames, Ocl2ForEclipseFacade.JAVA_META_MODEL,
Ocl2ForEclipseFacade.JAVA_MODEL_INSTANCE_TYPE);
/* Write the object to a file */
regressionFile =
AbstractTracerTest.getFile(
"resources/standardlibrary/bag01_regression.xml",
TracerTestPlugin.PLUGIN_ID);
temporaryDocument = serializeTracerRoot(tracedRoot);
/*
File f = new File("resources/standardlibrary/bag01_regression.xml");
Transformer tf = TransformerFactory.newInstance().newTransformer();
DOMSource source = new DOMSource(temporaryDocument);
StreamResult result = new StreamResult(f);
tf.transform(source, result);
*/
assertTrue("XML documents are not equal",
compareXmlFiles(regressionFile, temporaryDocument));
}
}