/** Set up the test environment. */
 protected void setUp() {
   AccuracyHelper.loadDefaultConfig();
   ModelElement element = new OperationImpl();
   oldDocumentations = new HashMap<TaggedValue, String>();
   newDocumentations = new HashMap<TaggedValue, String>();
   taggedValue = new TaggedValueImpl();
   taggedValue.setDataValue("oldValue");
   oldDocumentations.put(taggedValue, "oldValue");
   newDocumentations.put(taggedValue, "newValue");
   instance =
       new UpdateDocumentationTagsAction(
           element, newDocumentations, UpdateDocumentationTagsOperationType.UPDATE);
 }
  /**
   * Test <code>{@link UsecaseToolUtil#copyModelElementAttributes(ModelElement, ModelElement)}
   * </code> with success process.
   */
  public void testCopyModelElementAttributes_ModelElementModelElement_Success() {
    ModelElement newElement = new MockModelElementAbstractImpl();
    // set the old element's values
    modelElement.setName("name");
    modelElement.setSpecification(true);
    modelElement.setVisibility(VisibilityKind.PUBLIC);

    Stereotype stereotype = new StereotypeImpl();
    modelElement.addStereotype(stereotype);

    TemplateParameter templateParameter = new TemplateParameterImpl();
    modelElement.addTemplateParameter(templateParameter);

    TemplateArgument templateArgument = new TemplateArgumentImpl();
    modelElement.addTemplateArgument(templateArgument);

    ElementImport elementImport = new ElementImportImpl();
    modelElement.addElementImport(elementImport);

    StateMachine stateMachine = new StateMachineImpl();
    modelElement.addBehavior(stateMachine);

    TaggedValue taggedValue = new TaggedValueImpl();
    taggedValue.setDataValue("str");
    modelElement.addTaggedValue(taggedValue);
    modelElement.addReferenceTag(taggedValue);
    modelElement.addDefaultParameter(templateParameter);
    // call the copy method
    usecaseToolUtil.copyModelElementAttributes(modelElement, newElement);
    // verify the new element's values
    assertEquals("name", newElement.getName());
    assertTrue(newElement.isSpecification());
    assertEquals(VisibilityKind.PUBLIC, newElement.getVisibility());
    assertEquals(stereotype, newElement.getStereotypes().iterator().next());
    assertEquals(templateParameter, newElement.getTemplateParameters().get(0));
    assertEquals(templateArgument, newElement.getTemplateArguments().iterator().next());
    assertEquals(elementImport, newElement.getElementImports().iterator().next());
    assertEquals(stateMachine, newElement.getBehaviors().iterator().next());
    assertEquals("str", modelElement.getTaggedValues().iterator().next().getDataValue());
    assertEquals("str", modelElement.getReferenceTags().iterator().next().getDataValue());
    assertEquals(templateParameter, modelElement.getDefaultParameters().iterator().next());
  }