public class TestVolume: GLib.Volume, GLib.Object {
	public string get_name () {
		return "Test Volume 0";
	}

	public string get_uuid () {
		return "FFFF-FFFF";
	}

	public GLib.Icon get_icon () {
		return null;
	}

	public GLib.Drive get_drive () {
		return null;
	}

	public GLib.Mount get_mount () {
		return null;
	}

	public bool can_mount () {
		return false;
	}

	public bool should_automount () {
		return false;
	}

	public GLib.File get_activation_root () {
		return null;
	}

	/* This function breaks compile: its C name is mount_fn, but
	 * its finish function is still called mount_finish. This doesn't
	 * seem to be expressable in the Vapi right now.
	 */
	public async bool mount (GLib.MountMountFlags flags,
	                         GLib.MountOperation? mount_operation,
	                         GLib.Cancellable?    cancellable = null)
	                        throws GLib.Error {
		return false;
	}

	public bool can_eject () {
		return false;
	}

	public async bool eject (GLib.MountUnmountFlags flags,
	                         GLib.Cancellable? cancellable = null)
	                        throws GLib.Error {
		return false;
	}

	public async bool eject_with_operation (GLib.MountUnmountFlags flags,
	                                        GLib.MountOperation?   mount_operation,
	                                        GLib.Cancellable?      cancellable = null)
	                                       throws GLib.Error {
		return false;
	}

	public string[] enumerate_identifiers () {
		return null;
	}

	public string get_identifier (string kind) {
		return null;
	}

#if GLIB_2_32
	public unowned string get_sort_key () {
		return null;
	}
#endif
}

int main (string args[]) {
	var test = new TestVolume ();
	return 0;
}
