blob: 427b32ba4f3a6b6cc20e2075463047d17c7f1108 [file] [log] [blame]
package org.eclipse.emf.edapt.tests.declaration;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.eclipse.emf.common.util.Diagnostic;
import org.eclipse.emf.ecore.util.Diagnostician;
import org.eclipse.emf.edapt.declaration.DeclarationFactory;
import org.eclipse.emf.edapt.declaration.Library;
import org.eclipse.emf.edapt.declaration.Operation;
import org.eclipse.emf.edapt.declaration.Parameter;
import org.eclipse.emf.edapt.internal.declaration.OperationExtractor;
import org.eclipse.emf.edapt.internal.declaration.OperationRegistry;
import junit.framework.Assert;
import junit.framework.TestCase;
/**
* Tests for the {@link OperationExtractor}.
*
* @author herrmama
* @author $Author$
* @version $Rev$
* @levd.rating RED Rev:
*/
@SuppressWarnings({ "deprecation", "restriction" })
public class OperationExtractorTest extends TestCase {
/** Test the extraction of all registered operations. */
public void testOperationExtraction() {
final OperationExtractor extractor = new OperationExtractor();
final Collection<Operation> operations = OperationRegistry.getInstance()
.getOperations();
Assert.assertEquals(71, operations.size());
for (final Operation operation : operations) {
final Class<?> c = operation.getImplementation();
final Operation extracted = extractor.extractOperation(c);
final Library library = DeclarationFactory.eINSTANCE.createLibrary();
library.getOperations().add(extracted);
final Diagnostic diagnostic = Diagnostician.INSTANCE.validate(extracted);
Assert.assertEquals(diagnostic.toString(), Diagnostic.OK,
diagnostic.getSeverity());
Assert.assertEquals(1, getMainParameters(extracted).size());
}
}
private List<Parameter> getMainParameters(Operation operation) {
final List<Parameter> mainParameters = new ArrayList<Parameter>();
for (final Parameter parameter : operation.getParameters()) {
if (parameter.isMain()) {
mainParameters.add(parameter);
}
}
return mainParameters;
}
}