feat: test add_role_to_store,set_role_to_employee,remove_employee_from_role
This commit is contained in:
parent
64b9126860
commit
f083a40395
1 changed files with 136 additions and 56 deletions
|
@ -148,6 +148,24 @@ impl Aggregate for User {
|
||||||
.await?;
|
.await?;
|
||||||
Ok(vec![IdentityEvent::OwnerRemovedEmployeeFromStore(res)])
|
Ok(vec![IdentityEvent::OwnerRemovedEmployeeFromStore(res)])
|
||||||
}
|
}
|
||||||
|
IdentityCommand::AddRole(cmd) => {
|
||||||
|
let res = services.add_role_to_store().add_role_to_store(cmd).await?;
|
||||||
|
Ok(vec![IdentityEvent::RoleAdded(res)])
|
||||||
|
}
|
||||||
|
IdentityCommand::SetRoleToEmployee(cmd) => {
|
||||||
|
let res = services
|
||||||
|
.owner_manage_employee()
|
||||||
|
.set_role_to_employee(cmd)
|
||||||
|
.await?;
|
||||||
|
Ok(vec![IdentityEvent::RoleSetToEmployee(res)])
|
||||||
|
}
|
||||||
|
IdentityCommand::RemoveEmployeeFromRole(cmd) => {
|
||||||
|
let res = services
|
||||||
|
.owner_manage_employee()
|
||||||
|
.remove_employee_from_role(cmd)
|
||||||
|
.await?;
|
||||||
|
Ok(vec![IdentityEvent::EmployeeRemovedFromRole(res)])
|
||||||
|
}
|
||||||
_ => Ok(Vec::new()),
|
_ => Ok(Vec::new()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -217,20 +235,13 @@ mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
use crate::identity::{
|
use crate::identity::{
|
||||||
application::services::{
|
application::services::{
|
||||||
delete_user::{command::DeleteUserCommand, service::DeleteUserService},
|
add_role_to_store_service::AddRoleToStoreService, delete_user::{command::DeleteUserCommand, service::DeleteUserService}, events::IdentityEvent, login::{command::LoginCommand, events::LoginEvent, service::LoginService}, owner_manage_store_employee_service::*, register_user::{
|
||||||
events::IdentityEvent,
|
|
||||||
login::{command::LoginCommand, events::LoginEvent, service::LoginService},
|
|
||||||
owner_manage_store_employee_service::*,
|
|
||||||
register_user::{
|
|
||||||
command::RegisterUserCommand, events::UserRegisteredEvent,
|
command::RegisterUserCommand, events::UserRegisteredEvent,
|
||||||
service::RegisterUserService,
|
service::RegisterUserService,
|
||||||
},
|
}, IdentityCommand, MockIdentityServicesInterface
|
||||||
IdentityCommand, MockIdentityServicesInterface,
|
|
||||||
},
|
},
|
||||||
domain::{
|
domain::{
|
||||||
owner_add_employee_to_store_command::*, owner_added_employee_to_store_event::*,
|
add_role_command::AddRoleCommand, employee_removed_from_role::EmployeeRemovedFromRoleEvent, owner_add_employee_to_store_command::*, owner_added_employee_to_store_event::*, owner_remove_employee_from_store_command::OwnerRemoveEmployeeFromStoreCommand, owner_removed_employee_from_store_event::OwnerRemovedEmployeeFromStoreEvent, remove_employee_from_role_command::RemoveEmployeeFromRoleCommand, role_added_event::RoleAddedEvent, role_set_to_employee_event::RoleSetToEmployeeEvent, set_role_to_employee_command::SetRoleToEmployeeCommand
|
||||||
owner_remove_employee_from_store_command::OwnerRemoveEmployeeFromStoreCommand,
|
|
||||||
owner_removed_employee_from_store_event::OwnerRemovedEmployeeFromStoreEvent,
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
use crate::tests::bdd::*;
|
use crate::tests::bdd::*;
|
||||||
|
@ -295,52 +306,6 @@ mod tests {
|
||||||
.then_expect_events(vec![expected]);
|
.then_expect_events(vec![expected]);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn test_user_aggregate_owner_added_employee_to_store() {
|
|
||||||
let cmd = OwnerAddEmployeeToStoreCommand::get_cmd();
|
|
||||||
let expected = OwnerAddedEmployeeToStoreEvent::get_event(&cmd);
|
|
||||||
let expected = IdentityEvent::OwnerAddedEmployeeToStore(expected);
|
|
||||||
|
|
||||||
let mut services = MockIdentityServicesInterface::new();
|
|
||||||
services
|
|
||||||
.expect_owner_manage_employee()
|
|
||||||
.times(IS_CALLED_ONLY_ONCE.unwrap())
|
|
||||||
.return_const(
|
|
||||||
OwnerManageStoreEmployeesService::mock_service_add_employee_to_store(
|
|
||||||
IS_CALLED_ONLY_ONCE,
|
|
||||||
cmd.clone(),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
|
|
||||||
UserTestFramework::with(Arc::new(services))
|
|
||||||
.given_no_previous_events()
|
|
||||||
.when(IdentityCommand::OwnerAddEmployeeToStore(cmd))
|
|
||||||
.then_expect_events(vec![expected]);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn test_user_aggregate_owner_remove_employee_to_store() {
|
|
||||||
let cmd = OwnerRemoveEmployeeFromStoreCommand::get_cmd();
|
|
||||||
let expected = OwnerRemovedEmployeeFromStoreEvent::get_event(&cmd);
|
|
||||||
let expected = IdentityEvent::OwnerRemovedEmployeeFromStore(expected);
|
|
||||||
|
|
||||||
let mut services = MockIdentityServicesInterface::new();
|
|
||||||
services
|
|
||||||
.expect_owner_manage_employee()
|
|
||||||
.times(IS_CALLED_ONLY_ONCE.unwrap())
|
|
||||||
.return_const(
|
|
||||||
OwnerManageStoreEmployeesService::mock_service_remove_employee_from_store(
|
|
||||||
IS_CALLED_ONLY_ONCE,
|
|
||||||
cmd.clone(),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
|
|
||||||
UserTestFramework::with(Arc::new(services))
|
|
||||||
.given_no_previous_events()
|
|
||||||
.when(IdentityCommand::OwnerRemoveEmployeeFromStore(cmd))
|
|
||||||
.then_expect_events(vec![expected]);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_user_aggregate_update_password() {
|
fn test_user_aggregate_update_password() {
|
||||||
use crate::identity::application::services::update_password::{
|
use crate::identity::application::services::update_password::{
|
||||||
|
@ -463,4 +428,119 @@ mod tests {
|
||||||
.when(IdentityCommand::ResendVerificationEmail(cmd))
|
.when(IdentityCommand::ResendVerificationEmail(cmd))
|
||||||
.then_expect_events(vec![expected]);
|
.then_expect_events(vec![expected]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_user_aggregate_owner_added_employee_to_store() {
|
||||||
|
let cmd = OwnerAddEmployeeToStoreCommand::get_cmd();
|
||||||
|
let expected = OwnerAddedEmployeeToStoreEvent::get_event(&cmd);
|
||||||
|
let expected = IdentityEvent::OwnerAddedEmployeeToStore(expected);
|
||||||
|
|
||||||
|
let mut services = MockIdentityServicesInterface::new();
|
||||||
|
services
|
||||||
|
.expect_owner_manage_employee()
|
||||||
|
.times(IS_CALLED_ONLY_ONCE.unwrap())
|
||||||
|
.return_const(
|
||||||
|
OwnerManageStoreEmployeesService::mock_service_add_employee_to_store(
|
||||||
|
IS_CALLED_ONLY_ONCE,
|
||||||
|
cmd.clone(),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
UserTestFramework::with(Arc::new(services))
|
||||||
|
.given_no_previous_events()
|
||||||
|
.when(IdentityCommand::OwnerAddEmployeeToStore(cmd))
|
||||||
|
.then_expect_events(vec![expected]);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_user_aggregate_owner_remove_employee_to_store() {
|
||||||
|
let cmd = OwnerRemoveEmployeeFromStoreCommand::get_cmd();
|
||||||
|
let expected = OwnerRemovedEmployeeFromStoreEvent::get_event(&cmd);
|
||||||
|
let expected = IdentityEvent::OwnerRemovedEmployeeFromStore(expected);
|
||||||
|
|
||||||
|
let mut services = MockIdentityServicesInterface::new();
|
||||||
|
services
|
||||||
|
.expect_owner_manage_employee()
|
||||||
|
.times(IS_CALLED_ONLY_ONCE.unwrap())
|
||||||
|
.return_const(
|
||||||
|
OwnerManageStoreEmployeesService::mock_service_remove_employee_from_store(
|
||||||
|
IS_CALLED_ONLY_ONCE,
|
||||||
|
cmd.clone(),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
UserTestFramework::with(Arc::new(services))
|
||||||
|
.given_no_previous_events()
|
||||||
|
.when(IdentityCommand::OwnerRemoveEmployeeFromStore(cmd))
|
||||||
|
.then_expect_events(vec![expected]);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_user_aggregate_owner_set_role_to_employee() {
|
||||||
|
let cmd = SetRoleToEmployeeCommand::get_cmd();
|
||||||
|
let expected = RoleSetToEmployeeEvent::get_event(&cmd);
|
||||||
|
let expected = IdentityEvent::RoleSetToEmployee(expected);
|
||||||
|
|
||||||
|
let mut services = MockIdentityServicesInterface::new();
|
||||||
|
services
|
||||||
|
.expect_owner_manage_employee()
|
||||||
|
.times(IS_CALLED_ONLY_ONCE.unwrap())
|
||||||
|
.return_const(
|
||||||
|
OwnerManageStoreEmployeesService::mock_service_set_role_to_employee(
|
||||||
|
IS_CALLED_ONLY_ONCE,
|
||||||
|
cmd.clone(),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
UserTestFramework::with(Arc::new(services))
|
||||||
|
.given_no_previous_events()
|
||||||
|
.when(IdentityCommand::SetRoleToEmployee(cmd))
|
||||||
|
.then_expect_events(vec![expected]);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_user_aggregate_owner_remove_employee_from_role() {
|
||||||
|
let cmd = RemoveEmployeeFromRoleCommand::get_cmd();
|
||||||
|
let expected = EmployeeRemovedFromRoleEvent::get_event(&cmd);
|
||||||
|
let expected = IdentityEvent::EmployeeRemovedFromRole(expected);
|
||||||
|
|
||||||
|
let mut services = MockIdentityServicesInterface::new();
|
||||||
|
services
|
||||||
|
.expect_owner_manage_employee()
|
||||||
|
.times(IS_CALLED_ONLY_ONCE.unwrap())
|
||||||
|
.return_const(
|
||||||
|
OwnerManageStoreEmployeesService::mock_service_remove_employee_from_role(
|
||||||
|
IS_CALLED_ONLY_ONCE,
|
||||||
|
cmd.clone(),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
UserTestFramework::with(Arc::new(services))
|
||||||
|
.given_no_previous_events()
|
||||||
|
.when(IdentityCommand::RemoveEmployeeFromRole(cmd))
|
||||||
|
.then_expect_events(vec![expected]);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_user_aggregate_owner_add_roles_to_store() {
|
||||||
|
let cmd = AddRoleCommand::get_cmd();
|
||||||
|
let expected = RoleAddedEvent::get_event(&cmd);
|
||||||
|
let expected = IdentityEvent::RoleAdded(expected);
|
||||||
|
|
||||||
|
let mut services = MockIdentityServicesInterface::new();
|
||||||
|
services
|
||||||
|
.expect_add_role_to_store()
|
||||||
|
.times(IS_CALLED_ONLY_ONCE.unwrap())
|
||||||
|
.return_const(
|
||||||
|
AddRoleToStoreService::mock_service(
|
||||||
|
IS_CALLED_ONLY_ONCE,
|
||||||
|
cmd.clone(),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
UserTestFramework::with(Arc::new(services))
|
||||||
|
.given_no_previous_events()
|
||||||
|
.when(IdentityCommand::AddRole(cmd))
|
||||||
|
.then_expect_events(vec![expected]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue