public async Task Should_return_user_names_starting_with_text() { var text = "test'user"; var filter = $"startswith(userPrincipalName,'{text.Replace("'", "''")}')"; _queryUrl += $"?$filter={filter}"; var user = new Microsoft.Graph.User() { UserPrincipalName = "TestUser" }; var azureAdGraphQueryResponse = new AzureAdGraphQueryResponse <Microsoft.Graph.User>() { Value = new List <Microsoft.Graph.User> { user } }; _secureHttpRequest.Setup(x => x.GetAsync(It.IsAny <string>(), It.IsAny <string>())) .ReturnsAsync(ApiRequestHelper.CreateHttpResponseMessage(azureAdGraphQueryResponse, HttpStatusCode.OK)); var response = await _client.GetUsernamesStartingWithAsync(text); response.Should().NotBeNull(); var users = response.ToList(); users.Count.Should().Be(1); users.First().Should().Be("TestUser"); _secureHttpRequest.Verify(x => x.GetAsync(_graphApiSettings.Object.AccessToken, _queryUrl), Times.Once); }
public async Task Should_filter_users_and_return_null_if_no_users() { AzureAdGraphQueryResponse = new AzureAdGraphQueryResponse <AzureAdGraphUserResponse>(); var serialised = JsonConvert.SerializeObject(AzureAdGraphQueryResponse); var response = new HttpResponseMessage(); response.StatusCode = HttpStatusCode.OK; response.Content = new StringContent(serialised); response.Content.Headers.Clear(); response.Content.Headers.Add("Content-Type", "application/json"); SecureHttpRequest.Setup(x => x.GetAsync(It.IsAny <string>(), It.IsAny <string>())).ReturnsAsync(response); var result = await Service.GetUserByFilterAsync("*****@*****.**"); Assert.IsNull(result); }
public void Setup() { SecureHttpRequest = new Mock <ISecureHttpRequest>(); _settings = new Settings { IsLive = true, ReformEmail = Domain.Replace("@", ""), AdGroup = new AdGroup { Administrator = "Admin", } }; var azureAdConfig = new AzureAdConfiguration() { ClientId = "TestClientId", ClientSecret = "TestSecret", Authority = "https://Test/Authority", }; var tokenProvider = new Mock <ITokenProvider>(); GraphApiSettings = new GraphApiSettings(tokenProvider.Object, azureAdConfig); IdentityServiceApiClient = new Mock <IIdentityServiceApiClient>(); AzureAdGraphUserResponse = new AzureAdGraphUserResponse() { ObjectId = "1", DisplayName = "T Tester", GivenName = "Test", Surname = "Tester", OtherMails = new List <string>(), UserPrincipalName = "TestUser" }; AzureAdGraphQueryResponse = new AzureAdGraphQueryResponse <AzureAdGraphUserResponse> { Value = new List <AzureAdGraphUserResponse> { AzureAdGraphUserResponse } }; var additionalData = new Dictionary <string, object>(); var jobject = new JObject { new JProperty("@odata.type", "#microsoft.graph.group"), new JProperty("startDateTime", DateTime.UtcNow), new JProperty("endDateTime", DateTime.UtcNow.AddYears(1)), new JProperty("secretText", "The passwords must be 16-64 characters in length"), new JProperty("keyId", Guid.NewGuid().ToString()), new JProperty("hint", "something") }; additionalData.Add("value", new List <JObject> { jobject }); DirectoryObject = new DirectoryObject { Id = "1", AdditionalData = additionalData, ODataType = "@odata.type" }; DistributedCache = new Mock <ICache>(); Service = new UserApi.Services.UserAccountService(SecureHttpRequest.Object, GraphApiSettings, IdentityServiceApiClient.Object, _settings, DistributedCache.Object); }