def METHOD_NAME():
    paragraph = Paragraph('A paragraph with some text.', style='boxed')
    paragraph.classes.append('cls1')
    paragraph_with_id = Paragraph('A paragraph with an ID.', id='par')
    paragraph_with_id.classes.extend(['cls2', 'cls3'])
    refpar = ReferencingParagraph(paragraph)
    refpar_by_id = ReferencingParagraph('par')
    doctree = DocumentTree([paragraph, paragraph_with_id, refpar, refpar_by_id])
    document = Article(doctree)
    container = FakeContainer(document)
    document.prepare(container)
    stylesheet = document.stylesheet
    refpar_match1 = ReferencingParagraph.like(target_style='boxed')
    refpar_match2 = ReferencingParagraph.like(target_has_class='cls1')
    refpar_match3 = ReferencingParagraph.like(target_style='boxed',
                                              target_has_class='cls1')
    refpar_by_id_match = ReferencingParagraph.like(target_has_classes=['cls2', 'cls3'])
    bad_match = ReferencingParagraph.like(target_style='boxed',
                                          target_has_class='cls2')
    assert refpar_match1.match(refpar, stylesheet, document)
    assert refpar_match2.match(refpar, stylesheet, document)
    assert refpar_match3.match(refpar, stylesheet, document)
    assert refpar_by_id_match.match(refpar_by_id, stylesheet, document)
    assert not refpar_match1.match(refpar_by_id, stylesheet, document)
    assert not refpar_match2.match(refpar_by_id, stylesheet, document)
    assert not refpar_match3.match(refpar_by_id, stylesheet, document)
    assert not refpar_by_id_match.match(refpar, stylesheet, document)
    assert not bad_match.match(paragraph, stylesheet, document)
    assert not bad_match.match(paragraph_with_id, stylesheet, document)
    assert not bad_match.match(refpar, stylesheet, document)
    assert not bad_match.match(refpar_by_id, stylesheet, document)