1use crate::core::{bootstrap, Module, RuestApplication};
4use crate::di::{Container, DiError};
5use crate::http::axum::Router;
6
7pub struct TestFactory;
9
10impl TestFactory {
11 pub fn create<M: Module>(root: M) -> Result<RuestApplication, crate::core::CoreError> {
12 bootstrap(root)
13 }
14
15 pub fn create_with_router<M, W>(
17 root: M,
18 wire: W,
19 ) -> Result<(RuestApplication, Router), crate::core::CoreError>
20 where
21 M: Module,
22 W: FnOnce(Router, &Container) -> Result<Router, DiError>,
23 {
24 let app = bootstrap(root)?;
25 let router = wire(Router::new(), &app.container)
26 .map_err(|e| crate::core::CoreError::ModuleConfig(e.to_string()))?;
27 Ok((app, router))
28 }
29}