def METHOD_NAME(purged_desired, purged_actual, excn, create, delete, updated, caplog):
    """
    purged_actual and excn are conceptually equivalent, this test case serves to prove that they are in fact, equivalent
    """
    caplog.set_level(logging.DEBUG)
    @resource("aa::Aa", "aa", "aa")
    class TestResource(PurgeableResource):
        fields = ("value",)
    class DummyCrud(CRUDHandler[TestResource]):
        def __init__(self):
            self.updated = False
            self.created = False
            self.deleted = False
        def read_resource(self, ctx: HandlerContext, resource: TestResource) -> None:
            resource.purged = purged_actual
            if updated:
                resource.value = "b"
            if excn:
                raise ResourcePurged()
        def update_resource(self, ctx: HandlerContext, changes: dict, resource: TestResource) -> None:
            self.updated = True
        def create_resource(self, ctx: HandlerContext, resource: TestResource) -> None:
            self.created = True
        def delete_resource(self, ctx: HandlerContext, resource: TestResource) -> None:
            self.deleted = True
    res = TestResource(Id("aa::Aa", "aa", "aa", "aa", 1))
    res.purged = purged_desired
    res.value = "a"
    ctx = HandlerContext(res, False)
    handler = DummyCrud()
    handler.execute(ctx, res, False)
    assert handler.updated == ((not (create or delete)) and updated and not purged_desired)
    assert handler.created == create
    assert handler.deleted == delete
    no_error_in_logs(caplog)
    log_contains(caplog, "inmanta.agent.handler", logging.DEBUG, "resource aa::Aa[aa,aa=aa],v=1: Calling read_resource")