public async Task Should_allocate_new_user_no_users_exist_does_not_exist_in_aad() { var users = new List <UserDto>(); QueryHandler .Setup(x => x.Handle <GetAllUsersByFilterQuery, List <UserDto> >(It.IsAny <GetAllUsersByFilterQuery>())) .ReturnsAsync(users); const int NUMBER = 1; QueryHandler .Setup(x => x.Handle <GetNextUserNumberByUserTypeQuery, Integer>(It.IsAny <GetNextUserNumberByUserTypeQuery>())) .ReturnsAsync(new Integer(NUMBER)); CommandHandler .Setup(x => x.Handle(It.IsAny <CreateNewUserCommand>())) .Returns(Task.CompletedTask); var user = CreateNewUser(UserType.Individual, NUMBER); QueryHandler .Setup(x => x.Handle <GetUserByUserTypeAppAndNumberQuery, UserDto>( It.IsAny <GetUserByUserTypeAppAndNumberQuery>())) .ReturnsAsync(user); var allocation = CreateAllocation(user); CommandHandler .Setup(x => x.Handle(It.IsAny <CreateNewAllocationByUserIdCommand>())) .Returns(Task.FromResult(allocation)); QueryHandler .Setup(x => x.Handle <GetUserByIdQuery, UserDto>(It.IsAny <GetUserByIdQuery>())) .ReturnsAsync(user); MockUserApiService .Setup(x => x.CheckUserExistsInAAD(It.IsAny <string>())) .ReturnsAsync(false); var newUserResponse = new NewUserResponse { OneTimePassword = "******", UserId = "1234", Username = user.Username }; MockUserApiService .Setup(x => x.CreateNewUserInAAD(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <bool>())) .ReturnsAsync(newUserResponse); const int NUMBER_OF_USER_GROUPS = 2; MockUserApiService .Setup(x => x.AddGroupsToUser(It.IsAny <UserDto>(), It.IsAny <string>())) .ReturnsAsync(NUMBER_OF_USER_GROUPS); CommandHandler .Setup(x => x.Handle(It.IsAny <AllocateByUserIdCommand>())) .Returns(Task.CompletedTask); const int MINUTES = 1; var allocatedUser = await AllocationService.AllocateToService(user.UserType, user.Application, user.TestType, user.IsProdUser, MINUTES); allocatedUser.Should().BeEquivalentTo(user); }