AppFlowy/rust-lib/flowy-sdk/tests/sdk/helper.rs

69 lines
1.5 KiB
Rust
Raw Normal View History

2021-06-30 15:11:27 +00:00
use flowy_sdk::module::build_modules;
pub use flowy_sdk::*;
use flowy_sys::prelude::*;
use std::{
fmt::{Debug, Display},
hash::Hash,
sync::Once,
};
static INIT: Once = Once::new();
2021-07-02 12:47:52 +00:00
#[allow(dead_code)]
2021-06-30 15:11:27 +00:00
2021-07-02 12:47:52 +00:00
pub fn init_system() {
INIT.call_once(|| {
FlowySDK::init_log();
2021-06-30 15:11:27 +00:00
});
2021-07-02 12:47:52 +00:00
FlowySDK::init("123");
2021-06-30 15:11:27 +00:00
}
pub struct FlowySDKTester {
2021-07-02 12:47:52 +00:00
request: DispatchRequest<i64>,
2021-06-30 15:11:27 +00:00
}
impl FlowySDKTester {
pub fn new<E>(event: E) -> Self
where
E: Eq + Hash + Debug + Clone + Display,
{
Self {
2021-07-02 12:47:52 +00:00
request: DispatchRequest::new(1, event),
2021-06-30 15:11:27 +00:00
}
}
#[allow(dead_code)]
pub fn bytes_payload<T>(mut self, payload: T) -> Self
where
T: serde::Serialize,
{
let bytes: Vec<u8> = bincode::serialize(&payload).unwrap();
self.request = self.request.payload(Payload::Bytes(bytes));
self
}
#[allow(dead_code)]
pub fn protobuf_payload<T>(mut self, payload: T) -> Self
where
T: ::protobuf::Message,
{
let bytes: Vec<u8> = payload.write_to_bytes().unwrap();
self.request = self.request.payload(Payload::Bytes(bytes));
self
}
2021-07-02 12:47:52 +00:00
pub async fn async_send(self) -> EventResponse {
init_system();
let resp = async_send(self.request).await.unwrap();
dbg!(&resp);
resp
2021-06-30 15:11:27 +00:00
}
2021-07-02 12:47:52 +00:00
pub fn sync_send(self) -> EventResponse {
init_system();
let resp = sync_send(self.request).unwrap();
dbg!(&resp);
resp
2021-06-30 15:11:27 +00:00
}
}