def METHOD_NAME(diagram, element_factory):
    gen_cls_item, spc_cls_item, assoc_item = two_classes_and_an_association(
        diagram, element_factory
    )
    new_items = copy_clear_and_paste_link(
        {gen_cls_item, assoc_item, spc_cls_item}, diagram, element_factory
    )
    new_cls1 = next(
        element_factory.select(
            lambda e: isinstance(e, UML.NamedElement) and e.name == "Gen"
        )
    )
    new_cls2 = next(
        element_factory.select(
            lambda e: isinstance(e, UML.NamedElement) and e.name == "Spc"
        )
    )
    new_assoc = next(element_factory.select(UML.Association))
    assert new_assoc.memberEnd[0].type is new_cls2
    assert new_assoc.memberEnd[1].type is new_cls1
    assert new_assoc.memberEnd[0] in new_assoc.memberEnd[1].type.ownedAttribute
    assert new_cls1.presentation[0] in new_items
    assert new_cls2.presentation[0] in new_items
    assert new_assoc.presentation[0] in new_items
    assert new_assoc.presentation[0].head_subject
    assert new_assoc.presentation[0].tail_subject