blob: 73dc4440456ca0e75540eb33ad86fa82089bd3ab [file] [log] [blame]
package org.eclipse.emf.ecp.validation.test;
import static org.junit.Assert.*;
import java.util.Set;
import org.eclipse.emf.common.util.Diagnostic;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecp.validation.api.IValidationService;
import org.eclipse.emf.ecp.validation.api.IValidationServiceProvider;
import org.eclipse.emf.ecp.validation.test.test.Library;
import org.eclipse.emf.ecp.validation.test.test.TestFactory;
import org.eclipse.emf.ecp.validation.test.test.TestPackage;
import org.eclipse.emf.ecp.validation.test.test.Writer;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
public class ValidationTest {
private static IValidationServiceProvider validationServiceProvider;
@BeforeClass
public static void setUpBeforeClass() throws Exception {
validationServiceProvider = Activator.getValidationService();
}
@AfterClass
public static void tearDownAfterClass() throws Exception {
}
@Before
public void setUp() throws Exception {
}
@After
public void tearDown() throws Exception {
}
@Test
public void testSingleObject() {
Writer writer=TestFactory.eINSTANCE.createWriter();
IValidationService validationService= validationServiceProvider.getValidationService(writer);
validationService.validate(writer);
Diagnostic diagnostic= validationService.getDiagnostic(writer);
assertEquals(Diagnostic.ERROR, diagnostic.getSeverity());
assertEquals(1, diagnostic.getChildren().size());
assertEquals(2,diagnostic.getChildren().get(0).getData().size());
assertEquals(TestPackage.eINSTANCE.getWriter_FirstName(),diagnostic.getChildren().get(0).getData().get(1));
}
@Test
public void testCorrectValidation(){
Writer writer=TestFactory.eINSTANCE.createWriter();
IValidationService validationService= validationServiceProvider.getValidationService(writer);
writer.setFirstName("Test");
validationService.validate(writer);
Diagnostic diagnostic= validationService.getDiagnostic(writer);
assertEquals(Diagnostic.OK, diagnostic.getSeverity());
}
@Test
public void testPropagation(){
Library library=TestFactory.eINSTANCE.createLibrary();
Writer writer=TestFactory.eINSTANCE.createWriter();
library.setName("TesLib");
library.getWriters().add(writer);
IValidationService validationService= validationServiceProvider.getValidationService(library);
Set<EObject> affectedElements=validationService.validate(writer);
assertEquals(1, affectedElements.size());
Diagnostic diagnosticWriter= validationService.getDiagnostic(writer);
assertEquals(Diagnostic.ERROR, diagnosticWriter.getSeverity());
Diagnostic diagnosticLib= validationService.getDiagnostic(library);
assertEquals(Diagnostic.ERROR, diagnosticLib.getSeverity());
assertEquals(1, diagnosticLib.getChildren().size());
assertEquals(2,diagnosticLib.getChildren().get(0).getData().size());
assertEquals(TestPackage.eINSTANCE.getWriter_FirstName(),diagnosticLib.getChildren().get(0).getData().get(1));
}
}