public void testDeclares() { IProgramElement node = model.getRoot(); assertNotNull(node); IProgramElement aspect = model.findElementForType(null, "DeclareCoverage"); assertNotNull(aspect); String label = "declare error: \"Illegal construct..\""; IProgramElement decErrNode = model.findElementForSignature(aspect, IProgramElement.Kind.DECLARE_ERROR, "declare error"); assertNotNull(decErrNode); assertEquals(decErrNode.toLabelString(), label); String decWarnMessage = "declare warning: \"Illegal call.\""; IProgramElement decWarnNode = model.findElementForSignature( aspect, IProgramElement.Kind.DECLARE_WARNING, "declare warning"); assertNotNull(decWarnNode); assertEquals(decWarnNode.toLabelString(), decWarnMessage); String decParentsMessage = "declare parents: implements Serializable"; IProgramElement decParentsNode = model.findElementForSignature( aspect, IProgramElement.Kind.DECLARE_PARENTS, "declare parents"); assertNotNull(decParentsNode); assertEquals(decParentsNode.toLabelString(), decParentsMessage); // check the next two relative to this one int declareIndex = decParentsNode.getParent().getChildren().indexOf(decParentsNode); String decParentsPtnMessage = "declare parents: extends Observable"; assertEquals( decParentsPtnMessage, ((IProgramElement) aspect.getChildren().get(declareIndex + 1)).toLabelString()); String decParentsTPMessage = "declare parents: extends Observable"; assertEquals( decParentsTPMessage, ((IProgramElement) aspect.getChildren().get(declareIndex + 2)).toLabelString()); String decSoftMessage = "declare soft: SizeException"; IProgramElement decSoftNode = model.findElementForSignature(aspect, IProgramElement.Kind.DECLARE_SOFT, "declare soft"); assertNotNull(decSoftNode); assertEquals(decSoftNode.toLabelString(), decSoftMessage); String decPrecMessage = "declare precedence: AdviceCoverage, InterTypeDecCoverage, <type pattern>"; IProgramElement decPrecNode = model.findElementForSignature( aspect, IProgramElement.Kind.DECLARE_PRECEDENCE, "declare precedence"); assertNotNull(decPrecNode); assertEquals(decPrecNode.toLabelString(), decPrecMessage); }