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); }