blob: 12ac746fe95047790a07e036964a946605e6ea6c [file] [log] [blame]
/**
* <copyright>
*
* Copyright (c) 2015 itemis and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html
*
* Contributors:
* itemis - Initial API and implementation
*
* </copyright>
*/
package org.eclipse.sphinx.tests.emf.workspace.resources;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.notNullValue;
import static org.junit.Assert.assertThat;
import java.util.Collection;
import org.eclipse.core.resources.IMarker;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.edit.provider.IWrapperItemProvider;
import org.eclipse.emf.edit.provider.WrapperItemProvider;
import org.eclipse.sphinx.emf.edit.TransientItemProvider;
import org.eclipse.sphinx.tests.emf.workspace.resources.scenarios.BasicModelProblemMarkerFinderScenario;
import org.junit.Test;
@SuppressWarnings("nls")
public class BasicModelProblemMarkerFinderTest {
public BasicModelProblemMarkerFinderTest() throws Exception {
super();
}
protected int count(Collection<IMarker> problemMarkers, int severity) throws CoreException {
int count = 0;
for (IMarker problemMarker : problemMarkers) {
if (problemMarker.getAttribute(IMarker.SEVERITY, -1) == severity) {
count++;
}
}
return count;
}
private static class EObjectProblemMarkerFinderScenario extends BasicModelProblemMarkerFinderScenario {
public EObject eObject0;
public EObject eObject1;
public EObject eObject2;
public EObject eObject3;
public EObject eObject6;
public EObjectProblemMarkerFinderScenario() throws CoreException {
eObject0 = BasicModelProblemMarkerFinderScenario.createTestEObject("platform:/resource/myProject/myFile#/eObject0");
addExpectedProblemMarkers(eObject0, 0, 0, 0);
eObject1 = BasicModelProblemMarkerFinderScenario.createTestEObject("platform:/resource/myProject/myFile#/eObject1");
addExpectedProblemMarkers(eObject1, 1, 0, 0);
eObject2 = BasicModelProblemMarkerFinderScenario.createTestEObject("platform:/resource/myProject/myFile#/eObject2");
addExpectedProblemMarkers(eObject2, 0, 2, 0);
eObject3 = BasicModelProblemMarkerFinderScenario.createTestEObject("platform:/resource/myProject/myFile#/eObject3");
addExpectedProblemMarkers(eObject3, 0, 0, 3);
eObject6 = BasicModelProblemMarkerFinderScenario.createTestEObject("platform:/resource/myProject/myFile#/eObject6");
addExpectedProblemMarkers(eObject6, 1, 2, 3);
}
};
@Test
public void testGetProblemMarkersForEObject() throws Exception {
EObjectProblemMarkerFinderScenario scenario = new EObjectProblemMarkerFinderScenario();
TestableModelProblemMarkerFinder modelProblemMarkerFinder = new TestableModelProblemMarkerFinder(scenario);
Collection<IMarker> problemMarkers = modelProblemMarkerFinder.getProblemMarkers(scenario.eObject0);
assertThat(problemMarkers, notNullValue());
assertThat(problemMarkers.size(), equalTo(0));
problemMarkers = modelProblemMarkerFinder.getProblemMarkers(scenario.eObject1);
assertThat(problemMarkers, notNullValue());
assertThat(problemMarkers.size(), equalTo(1));
assertThat(count(problemMarkers, IMarker.SEVERITY_ERROR), equalTo(1));
problemMarkers = modelProblemMarkerFinder.getProblemMarkers(scenario.eObject2);
assertThat(problemMarkers, notNullValue());
assertThat(problemMarkers.size(), equalTo(2));
assertThat(count(problemMarkers, IMarker.SEVERITY_WARNING), equalTo(2));
problemMarkers = modelProblemMarkerFinder.getProblemMarkers(scenario.eObject3);
assertThat(problemMarkers, notNullValue());
assertThat(problemMarkers.size(), equalTo(3));
assertThat(count(problemMarkers, IMarker.SEVERITY_INFO), equalTo(3));
problemMarkers = modelProblemMarkerFinder.getProblemMarkers(scenario.eObject6);
assertThat(problemMarkers, notNullValue());
assertThat(problemMarkers.size(), equalTo(6));
assertThat(count(problemMarkers, IMarker.SEVERITY_ERROR), equalTo(1));
assertThat(count(problemMarkers, IMarker.SEVERITY_WARNING), equalTo(2));
assertThat(count(problemMarkers, IMarker.SEVERITY_INFO), equalTo(3));
}
@Test
public void testGetSeverityOfEObject() throws Exception {
EObjectProblemMarkerFinderScenario scenario = new EObjectProblemMarkerFinderScenario();
TestableModelProblemMarkerFinder modelProblemMarkerFinder = new TestableModelProblemMarkerFinder(scenario);
assertThat(modelProblemMarkerFinder.getSeverity(scenario.eObject0), equalTo(-1));
assertThat(modelProblemMarkerFinder.getSeverity(scenario.eObject1), equalTo(IMarker.SEVERITY_ERROR));
assertThat(modelProblemMarkerFinder.getSeverity(scenario.eObject2), equalTo(IMarker.SEVERITY_WARNING));
assertThat(modelProblemMarkerFinder.getSeverity(scenario.eObject3), equalTo(IMarker.SEVERITY_INFO));
assertThat(modelProblemMarkerFinder.getSeverity(scenario.eObject6), equalTo(IMarker.SEVERITY_ERROR));
}
private class TransientItemProviderProblemMarkerFinderScenario extends EObjectProblemMarkerFinderScenario {
public TransientItemProvider transientItemProvider0;
public TransientItemProvider transientItemProvider1;
public TransientItemProvider transientItemProvider2;
public TransientItemProvider transientItemProvider3;
public TransientItemProvider transientItemProvider6;
public TransientItemProviderProblemMarkerFinderScenario() throws CoreException {
super();
transientItemProvider0 = new TransientItemProvider(null);
eObject0.eAdapters().add(transientItemProvider0);
transientItemProvider1 = new TransientItemProvider(null);
eObject1.eAdapters().add(transientItemProvider1);
transientItemProvider2 = new TransientItemProvider(null);
eObject2.eAdapters().add(transientItemProvider2);
transientItemProvider3 = new TransientItemProvider(null);
eObject3.eAdapters().add(transientItemProvider3);
transientItemProvider6 = new TransientItemProvider(null);
eObject6.eAdapters().add(transientItemProvider6);
}
}
@Test
public void testGetProblemMarkersForTransientItemProvider() throws Exception {
TransientItemProviderProblemMarkerFinderScenario scenario = new TransientItemProviderProblemMarkerFinderScenario();
TestableModelProblemMarkerFinder modelProblemMarkerFinder = new TestableModelProblemMarkerFinder(scenario);
Collection<IMarker> problemMarkers = modelProblemMarkerFinder.getProblemMarkers(scenario.transientItemProvider0);
assertThat(problemMarkers, notNullValue());
assertThat(problemMarkers.size(), equalTo(0));
problemMarkers = modelProblemMarkerFinder.getProblemMarkers(scenario.transientItemProvider1);
assertThat(problemMarkers, notNullValue());
assertThat(problemMarkers.size(), equalTo(0));
problemMarkers = modelProblemMarkerFinder.getProblemMarkers(scenario.transientItemProvider2);
assertThat(problemMarkers, notNullValue());
assertThat(problemMarkers.size(), equalTo(0));
problemMarkers = modelProblemMarkerFinder.getProblemMarkers(scenario.transientItemProvider3);
assertThat(problemMarkers, notNullValue());
assertThat(problemMarkers.size(), equalTo(0));
problemMarkers = modelProblemMarkerFinder.getProblemMarkers(scenario.transientItemProvider6);
assertThat(problemMarkers, notNullValue());
assertThat(problemMarkers.size(), equalTo(0));
}
@Test
public void testGetSeverityOfTransientItemProvider() throws Exception {
TransientItemProviderProblemMarkerFinderScenario scenario = new TransientItemProviderProblemMarkerFinderScenario();
TestableModelProblemMarkerFinder modelProblemMarkerFinder = new TestableModelProblemMarkerFinder(scenario);
assertThat(modelProblemMarkerFinder.getSeverity(scenario.transientItemProvider0), equalTo(-1));
assertThat(modelProblemMarkerFinder.getSeverity(scenario.transientItemProvider1), equalTo(-1));
assertThat(modelProblemMarkerFinder.getSeverity(scenario.transientItemProvider2), equalTo(-1));
assertThat(modelProblemMarkerFinder.getSeverity(scenario.transientItemProvider3), equalTo(-1));
assertThat(modelProblemMarkerFinder.getSeverity(scenario.transientItemProvider6), equalTo(-1));
}
private class WrapperItemProviderProblemMarkerFinderScenario extends EObjectProblemMarkerFinderScenario {
public IWrapperItemProvider wrapperItemProvider0;
public IWrapperItemProvider wrapperItemProvider1;
public IWrapperItemProvider wrapperItemProvider2;
public IWrapperItemProvider wrapperItemProvider3;
public IWrapperItemProvider wrapperItemProvider6;
public WrapperItemProviderProblemMarkerFinderScenario() throws CoreException {
super();
wrapperItemProvider0 = new WrapperItemProvider(eObject0, null, null, -1, null);
wrapperItemProvider1 = new WrapperItemProvider(eObject1, null, null, -1, null);
wrapperItemProvider2 = new WrapperItemProvider(eObject2, null, null, -1, null);
wrapperItemProvider3 = new WrapperItemProvider(eObject3, null, null, -1, null);
wrapperItemProvider6 = new WrapperItemProvider(eObject6, null, null, -1, null);
}
}
@Test
public void testGetProblemMarkersForWrapperItemProvider() throws Exception {
WrapperItemProviderProblemMarkerFinderScenario scenario = new WrapperItemProviderProblemMarkerFinderScenario();
TestableModelProblemMarkerFinder modelProblemMarkerFinder = new TestableModelProblemMarkerFinder(scenario);
Collection<IMarker> problemMarkers = modelProblemMarkerFinder.getProblemMarkers(scenario.wrapperItemProvider0);
assertThat(problemMarkers, notNullValue());
assertThat(problemMarkers.size(), equalTo(0));
problemMarkers = modelProblemMarkerFinder.getProblemMarkers(scenario.wrapperItemProvider1);
assertThat(problemMarkers, notNullValue());
assertThat(problemMarkers.size(), equalTo(1));
assertThat(count(problemMarkers, IMarker.SEVERITY_ERROR), equalTo(1));
problemMarkers = modelProblemMarkerFinder.getProblemMarkers(scenario.wrapperItemProvider2);
assertThat(problemMarkers, notNullValue());
assertThat(problemMarkers.size(), equalTo(2));
assertThat(count(problemMarkers, IMarker.SEVERITY_WARNING), equalTo(2));
problemMarkers = modelProblemMarkerFinder.getProblemMarkers(scenario.wrapperItemProvider3);
assertThat(problemMarkers, notNullValue());
assertThat(problemMarkers.size(), equalTo(3));
assertThat(count(problemMarkers, IMarker.SEVERITY_INFO), equalTo(3));
problemMarkers = modelProblemMarkerFinder.getProblemMarkers(scenario.wrapperItemProvider6);
assertThat(problemMarkers, notNullValue());
assertThat(problemMarkers.size(), equalTo(6));
assertThat(count(problemMarkers, IMarker.SEVERITY_ERROR), equalTo(1));
assertThat(count(problemMarkers, IMarker.SEVERITY_WARNING), equalTo(2));
assertThat(count(problemMarkers, IMarker.SEVERITY_INFO), equalTo(3));
}
@Test
public void testGetSeverityOfWrapperItemProvider() throws Exception {
WrapperItemProviderProblemMarkerFinderScenario scenario = new WrapperItemProviderProblemMarkerFinderScenario();
TestableModelProblemMarkerFinder modelProblemMarkerFinder = new TestableModelProblemMarkerFinder(scenario);
assertThat(modelProblemMarkerFinder.getSeverity(scenario.wrapperItemProvider0), equalTo(-1));
assertThat(modelProblemMarkerFinder.getSeverity(scenario.wrapperItemProvider1), equalTo(IMarker.SEVERITY_ERROR));
assertThat(modelProblemMarkerFinder.getSeverity(scenario.wrapperItemProvider2), equalTo(IMarker.SEVERITY_WARNING));
assertThat(modelProblemMarkerFinder.getSeverity(scenario.wrapperItemProvider3), equalTo(IMarker.SEVERITY_INFO));
assertThat(modelProblemMarkerFinder.getSeverity(scenario.wrapperItemProvider6), equalTo(IMarker.SEVERITY_ERROR));
}
}