public async Task VerifyCancelCertificateOperation() { string certName = Recording.GenerateId(); CertificatePolicy certificatePolicy = DefaultPolicy; CertificateOperation operation = await Client.StartCreateCertificateAsync(certName, certificatePolicy); RegisterForCleanup(certName); try { await operation.CancelAsync(); } catch (RequestFailedException e) when(e.Status == 403) { Assert.Inconclusive("The create operation completed before it could be canceled."); } if (operation.HasCompleted) { Assert.Inconclusive("The create operation completed before it could be canceled."); } OperationCanceledException ex = Assert.ThrowsAsync <OperationCanceledException>( async() => await WaitForCompletion(operation), $"Expected exception {nameof(OperationCanceledException)} not thrown. Operation status: {operation?.Properties?.Status}, error: {operation?.Properties?.Error?.Message}"); Assert.AreEqual("The operation was canceled so no value is available.", ex.Message); Assert.IsTrue(operation.HasCompleted); Assert.IsFalse(operation.HasValue); Assert.AreEqual(200, operation.GetRawResponse().Status); }
public async Task VerifyCancelCertificateOperation() { // Log details why this fails often for live tests on net461. using AzureEventSourceListener listener = AzureEventSourceListener.CreateConsoleLogger(EventLevel.Verbose); string certName = Recording.GenerateId(); CertificatePolicy certificatePolicy = DefaultPolicy; CertificateOperation operation = await Client.StartCreateCertificateAsync(certName, certificatePolicy); RegisterForCleanup(certName); try { await operation.CancelAsync(); } catch (RequestFailedException e) when(e.Status == 403) { Assert.Inconclusive("The create operation completed before it could be canceled."); } OperationCanceledException ex = Assert.ThrowsAsync <OperationCanceledException>(() => WaitForCompletion(operation)); Assert.AreEqual("The operation was canceled so no value is available.", ex.Message); Assert.IsTrue(operation.HasCompleted); Assert.IsFalse(operation.HasValue); Assert.AreEqual(200, operation.GetRawResponse().Status); }
public async Task VerifyCancelCertificateOperation() { string certName = Recording.GenerateId(); CertificatePolicy certificatePolicy = DefaultPolicy; CertificateOperation operation = await Client.StartCreateCertificateAsync(certName, certificatePolicy); RegisterForCleanup(certName); OperationCanceledException ex = null; try { await operation.CancelAsync(); await operation.WaitForCompletionAsync(DefaultCertificateOperationPollingInterval, default); } catch (OperationCanceledException e) { ex = e; } catch (RequestFailedException e) when(e.Status == 403) { Assert.Inconclusive("The create operation completed before it could be canceled."); } catch (RequestFailedException e) when(e.Status == 409) { Assert.Inconclusive("There was a service timing issue when attempting to cancel the operation."); } if (operation.HasCompleted && !operation.Properties.CancellationRequested) { Assert.Inconclusive("The create operation completed before it could be canceled."); } Assert.AreEqual("The operation was canceled so no value is available.", ex?.Message); Assert.IsTrue(operation.HasCompleted); Assert.IsFalse(operation.HasValue); Assert.AreEqual(200, operation.GetRawResponse().Status); }