diff --git a/src/identity/domain/aggregate.rs b/src/identity/domain/aggregate.rs index 0655a30..80bc833 100644 --- a/src/identity/domain/aggregate.rs +++ b/src/identity/domain/aggregate.rs @@ -387,4 +387,29 @@ mod tests { .when(IdentityCommand::MarkUserVerified(cmd)) .then_expect_events(vec![expected]); } + + #[test] + fn test_user_aggregate_set_admin() { + use crate::identity::application::services::set_user_admin::{ + command::*, events::*, service::*, *, + }; + + let cmd = SetAdminCommand::get_cmd(); + let expected = UserPromotedToAdminEvent::get_event(&cmd); + let expected = IdentityEvent::UserPromotedToAdmin(expected); + + let mut services = MockIdentityServicesInterface::new(); + services + .expect_set_user_admin() + .times(IS_CALLED_ONLY_ONCE.unwrap()) + .return_const(SetUserAdminService::mock_service( + IS_CALLED_ONLY_ONCE, + cmd.clone(), + )); + + UserTestFramework::with(Arc::new(services)) + .given_no_previous_events() + .when(IdentityCommand::SetAdmin(cmd)) + .then_expect_events(vec![expected]); + } }