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 {
|
mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
||||||
|
impl DeleteUserCommand {
|
||||||
|
pub fn get_cmd() -> Self {
|
||||||
|
DeleteUserCommand
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_cmd() {
|
fn test_cmd() {
|
||||||
let config = argon2_creds::Config::default();
|
let config = argon2_creds::Config::default();
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
// SPDX-FileCopyrightText: 2024 Aravinth Manivannan <realaravinth@batsense.net>
|
// SPDX-FileCopyrightText: 2024 Aravinth Manivannan <realaravinth@batsense.net>
|
||||||
//
|
//
|
||||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
use mockall::predicate::*;
|
||||||
|
use mockall::*;
|
||||||
|
|
||||||
pub mod command;
|
pub mod command;
|
||||||
pub mod events;
|
pub mod events;
|
||||||
|
@ -8,6 +10,7 @@ pub mod service;
|
||||||
|
|
||||||
use super::errors::*;
|
use super::errors::*;
|
||||||
|
|
||||||
|
#[automock]
|
||||||
#[async_trait::async_trait]
|
#[async_trait::async_trait]
|
||||||
pub trait DeleteUserUseCase: Send + Sync {
|
pub trait DeleteUserUseCase: Send + Sync {
|
||||||
async fn delete_user(
|
async fn delete_user(
|
||||||
|
|
|
@ -20,6 +20,23 @@ impl DeleteUserUseCase for DeleteUserService {
|
||||||
mod tests {
|
mod tests {
|
||||||
use super::*;
|
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]
|
#[actix_rt::test]
|
||||||
async fn test_service() {
|
async fn test_service() {
|
||||||
let config = argon2_creds::Config::default();
|
let config = argon2_creds::Config::default();
|
||||||
|
|
|
@ -217,6 +217,7 @@ mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
use crate::identity::{
|
use crate::identity::{
|
||||||
application::services::{
|
application::services::{
|
||||||
|
delete_user::{command::DeleteUserCommand, service::DeleteUserService},
|
||||||
events::IdentityEvent,
|
events::IdentityEvent,
|
||||||
owner_manage_store_employee_service::*,
|
owner_manage_store_employee_service::*,
|
||||||
register_user::{
|
register_user::{
|
||||||
|
@ -252,6 +253,26 @@ mod tests {
|
||||||
.then_expect_events(vec![expected]);
|
.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]
|
#[test]
|
||||||
fn test_user_aggregate_owner_added_employee_to_store() {
|
fn test_user_aggregate_owner_added_employee_to_store() {
|
||||||
let cmd = OwnerAddEmployeeToStoreCommand::get_cmd();
|
let cmd = OwnerAddEmployeeToStoreCommand::get_cmd();
|
||||||
|
|
Loading…
Reference in a new issue