MCPcopy Create free account
hub / github.com/Migorithm/rustiful-backend / test_unit_of_work

Function test_unit_of_work

library/src/services/unit_of_work.rs:111–177  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

109
110 #[tokio::test]
111 async fn test_unit_of_work() {
112 run_test(async {
113 let (ctx_manager, _) = ContextManager::new().await;
114
115 '_transaction_block: {
116 let builder = BoardAggregate::builder();
117 let mut boardaggregate = builder
118 .take_board(Board::new(
119 Uuid::new_v4(),
120 "Title!",
121 "Content!",
122 BoardState::Published,
123 ))
124 .build();
125 let id: String = boardaggregate.board.id.to_string();
126
127 let mut uow = UnitOfWork::<Repository<BoardAggregate>>::new(
128 ctx_manager.clone(),
129 )
130 .await;
131 uow.begin().await.unwrap();
132 uow.repository().add(&mut boardaggregate).await.unwrap();
133 uow.commit().await.unwrap();
134
135 '_test_block: {
136 let mut uow = UnitOfWork::<Repository<BoardAggregate>>::new(
137 ctx_manager.clone(),
138 )
139 .await;
140 if let Err(err) = uow.repository().get(&id).await {
141 panic!("Fetch Error!:{}", err)
142 };
143 }
144 }
145
146 '_transaction_block: {
147 let builder = BoardAggregate::builder();
148 let mut boardaggregate = builder
149 .take_board(Board::new(
150 Uuid::new_v4(),
151 "Title!",
152 "Content!",
153 BoardState::Published,
154 ))
155 .build();
156 let id: String = boardaggregate.board.id.to_string();
157 let mut uow = UnitOfWork::<Repository<BoardAggregate>>::new(
158 ctx_manager.clone(),
159 )
160 .await;
161 uow.begin().await.unwrap();
162 uow.repository().add(&mut boardaggregate).await.unwrap();
163 uow.rollback().await.unwrap();
164
165 '_test_block: {
166 let mut uow = UnitOfWork::<Repository<BoardAggregate>>::new(
167 ctx_manager.clone(),
168 )

Callers

nothing calls this directly

Calls 9

take_boardMethod · 0.80
repositoryMethod · 0.80
run_testFunction · 0.50
buildMethod · 0.45
beginMethod · 0.45
addMethod · 0.45
commitMethod · 0.45
getMethod · 0.45
rollbackMethod · 0.45

Tested by

no test coverage detected