public async Task <IList <SubscriptionObject> > GetSubscriptions() { if (azureADAuthResult == null) { throw new Exception(Properties.Resources.AzureADAuthResult); } // Common subscription object to host subscriptions from RDFE & ARM IList <SubscriptionObject> subscriptionList = new List <SubscriptionObject>(); subscriptionCredentials = new Microsoft.Azure.TokenCloudCredentials(azureADAuthResult.AccessToken); subscriptionClient = new Microsoft.Azure.Subscriptions.SubscriptionClient(subscriptionCredentials); var cancelToken = new CancellationToken(); Microsoft.Azure.Subscriptions.Models.SubscriptionListResult subscriptionResults = await subscriptionClient.Subscriptions.ListAsync(cancelToken); // Add any ARM subscriptions to the common subscription object foreach (var subscription in subscriptionResults.Subscriptions) { var subList = new SubscriptionObject(); subList.Name = subscription.DisplayName; subList.SubscriptionId = subscription.SubscriptionId; subList.Authority = "common"; subscriptionList.Add(subList); } // Add any RDFE subscriptions to the common subscription object IList <Microsoft.WindowsAzure.Subscriptions.Models.SubscriptionListOperationResponse.Subscription> RDFEsubscriptions = await GetRDFESubscriptions(); foreach (var subscription in RDFEsubscriptions) { // Only add subscriptions that are not already in the subscription list if (subscriptionList.Where(x => x.SubscriptionId == subscription.SubscriptionId).Count() == 0) { var subList = new SubscriptionObject(); subList.Name = subscription.SubscriptionName; subList.SubscriptionId = subscription.SubscriptionId; subList.Authority = subscription.ActiveDirectoryTenantId; subscriptionList.Add(subList); } } return(subscriptionList); }
public SubscriptionClient GetSubscriptionClient() { var tenantMock = new Mock<ITenantOperations>(); tenantMock.Setup(t => t.ListAsync(It.IsAny<CancellationToken>())) .Returns( (CancellationToken token) => Task.FromResult(new TenantListResult() { StatusCode = HttpStatusCode.OK, RequestId = Guid.NewGuid().ToString(), TenantIds = _tenants.Select((k) => new TenantIdDescription() { Id = k, TenantId = k }).ToList() })); var subscriptionMock = new Mock<ISubscriptionOperations>(); subscriptionMock.Setup( s => s.GetAsync(It.IsAny<string>(), It.IsAny<CancellationToken>())).Returns( (string subId, CancellationToken token) => { if (_getAsyncQueue != null && _getAsyncQueue.Any()) { return Task.FromResult(_getAsyncQueue.Dequeue().Invoke()); } GetSubscriptionResult result = new GetSubscriptionResult { RequestId = Guid.NewGuid().ToString(), StatusCode = HttpStatusCode.NotFound }; if (_subscriptionSet.Contains(subId)) { result.StatusCode = HttpStatusCode.OK; result.Subscription = new Subscription { DisplayName = GetSubscriptionNameFromId(subId), Id = subId, State = "Active", SubscriptionId = subId }; } return Task.FromResult(result); }); subscriptionMock.Setup( (s) => s.ListAsync(It.IsAny<CancellationToken>())).Returns( (CancellationToken token) => { if (_listAsyncQueue != null && _listAsyncQueue.Any()) { return Task.FromResult(_listAsyncQueue.Dequeue().Invoke()); } SubscriptionListResult result = null; if (_subscriptions.Count > 0) { var subscriptionList = _subscriptions.Dequeue(); result = new SubscriptionListResult { StatusCode = HttpStatusCode.OK, RequestId = Guid.NewGuid().ToString(), NextLink = "LinkToNextPage", Subscriptions = new List<Subscription>( subscriptionList.Select( sub => new Subscription { DisplayName = GetSubscriptionNameFromId(sub), Id = sub, State = "enabled", SubscriptionId = sub })) }; } return Task.FromResult(result); }); subscriptionMock.Setup( (s) => s.ListNextAsync("LinkToNextPage", It.IsAny<CancellationToken>())).Returns( (string nextLink, CancellationToken token) => { SubscriptionListResult result = null; if (_subscriptions.Count > 0) { var subscriptionList = _subscriptions.Dequeue(); result = new SubscriptionListResult { StatusCode = HttpStatusCode.OK, RequestId = Guid.NewGuid().ToString(), Subscriptions = new List<Subscription>( subscriptionList.Select( sub => new Subscription { DisplayName = nextLink, Id = sub, State = "Disabled", SubscriptionId = sub })) }; } return Task.FromResult(result); }); var client = new Mock<SubscriptionClient>(); client.SetupGet(c => c.Subscriptions).Returns(subscriptionMock.Object); client.SetupGet(c => c.Tenants).Returns(tenantMock.Object); return client.Object; }