public void AddUserCreateUserAndAccount()
{
Guid? userId = null;
commandBus.Value
.When(o => o.Send(Arg.Is<Envelope<ICommand>>(p => p.Body is CreateUserCommand)))
.Do(o => userId = ((CreateUserCommand) o.Arg<Envelope<ICommand>>().Body).Id);
sut.AddUser(AccountName, AccountType, DisplayName, Enumerable.Empty<string>());
commandBus.Value.Received(1).Send(Arg.Is<Envelope<ICommand>>(o =>
((CreateUserCommand)o.Body).Id == userId.Value
&& ((CreateUserCommand)o.Body).Name == DisplayName));
commandBus.Value.Received(1).Send(Arg.Is<Envelope<ICommand>>(o =>
((CreateExternalUserAccountCommand)o.Body).UserId == userId.Value
&& ((CreateExternalUserAccountCommand)o.Body).Name == AccountName
&& ((CreateExternalUserAccountCommand)o.Body).Type == AccountType));
}