toni/lib.rs
1#[path = "adapter/http_adapter.rs"]
2pub mod http_adapter;
3#[path = "adapter/mod.rs"]
4pub mod adapter;
5
6pub mod http_helpers;
7pub mod traits_helpers;
8mod injector;
9mod scanner;
10pub mod module_helpers;
11mod toni_application;
12pub mod toni_factory;
13mod router;
14
15#[cfg(test)]
16mod tests {
17 use std::time::Duration;
18 use tokio::task::JoinHandle;
19
20 #[tokio::test]
21 async fn test_server() {
22 let server_handle: JoinHandle<()> = tokio::spawn(async {
23 // let factory = ToniFactory::new();
24 // let mut axum_adapter = AxumAdapter::new();
25 // let app = factory.create(app_module, axum_adapter).unwrap();
26 // app.listen(3000, "127.0.0.1").await;
27 // let app = match app {
28 // Ok(app) => {
29 // app
30 // }
31 // Err(e) => panic!("sda")
32 // };
33 // let axum_adapter2 = AxumAdapter::new();
34 // axum_adapter.add_route(&"/ta".to_string(), HttpMethod::GET, Box::new(GetUserNameController));
35 // axum_adapter.listen(3000, "127.0.0.1").await;
36 // app.listen(3000, "127.0.0.1");
37 // servera.get("/ta", |req| Box::pin(route_adapter(req, &Handler)));
38 // servera.post("/hello2", |req| Box::pin(route_adapter(req, &Handler2)));
39 // servera.listen(3000, "127.0.0.1").await
40 });
41 tokio::time::sleep(Duration::from_secs(1)).await;
42 let client = reqwest::Client::new();
43 let response = client.get("http://localhost:3000/names").send().await;
44 let res = match response {
45 Ok(res) => {
46 res
47 }
48 Err(e) => panic!("{}", e),
49 };
50
51 let body = match res.json::<serde_json::Value>().await {
52 Ok(json) => json,
53 Err(e) => panic!("{}", e),
54 };
55
56 assert_eq!(body["message"].as_str().unwrap(), "John Doe");
57 server_handle.abort();
58 }
59}