identity.delete_user mocking, init utils and test Identity.User for DeleteUserCommand
This commit is contained in:
parent
fa2f906082
commit
1a0c5e7e91
4 changed files with 47 additions and 0 deletions
|
@ -25,6 +25,12 @@ impl DeleteUserCommand {
|
|||
mod tests {
|
||||
use super::*;
|
||||
|
||||
impl DeleteUserCommand {
|
||||
pub fn get_cmd() -> Self {
|
||||
DeleteUserCommand
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_cmd() {
|
||||
let config = argon2_creds::Config::default();
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
// SPDX-FileCopyrightText: 2024 Aravinth Manivannan <realaravinth@batsense.net>
|
||||
//
|
||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
use mockall::predicate::*;
|
||||
use mockall::*;
|
||||
|
||||
pub mod command;
|
||||
pub mod events;
|
||||
|
@ -8,6 +10,7 @@ pub mod service;
|
|||
|
||||
use super::errors::*;
|
||||
|
||||
#[automock]
|
||||
#[async_trait::async_trait]
|
||||
pub trait DeleteUserUseCase: Send + Sync {
|
||||
async fn delete_user(
|
||||
|
|
|
@ -20,6 +20,23 @@ impl DeleteUserUseCase for DeleteUserService {
|
|||
mod tests {
|
||||
use super::*;
|
||||
|
||||
impl DeleteUserService {
|
||||
pub fn mock_service(
|
||||
times: Option<usize>,
|
||||
cmd: command::DeleteUserCommand,
|
||||
) -> DeleteUserServiceObj {
|
||||
let mut m = MockDeleteUserUseCase::default();
|
||||
|
||||
if let Some(times) = times {
|
||||
m.expect_delete_user().times(times).return_const(());
|
||||
} else {
|
||||
m.expect_delete_user().return_const(());
|
||||
}
|
||||
|
||||
std::sync::Arc::new(m)
|
||||
}
|
||||
}
|
||||
|
||||
#[actix_rt::test]
|
||||
async fn test_service() {
|
||||
let config = argon2_creds::Config::default();
|
||||
|
|
|
@ -217,6 +217,7 @@ mod tests {
|
|||
use super::*;
|
||||
use crate::identity::{
|
||||
application::services::{
|
||||
delete_user::{command::DeleteUserCommand, service::DeleteUserService},
|
||||
events::IdentityEvent,
|
||||
owner_manage_store_employee_service::*,
|
||||
register_user::{
|
||||
|
@ -252,6 +253,26 @@ mod tests {
|
|||
.then_expect_events(vec![expected]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_user_aggregate_delete_user() {
|
||||
let cmd = DeleteUserCommand::get_cmd();
|
||||
let expected = IdentityEvent::UserDeleted;
|
||||
|
||||
let mut services = MockIdentityServicesInterface::new();
|
||||
services
|
||||
.expect_delete_user()
|
||||
.times(IS_CALLED_ONLY_ONCE.unwrap())
|
||||
.return_const(DeleteUserService::mock_service(
|
||||
IS_CALLED_ONLY_ONCE,
|
||||
cmd.clone(),
|
||||
));
|
||||
|
||||
UserTestFramework::with(Arc::new(services))
|
||||
.given_no_previous_events()
|
||||
.when(IdentityCommand::DeleteUser(cmd))
|
||||
.then_expect_events(vec![expected]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_user_aggregate_owner_added_employee_to_store() {
|
||||
let cmd = OwnerAddEmployeeToStoreCommand::get_cmd();
|
||||
|
|
Loading…
Reference in a new issue