/// <summary> /// Recycles the current access key as an asynchronous operation. /// </summary> /// <returns> /// A <see cref="Task{TResult}"/> representing the asynchronous operation to recycle the access key which returns the new and old access keys. /// </returns> /// <remarks> /// The credentials used by the current instance are automatically updated if successful. /// </remarks> public virtual async Task <RecycleAccessKeyResult> RecycleAccessKeyAsync() { var value = new { }; var json = SerializeAsJson(value); using (var client = CreateClient()) { using (var content = new StringContent(json, Encoding.UTF8, "application/json")) { using (var response = await client.PutAsync("recycle_key.json", content)) { await EnsureSuccessAsync(response); RecycleAccessKeyResult result = await DeserializeAsync <RecycleAccessKeyResult>(response); if (result != null) { SetAuthorization(UserName, result.NewKey); } return(result); } } } }
public static async Task Can_Recycle_BrowserStack_Api_Key() { // Arrange string expected = Environment.GetEnvironmentVariable("BrowserStack_AccessKey"); BrowserStackAutomateClient target = CreateAuthenticatedClient(); // Act RecycleAccessKeyResult actual = await target.RecycleAccessKeyAsync(); // Assert actual.Should().NotBeNull(); actual.OldKey.Should().Be(expected); actual.NewKey.Should().NotBe(expected); }