using Azure.ResourceManager;
using Azure.ResourceManager.CosmosDB;
using Azure.ResourceManager.CosmosDB.Mocking;
public static void Main()
string SUBSCRIPTION_ID = Guid.NewGuid().ToString();
string RESOURCE_GROUP_NAME = "dummy";
string accountName = "cmk";
ResourceIdentifier resourceId = CosmosDBAccountResource.CreateResourceIdentifier(SUBSCRIPTION_ID, RESOURCE_GROUP_NAME, accountName);
var mockFactory = Substitute.For<IArmClientFactory>();
var mockArmClient = Substitute.For<ArmClient>();
var mockCosmosDBArmClient = Substitute.For<MockableCosmosDBArmClient>();
var mockCosmosDBAccountResource= Substitute.For<CosmosDBAccountResource>();
mockFactory.CreateArmClient().Returns(mockArmClient);
mockArmClient.GetCachedClient(Arg.Any<Func<ArmClient, MockableCosmosDBArmClient>>())
.Returns(mockCosmosDBArmClient);
mockCosmosDBArmClient.GetCosmosDBAccountResource(Arg.Is(resourceId))
.Returns(mockCosmosDBAccountResource);
mockCosmosDBAccountResource.Id.Returns(resourceId);
var client = mockFactory.CreateArmClient();
var resource = client.GetCosmosDBAccountResource(resourceId);
Console.WriteLine($"Expected resource Id: {resourceId}");
Console.WriteLine($"Actual resource Id: {resource.Id}");
public interface IArmClientFactory
ArmClient CreateArmClient();