use of com.archimatetool.hammer.validation.issues.IIssue in project archi by archimatetool.
the class EmptyViewsCheckerTests method testGetIssues.
@Test
public void testGetIssues() {
List<IArchimateDiagramModel> views = new ArrayList<IArchimateDiagramModel>();
IArchimateDiagramModel dm = IArchimateFactory.eINSTANCE.createArchimateDiagramModel();
dm.setName("view");
views.add(dm);
EmptyViewsChecker checker = new EmptyViewsChecker(views);
// Should be warning
List<IIssue> issues = checker.getIssues();
assertEquals(1, issues.size());
assertTrue(issues.get(0) instanceof AdviceType);
assertSame(dm, issues.get(0).getObject());
// Add something to view for no issues
dm.getChildren().add(IArchimateFactory.eINSTANCE.createDiagramModelGroup());
issues = checker.getIssues();
assertEquals(0, issues.size());
}
use of com.archimatetool.hammer.validation.issues.IIssue in project archi by archimatetool.
the class JunctionsCheckerTests method testGetIssues.
@Test
public void testGetIssues() {
List<IArchimateElement> elements = new ArrayList<IArchimateElement>();
IArchimateElement e1 = IArchimateFactory.eINSTANCE.createBusinessActor();
elements.add(e1);
IArchimateElement junction = IArchimateFactory.eINSTANCE.createJunction();
elements.add(junction);
IArchimateElement e2 = IArchimateFactory.eINSTANCE.createBusinessActor();
elements.add(e2);
IArchimateRelationship rel1 = IArchimateFactory.eINSTANCE.createAssignmentRelationship();
rel1.connect(e1, junction);
IArchimateRelationship rel2 = IArchimateFactory.eINSTANCE.createAssignmentRelationship();
rel2.connect(junction, e2);
JunctionsChecker checker = new JunctionsChecker(elements);
// Should be OK
List<IIssue> issues = checker.getIssues();
assertEquals(0, issues.size());
// Add a different relationship
IArchimateRelationship rel3 = IArchimateFactory.eINSTANCE.createTriggeringRelationship();
rel3.connect(junction, e2);
issues = checker.getIssues();
assertEquals(1, issues.size());
assertSame(junction, issues.get(0).getObject());
}
use of com.archimatetool.hammer.validation.issues.IIssue in project archi by archimatetool.
the class NestedElementsCheckerTests method testGetIssues.
@Test
public void testGetIssues() {
List<IArchimateDiagramModel> views = new ArrayList<IArchimateDiagramModel>();
IArchimateDiagramModel dm = IArchimateFactory.eINSTANCE.createArchimateDiagramModel();
dm.setName("view");
views.add(dm);
IDiagramModelArchimateObject dmo1 = IArchimateFactory.eINSTANCE.createDiagramModelArchimateObject();
dmo1.setArchimateElement(IArchimateFactory.eINSTANCE.createGrouping());
dm.getChildren().add(dmo1);
IDiagramModelArchimateObject dmo2 = IArchimateFactory.eINSTANCE.createDiagramModelArchimateObject();
dmo2.setArchimateElement(IArchimateFactory.eINSTANCE.createLocation());
dmo1.getChildren().add(dmo2);
NestedElementsChecker checker = new NestedElementsChecker(views);
// Should not be ok
List<IIssue> issues = checker.getIssues();
assertEquals(1, issues.size());
assertSame(dmo2, issues.get(0).getObject());
// With this relationship should also not be OK
IDiagramModelArchimateConnection conn = IArchimateFactory.eINSTANCE.createDiagramModelArchimateConnection();
IArchimateRelationship relation = IArchimateFactory.eINSTANCE.createAssociationRelationship();
relation.connect(dmo1.getArchimateElement(), dmo2.getArchimateElement());
conn.setArchimateRelationship(relation);
conn.connect(dmo1, dmo2);
issues = checker.getIssues();
assertEquals(1, issues.size());
assertSame(dmo2, issues.get(0).getObject());
// With a valid relationship should be OK
relation = IArchimateFactory.eINSTANCE.createCompositionRelationship();
relation.connect(dmo1.getArchimateElement(), dmo2.getArchimateElement());
conn.setArchimateRelationship(relation);
issues = checker.getIssues();
assertEquals(0, issues.size());
}
use of com.archimatetool.hammer.validation.issues.IIssue in project archi by archimatetool.
the class ViewpointCheckerTests method testGetIssues.
@Test
public void testGetIssues() {
List<IArchimateDiagramModel> views = new ArrayList<IArchimateDiagramModel>();
IArchimateDiagramModel dm = IArchimateFactory.eINSTANCE.createArchimateDiagramModel();
dm.setName("view");
views.add(dm);
IDiagramModelArchimateObject dmo1 = IArchimateFactory.eINSTANCE.createDiagramModelArchimateObject();
dmo1.setArchimateElement(IArchimateFactory.eINSTANCE.createNode());
dm.getChildren().add(dmo1);
ViewpointChecker checker = new ViewpointChecker(views);
// Should be ok
List<IIssue> issues = checker.getIssues();
assertEquals(0, issues.size());
// Set viewpoint
dm.setViewpoint("organization");
issues = checker.getIssues();
assertEquals(1, issues.size());
assertSame(dmo1, issues.get(0).getObject());
}
use of com.archimatetool.hammer.validation.issues.IIssue in project archi by archimatetool.
the class DuplicateElementChecker method findDuplicateNamesElements.
List<IIssue> findDuplicateNamesElements() {
List<IIssue> issues = new ArrayList<IIssue>();
Set<IArchimateElement> dupes = new LinkedHashSet<IArchimateElement>();
for (int i = 0; i < fArchimateElements.size(); i++) {
for (int j = i + 1; j < fArchimateElements.size(); j++) {
IArchimateElement element1 = fArchimateElements.get(i);
IArchimateElement element2 = fArchimateElements.get(j);
if (isDuplicate(element1, element2)) {
dupes.add(element1);
dupes.add(element2);
}
}
}
for (IArchimateElement element : dupes) {
String description = NLS.bind(DESCRIPTION, new Object[] { element.getName(), ArchiLabelProvider.INSTANCE.getDefaultName(element.eClass()) });
IIssue issue = new WarningType(NAME, description, EXPLANATION, element);
issues.add(issue);
}
return issues;
}
Aggregations