/* fsotest.h generated by valac 0.16.1, the Vala compiler, do not modify */


#ifndef __FSOTEST_H__
#define __FSOTEST_H__

#include <glib.h>
#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <gio/gio.h>

G_BEGIN_DECLS


#define FSO_FRAMEWORK_TEST_TYPE_ASSERT (fso_framework_test_assert_get_type ())
#define FSO_FRAMEWORK_TEST_ASSERT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_FRAMEWORK_TEST_TYPE_ASSERT, FsoFrameworkTestAssert))
#define FSO_FRAMEWORK_TEST_ASSERT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_FRAMEWORK_TEST_TYPE_ASSERT, FsoFrameworkTestAssertClass))
#define FSO_FRAMEWORK_TEST_IS_ASSERT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_FRAMEWORK_TEST_TYPE_ASSERT))
#define FSO_FRAMEWORK_TEST_IS_ASSERT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_FRAMEWORK_TEST_TYPE_ASSERT))
#define FSO_FRAMEWORK_TEST_ASSERT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_FRAMEWORK_TEST_TYPE_ASSERT, FsoFrameworkTestAssertClass))

typedef struct _FsoFrameworkTestAssert FsoFrameworkTestAssert;
typedef struct _FsoFrameworkTestAssertClass FsoFrameworkTestAssertClass;
typedef struct _FsoFrameworkTestAssertPrivate FsoFrameworkTestAssertPrivate;

#define FSO_FRAMEWORK_TEST_TYPE_MULTI_SIGNAL_WAITER (fso_framework_test_multi_signal_waiter_get_type ())
#define FSO_FRAMEWORK_TEST_MULTI_SIGNAL_WAITER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_FRAMEWORK_TEST_TYPE_MULTI_SIGNAL_WAITER, FsoFrameworkTestMultiSignalWaiter))
#define FSO_FRAMEWORK_TEST_MULTI_SIGNAL_WAITER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_FRAMEWORK_TEST_TYPE_MULTI_SIGNAL_WAITER, FsoFrameworkTestMultiSignalWaiterClass))
#define FSO_FRAMEWORK_TEST_IS_MULTI_SIGNAL_WAITER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_FRAMEWORK_TEST_TYPE_MULTI_SIGNAL_WAITER))
#define FSO_FRAMEWORK_TEST_IS_MULTI_SIGNAL_WAITER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_FRAMEWORK_TEST_TYPE_MULTI_SIGNAL_WAITER))
#define FSO_FRAMEWORK_TEST_MULTI_SIGNAL_WAITER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_FRAMEWORK_TEST_TYPE_MULTI_SIGNAL_WAITER, FsoFrameworkTestMultiSignalWaiterClass))

typedef struct _FsoFrameworkTestMultiSignalWaiter FsoFrameworkTestMultiSignalWaiter;
typedef struct _FsoFrameworkTestMultiSignalWaiterClass FsoFrameworkTestMultiSignalWaiterClass;
typedef struct _FsoFrameworkTestMultiSignalWaiterPrivate FsoFrameworkTestMultiSignalWaiterPrivate;

#define FSO_FRAMEWORK_TEST_TYPE_TEST_CASE (fso_framework_test_test_case_get_type ())
#define FSO_FRAMEWORK_TEST_TEST_CASE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_FRAMEWORK_TEST_TYPE_TEST_CASE, FsoFrameworkTestTestCase))
#define FSO_FRAMEWORK_TEST_TEST_CASE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_FRAMEWORK_TEST_TYPE_TEST_CASE, FsoFrameworkTestTestCaseClass))
#define FSO_FRAMEWORK_TEST_IS_TEST_CASE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_FRAMEWORK_TEST_TYPE_TEST_CASE))
#define FSO_FRAMEWORK_TEST_IS_TEST_CASE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_FRAMEWORK_TEST_TYPE_TEST_CASE))
#define FSO_FRAMEWORK_TEST_TEST_CASE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_FRAMEWORK_TEST_TYPE_TEST_CASE, FsoFrameworkTestTestCaseClass))

typedef struct _FsoFrameworkTestTestCase FsoFrameworkTestTestCase;
typedef struct _FsoFrameworkTestTestCaseClass FsoFrameworkTestTestCaseClass;
typedef struct _FsoFrameworkTestTestCasePrivate FsoFrameworkTestTestCasePrivate;

typedef enum  {
	FSO_FRAMEWORK_TEST_ASSERT_ERROR_UNEXPECTED_VALUE,
	FSO_FRAMEWORK_TEST_ASSERT_ERROR_UNEXPECTED_STATE
} FsoFrameworkTestAssertError;
#define FSO_FRAMEWORK_TEST_ASSERT_ERROR fso_framework_test_assert_error_quark ()
struct _FsoFrameworkTestAssert {
	GObject parent_instance;
	FsoFrameworkTestAssertPrivate * priv;
};

struct _FsoFrameworkTestAssertClass {
	GObjectClass parent_class;
};

typedef void (*FsoFrameworkTestAsyncBegin) (GAsyncReadyCallback callback, void* callback_target, void* user_data);
typedef void (*FsoFrameworkTestAsyncFinish) (GAsyncResult* _result_, void* user_data, GError** error);
struct _FsoFrameworkTestMultiSignalWaiter {
	GObject parent_instance;
	FsoFrameworkTestMultiSignalWaiterPrivate * priv;
};

struct _FsoFrameworkTestMultiSignalWaiterClass {
	GObjectClass parent_class;
};

typedef void (*FsoFrameworkTestBlock) (void* user_data);
typedef gboolean (*FsoFrameworkTestPredicate) (void* user_data);
typedef void (*FsoFrameworkTestCancelableAsyncBegin) (GCancellable* cancel, GAsyncReadyCallback callback, void* callback_target, void* user_data);
struct _FsoFrameworkTestTestCase {
	GObject parent_instance;
	FsoFrameworkTestTestCasePrivate * priv;
};

struct _FsoFrameworkTestTestCaseClass {
	GObjectClass parent_class;
	void (*set_up) (FsoFrameworkTestTestCase* self);
	void (*tear_down) (FsoFrameworkTestTestCase* self);
};

typedef void (*FsoFrameworkTestTestCaseTestMethod) (void* user_data);

GQuark fso_framework_test_assert_error_quark (void);
GType fso_framework_test_assert_get_type (void) G_GNUC_CONST;
void fso_framework_test_assert_are_equal (GType t_type, GBoxedCopyFunc t_dup_func, GDestroyNotify t_destroy_func, gconstpointer expected, gconstpointer actual, const gchar* message, GError** error);
void fso_framework_test_assert_are_not_equal (GType t_type, GBoxedCopyFunc t_dup_func, GDestroyNotify t_destroy_func, gconstpointer not_expected, gconstpointer actual, const gchar* message, GError** error);
void fso_framework_test_assert_is_true (gboolean actual, const gchar* message, GError** error);
void fso_framework_test_assert_is_false (gboolean actual, const gchar* message, GError** error);
void fso_framework_test_assert_fail (const gchar* message, GError** error);
void fso_framework_test_assert_should_throw_async (FsoFrameworkTestAsyncBegin fbegin, void* fbegin_target, FsoFrameworkTestAsyncFinish ffinish, void* ffinish_target, const gchar* domain, const gchar* message, GError** error);
FsoFrameworkTestAssert* fso_framework_test_assert_new (void);
FsoFrameworkTestAssert* fso_framework_test_assert_construct (GType object_type);
GType fso_framework_test_multi_signal_waiter_get_type (void) G_GNUC_CONST;
void fso_framework_test_multi_signal_waiter_add_signal (FsoFrameworkTestMultiSignalWaiter* self, GObject* emitter, const gchar* signame, gint timeout);
gboolean fso_framework_test_multi_signal_waiter_run (FsoFrameworkTestMultiSignalWaiter* self, FsoFrameworkTestBlock block, void* block_target, gint timeout);
FsoFrameworkTestMultiSignalWaiter* fso_framework_test_multi_signal_waiter_new (void);
FsoFrameworkTestMultiSignalWaiter* fso_framework_test_multi_signal_waiter_construct (GType object_type);
gboolean fso_framework_test_wait_for_condition (gint timeout, GObject* emitter, const gchar* signame, FsoFrameworkTestPredicate predicate, void* predicate_target, GDestroyNotify predicate_target_destroy_notify, FsoFrameworkTestBlock block, void* block_target);
gboolean fso_framework_test_wait_for_signal (gint timeout, GObject* emitter, const gchar* signame, FsoFrameworkTestBlock block, void* block_target);
gboolean fso_framework_test_wait_for_async (gint timeout, FsoFrameworkTestAsyncBegin async_function, void* async_function_target, FsoFrameworkTestAsyncFinish async_finish, void* async_finish_target, GError** error);
gboolean fso_framework_test_wait_for_cancellable_async (gint timeout, FsoFrameworkTestCancelableAsyncBegin async_function, void* async_function_target, FsoFrameworkTestAsyncFinish async_finish, void* async_finish_target, GError** error);
GType fso_framework_test_test_case_get_type (void) G_GNUC_CONST;
FsoFrameworkTestTestCase* fso_framework_test_test_case_construct (GType object_type, const gchar* name);
void fso_framework_test_test_case_add_test (FsoFrameworkTestTestCase* self, const gchar* name, FsoFrameworkTestTestCaseTestMethod test, void* test_target);
void fso_framework_test_test_case_add_async_test (FsoFrameworkTestTestCase* self, const gchar* name, FsoFrameworkTestAsyncBegin async_begin, void* async_begin_target, FsoFrameworkTestAsyncFinish async_finish, void* async_finish_target, gint timeout);
void fso_framework_test_test_case_set_up (FsoFrameworkTestTestCase* self);
void fso_framework_test_test_case_tear_down (FsoFrameworkTestTestCase* self);
GTestSuite* fso_framework_test_test_case_get_suite (FsoFrameworkTestTestCase* self);


G_END_DECLS

#endif
