public async Task Should_create_user_successfully_and_return_NewAdUserAccount()
        {
            var username      = "******";
            var firstName     = "Test";
            var lastName      = "Tester";
            var recoveryEmail = "test'*****@*****.**";
            var displayName   = $"{firstName} {lastName}";
            var user          = new
            {
                displayName,
                givenName    = firstName,
                surname      = lastName,
                mailNickname = $"{firstName}.{lastName}".ToLower(),
                otherMails   = new List <string> {
                    recoveryEmail
                },
                accountEnabled    = true,
                userPrincipalName = username,
                passwordProfile   = new
                {
                    forceChangePasswordNextSignIn = true,
                    password = _defaultPassword
                }
            };

            var json = JsonConvert.SerializeObject(user);

            _secureHttpRequest.Setup(x => x.PostAsync(It.IsAny <string>(), It.IsAny <StringContent>(), It.IsAny <string>()))
            .ReturnsAsync(ApiRequestHelper.CreateHttpResponseMessage(new Microsoft.Graph.User(), HttpStatusCode.OK));
            _passwordService.Setup(x => x.GenerateRandomPasswordWithDefaultComplexity()).Returns(_defaultPassword);

            var response = await _client.CreateUserAsync(username, firstName, lastName, displayName, recoveryEmail);

            response.Should().NotBeNull();
            response.OneTimePassword.Should().Be(_defaultPassword);
            _secureHttpRequest.Verify(x => x.PostAsync(_graphApiSettings.Object.AccessToken, It.Is <StringContent>(s => s.ReadAsStringAsync().Result == json), _queryUrl), Times.Once);
        }