blob: bbfd64e1d44322f8955a0393a893e41f884e59b4 [file] [log] [blame]
package org.eclipse.emf.henshin.text.transformation.tests
import org.w3c.dom.Document
import org.eclipse.emf.henshin.text.transformation.tests.util.AdaptID
import org.eclipse.emf.henshin.text.transformation.tests.util.Compare
import org.junit.Assert
import org.junit.Test
import org.eclipse.emf.henshin.text.transformation.tests.util.DocumentUtil
import java.io.File
import org.eclipse.emf.henshin.text.ui.util.Transformation
class TestTransformation {
val DocumentUtil document= new DocumentUtil()
val AdaptID adaptID =new AdaptID()
val Compare compare=new Compare()
val Transformation transfom=new Transformation()
val transformationPath="platform:/resource/org.eclipse.emf.henshin.text.transformation/transforms/Henshin_text2HenshinTransformation/Henshin_text2HenshinTransformation.qvto"
@Test
def bankTest(){
val originalPath="testCases/bank/bank.henshin"
val transformationPath=document.saveResource(transfom.transformHenshin_textToHenshin(null,transformationPath,"testCases/bank/bank.henshin_text"))
val adaptPath=transformationPath.replace("henshin_text.henshin","henshin_textAdapt.henshin")
assertModelEquality(originalPath,transformationPath,adaptPath)
cleanUp(transformationPath)
cleanUp(adaptPath)
}
@Test
def gridFullNestedTest(){
val originalPath="testCases/grid-full_nestedUnits/grid-full.henshin"
val transformationPath=document.saveResource(transfom.transformHenshin_textToHenshin(null,transformationPath,"testCases/grid-full_nestedUnits/grid-full.henshin_text"))
val adaptPath=transformationPath.replace("henshin_text.henshin","henshin_textAdapt.henshin")
assertModelEquality(originalPath,transformationPath,adaptPath)
cleanUp(transformationPath)
cleanUp(adaptPath)
}
@Test
def gridFullTest(){
val originalPath="testCases/grid-full/grid-full.henshin"
val transformationPath=document.saveResource(transfom.transformHenshin_textToHenshin(null,transformationPath,"testCases/grid-full/grid-full.henshin_text"))
val adaptPath=transformationPath.replace("henshin_text.henshin","henshin_textAdapt.henshin")
assertModelEquality(originalPath,transformationPath,adaptPath)
cleanUp(transformationPath)
cleanUp(adaptPath)
}
@Test
def moviesTest(){
val originalPath="testCases/movies/movies.henshin"
val transformationPath=document.saveResource(transfom.transformHenshin_textToHenshin(null,transformationPath,"testCases/movies/movies.henshin_text"))
val adaptPath=transformationPath.replace("henshin_text.henshin","henshin_textAdapt.henshin")
assertModelEquality(originalPath,transformationPath,adaptPath)
cleanUp(transformationPath)
cleanUp(adaptPath)
}
@Test
def mutualexclusionTest(){
val originalPath="testCases/mutualexclusion/mutualexclusion.henshin"
val transformationPath=document.saveResource(transfom.transformHenshin_textToHenshin(null,transformationPath,"testCases/mutualexclusion/mutualexclusion.henshin_text"))
val adaptPath=transformationPath.replace("henshin_text.henshin","henshin_textAdapt.henshin")
assertModelEquality(originalPath,transformationPath,adaptPath)
cleanUp(transformationPath)
cleanUp(adaptPath)
}
def void assertModelEquality(String originalPath,String transformationPath,String adaptPath){
if(adaptPath.equals("Error! Can not save!")){
Assert::fail(adaptPath)
}
val Document originalXML = document.getDocument(originalPath)
var Document transformationXML = document.getDocument(transformationPath)
if((originalXML==null) || (transformationXML==null)){
Assert::fail("Can not load file!");
}
adaptID.adaptID(originalXML,transformationXML,adaptPath)
transformationXML = document.getDocument(adaptPath)
var message=compare.compareAttributesByNode(originalXML.getChildNodes(),transformationXML.getChildNodes())
if(!(message.equals(""))){
Assert::fail(message)
}
message=compare.emfCompare(originalPath,adaptPath)
if(!(message.equals(""))){
Assert::fail(message)
}
}
def void cleanUp(String path){
val File currentFile = new File(path);
//currentFile.delete()
}
}