#ifndef TESTSUITE_MESSAGE_H
#define TESTSUITE_MESSAGE_H

#include "lib.h"
#include "master-service.h"

#include "sieve-common.h"
#include "sieve-tool.h"

extern struct sieve_message_data testsuite_msgdata;

void testsuite_message_init(void);
void testsuite_message_deinit(void);

void testsuite_message_flush(void);

void testsuite_message_set_string(const struct sieve_runtime_env *renv,
				  string_t *message);
void testsuite_message_set_file(const struct sieve_runtime_env *renv,
				const char *file_path);
void testsuite_message_set_mail(const struct sieve_runtime_env *renv,
				struct mail *mail);

void testsuite_envelope_set_sender_address(const struct sieve_runtime_env *renv,
					   const struct smtp_address *address);
void testsuite_envelope_set_sender(const struct sieve_runtime_env *renv,
				   const char *value);

void testsuite_envelope_set_recipient_address(
	const struct sieve_runtime_env *renv,
	const struct smtp_address *address);
void testsuite_envelope_set_recipient(const struct sieve_runtime_env *renv,
				      const char *value);

void testsuite_envelope_set_orig_recipient_address(
	const struct sieve_runtime_env *renv,
	const struct smtp_address *address);
void testsuite_envelope_set_orig_recipient(const struct sieve_runtime_env *renv,
					   const char *value);

void testsuite_envelope_set_auth_user(const struct sieve_runtime_env *renv,
				      const char *value);

#endif
