def _exchange_online_move_message_to_folder_function(self, event, *args, **kwargs):
        """Function: This function will move an Exchange Online message to the specified folder in the users mailbox."""
        try:
            # Initialize the results payload
            rp = ResultPayload(CONFIG_DATA_SECTION, **kwargs)

            # Validate fields
            validate_fields(['exo_email_address', 'exo_messages_id', 'exo_destination_mailfolder_id'], kwargs)

            # Get the function parameters:
            email_address = kwargs.get("exo_email_address")  # text
            message_id = kwargs.get("exo_messages_id")  # text
            mailfolders_id = kwargs.get("exo_mailfolders_id")  # text
            destination_id = kwargs.get("exo_destination_mailfolder_id")  # text

            LOG.info(u"exo_email_address: %s", email_address)
            LOG.info(u"exo_messages_id: %s", message_id)
            LOG.info(u"exo_mailfolders_id: %s", mailfolders_id)
            LOG.info(u"exo_destination_id: %s", destination_id)

            yield StatusMessage(u"Starting move message for email address: {} to mail folder {}".format(email_address, destination_id))

            # Get the MS Graph helper class
            MS_graph_helper = MSGraphHelper(self.options.get("microsoft_graph_token_url"),
                                            self.options.get("microsoft_graph_url"),
                                            self.options.get("tenant_id"),
                                            self.options.get("client_id"),
                                            self.options.get("client_secret"),
                                            self.options.get("max_messages"),
                                            self.options.get("max_users"),
                                            RequestsCommon(self.opts, self.options).get_proxies())

            # Call MS Graph API to get the user profile
            response = MS_graph_helper.move_message(email_address, mailfolders_id, message_id, destination_id)

            # If message was deleted a 201 code is returned.
            if response.status_code == 201:
                success = True
                new_message_id = response.json().get('id')
                response_json = {'new_message_id': new_message_id}
            else:
                success = False
                response_json = response.json()

            results = rp.done(success, response_json)

            yield StatusMessage(u"Returning delete results for email address: {}".format(email_address))

            # Produce a FunctionResult with the results
            yield FunctionResult(results)
        except Exception as err:
            LOG.error(err)
            yield FunctionError(err)
    def test_move_message(self, authenticate_mock, post_mock):
        """ Test Move Message"""
        print("Test Move Message\n")
        content = {"displayName": "Tester"}

        try:
            authenticate_mock.return_value = True
            MS_graph_helper = MSGraphHelper(
                MOCKED_OPTS.get("microsoft_graph_token_url"),
                MOCKED_OPTS.get("microsoft_graph_url"),
                MOCKED_OPTS.get("tenant_id"), MOCKED_OPTS.get("client_id"),
                MOCKED_OPTS.get("client_secret"),
                MOCKED_OPTS.get("max_messages"), MOCKED_OPTS.get("max_users"),
                MOCKED_OPTS.get("max_retries_total"),
                MOCKED_OPTS.get("max_retries_backoff_factor"),
                MOCKED_OPTS.get("max_batched_requests"), None)

            post_mock.return_value = generate_response(content, 201)

            response = MS_graph_helper.move_message(
                "*****@*****.**", None, "AAA",
                {'name': "recoverableitemsdeletions"})
            assert response.status_code == 201
            assert response.content["displayName"] == "Tester"

            post_mock.return_value = generate_response(content, 404)
            response = MS_graph_helper.move_message(
                "*****@*****.**", None, "AAA",
                {'name': "recoverableitemsdeletions"})
            assert response.status_code == 404
            assert response.content["displayName"] == "Tester"

            post_mock.return_value = generate_response(content, 300)
            response = MS_graph_helper.move_message(
                "*****@*****.**", None, "AAA",
                {'name': "recoverableitemsdeletions"})

        except IntegrationError as err:
            assert True