Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -13,19 +13,21 @@ public class AZC0002Tests
public async Task AZC0002ProducedForMethodsWithoutCancellationTokenOrRequestContext()
{
const string code = @"
using Azure;
using System.Threading.Tasks;

namespace RandomNamespace
{
public class SomeClient
{
public virtual Task {|AZC0002:GetAsync|}()
public virtual Response {|AZC0002:GetAsync|}()
Comment thread
pshao25 marked this conversation as resolved.
Outdated
{
return null;
}

public virtual void {|AZC0002:Get|}()
public virtual Response {|AZC0002:Get|}()
{
return null;
}
}
}";
Expand All @@ -38,20 +40,22 @@ await Verifier.CreateAnalyzer(code)
public async Task AZC0002ProducedForMethodsWithWrongNameCancellationToken()
{
const string code = @"
using Azure;
using System.Threading;
using System.Threading.Tasks;

namespace RandomNamespace
{
public class SomeClient
{
public virtual Task {|AZC0002:GetAsync|}(CancellationToken cancellation = default)
public virtual Response {|AZC0002:GetAsync|}(CancellationToken cancellation = default)
Comment thread
annelo-msft marked this conversation as resolved.
Outdated
{
return null;
}

public virtual void {|AZC0002:Get|}(CancellationToken cancellation = default)
public virtual Response {|AZC0002:Get|}(CancellationToken cancellation = default)
{
return null;
}
}
}";
Expand All @@ -65,20 +69,22 @@ public async Task AZC0002ProducedForMethodsWithWrongNameRequestContext()
{
const string code = @"
using Azure;
using Azure.Core;
using System.Threading;
using System.Threading.Tasks;

namespace RandomNamespace
{
public class SomeClient
{
public virtual Task {|AZC0002:GetAsync|}(RequestContext cancellation = default)
public virtual Response {|AZC0002:GetAsync|}(RequestContext cancellation = default)
{
return null;
}

public virtual void {|AZC0002:Get|}(RequestContext cancellation = default)
public virtual Response {|AZC0002:Get|}(RequestContext cancellation = default)
{
return null;
}
}
}";
Expand All @@ -91,20 +97,22 @@ await Verifier.CreateAnalyzer(code)
public async Task AZC0002ProducedForMethodsWithNonOptionalCancellationToken()
{
const string code = @"
using Azure;
using System.Threading;
using System.Threading.Tasks;

namespace RandomNamespace
{
public class SomeClient
{
public virtual Task {|AZC0002:GetAsync|}(CancellationToken cancellationToken)
public virtual Response {|AZC0002:GetAsync|}(CancellationToken cancellationToken)
{
return null;
}

public virtual void {|AZC0002:Get|}(CancellationToken cancellationToken)
public virtual Response {|AZC0002:Get|}(CancellationToken cancellationToken)
{
return null;
}
}
}";
Expand All @@ -125,13 +133,14 @@ namespace RandomNamespace
{
public class SomeClient
{
public virtual Task {|AZC0002:GetAsync|}(RequestContext context = default, string text = default)
public virtual Response {|AZC0002:GetAsync|}(RequestContext context = default, string text = default)
{
return null;
}

public virtual void {|AZC0002:Get|}(RequestContext context = default, string text = default)
public virtual Response {|AZC0002:Get|}(RequestContext context = default, string text = default)
{
return null;
}
}
}";
Expand All @@ -152,13 +161,14 @@ namespace RandomNamespace
{
public class SomeClient
{
public virtual Task {|AZC0002:GetAsync|}(CancellationToken cancellationToken = default, string text = default)
public virtual Response {|AZC0002:GetAsync|}(CancellationToken cancellationToken = default, string text = default)
{
return null;
}

public virtual void {|AZC0002:Get|}(CancellationToken cancellationToken = default, string text = default)
public virtual Response {|AZC0002:Get|}(CancellationToken cancellationToken = default, string text = default)
{
return null;
}
}
}";
Expand Down Expand Up @@ -285,5 +295,43 @@ await Verifier.CreateAnalyzer(code)
.WithDisabledDiagnostics("AZC0018")
.RunAsync();
}

[Fact]
public async Task AZC0002NotProducedIfThereIsAnOverloadWithCancellationToken()
{
const string code = @"
using Azure;
using System.Threading;
using System.Threading.Tasks;

namespace RandomNamespace
{
public class SomeClient
{
public virtual Response GetAsync(string s)
{
return null;
}

public virtual Response Get(string s)
{
return null;
}

public virtual Response GetAsync(string s, CancellationToken cancellationToken)
{
return null;
}

public virtual Response Get(string s, CancellationToken cancellationToken)
{
return null;
}
}
}";
await Verifier.CreateAnalyzer(code)
.WithDisabledDiagnostics("AZC0015")
Comment thread
pshao25 marked this conversation as resolved.
Outdated
.RunAsync();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,20 +13,22 @@ public class AZC0003Tests
public async Task AZC0003ProducedForNonVirtualMethods()
{
const string code = @"
using Azure;
using System.Threading;
using System.Threading.Tasks;

namespace RandomNamespace
{
public class SomeClient
{
public Task {|AZC0003:GetAsync|](CancellationToken cancellationToken = default)
public Response {|AZC0003:GetAsync|](CancellationToken cancellationToken = default)
Comment thread
pshao25 marked this conversation as resolved.
Outdated
{
return null;
}

public void {|AZC0003:Get|](CancellationToken cancellationToken = default)
public Response {|AZC0003:Get|](CancellationToken cancellationToken = default)
{
return null;
}
}
}";
Expand Down Expand Up @@ -95,4 +97,4 @@ await Verifier.CreateAnalyzer(code)
.RunAsync();
}
}
}
}
Loading