/// <summary> /// Gets a list of all the device credentials. /// </summary> /// <param name="request">Specifies criteria to use when querying device credentials.</param> /// <param name="pagination">Specifies <see cref="PaginationInfo"/> to use in requesting paged results.</param> /// <returns>A list of <see cref="DeviceCredential"/> which conforms to the criteria specified.</returns> public Task <IPagedList <DeviceCredential> > GetAllAsync(GetDeviceCredentialsRequest request, PaginationInfo pagination) { if (request == null) { throw new ArgumentNullException(nameof(request)); } if (pagination == null) { throw new ArgumentNullException(nameof(pagination)); } var queryStrings = new Dictionary <string, string> { { "fields", request.Fields }, { "include_fields", request.IncludeFields.ToString().ToLower() }, { "user_id", request.UserId }, { "client_id", request.ClientId }, { "type", request.Type }, { "page", pagination.PageNo.ToString() }, { "per_page", pagination.PerPage.ToString() }, { "include_totals", pagination.IncludeTotals.ToString().ToLower() } }; return(Connection.GetAsync <IPagedList <DeviceCredential> >(BuildUri("device-credentials", queryStrings), DefaultHeaders, converters)); }
public async Task Can_request_device_credentials_using_pagination() { var mockHandler = new Mock <HttpMessageHandler>(MockBehavior.Strict); var response = new PagedList <DeviceCredential> { new DeviceCredential { DeviceName = "Test" } }; var token = "AUTH0_TOKEN_DEVICE_CREDENTIALS"; var domain = GetVariable("AUTH0_MANAGEMENT_API_URL"); var request = new GetDeviceCredentialsRequest { ClientId = GetVariable("AUTH0_CLIENT_ID"), Type = "rotating_refresh_token", UserId = "google-oauth2|109627300720782495235", Fields = "name,email", }; var paginationInfo = new PaginationInfo(0, 25, true); var expectedParams = new Dictionary <string, string> { { "fields", request.Fields }, { "include_fields", request.IncludeFields.ToString().ToLower() }, { "user_id", request.UserId }, { "client_id", request.ClientId }, { "type", request.Type }, { "page", paginationInfo.PageNo.ToString() }, { "per_page", paginationInfo.PerPage.ToString() }, { "include_totals", paginationInfo.IncludeTotals.ToString().ToLower() } }; mockHandler.Protected() .Setup <Task <HttpResponseMessage> >( "SendAsync", ItExpr.Is <HttpRequestMessage>(req => req.RequestUri.ToString().StartsWith($"https://{domain}/api/v2/device-credentials") && ValidateRequestContent(req, expectedParams)), ItExpr.IsAny <CancellationToken>() ) .ReturnsAsync(new HttpResponseMessage() { StatusCode = HttpStatusCode.OK, Content = new StringContent(JsonConvert.SerializeObject(response), Encoding.UTF8, "application/json"), }); var httpClient = new HttpClient(mockHandler.Object); var managementApiClient = new ManagementApiClient(token, new Uri($"https://{domain}/api/v2"), new HttpClientManagementConnection(httpClient)); var deviceCredentials = await managementApiClient.DeviceCredentials.GetAllAsync(request, paginationInfo); response.Should().NotBeNull(); response[0].DeviceName.Should().Equals("Test"); }