private bool GetAllCollections() { CollectionListResult response = null; IEnumerable <Collection> spList = null; LocalModels.Collection collection = null; response = CallClient(() => Client.Collections.List(), Client.Collections); if (response != null) { if (UseWildcard) { spList = response.Collections.Where(col => Wildcard.IsMatch(col.Name)); } else { spList = response.Collections; } if (spList != null && spList.Count() > 0) { foreach (Collection c in spList) { collection = new LocalModels.Collection(c); WriteObject(collection); } found = true; } } return(found); }
public void CanGetOneRemoteAppService() { using (var undoContext = UndoContext.Current) { undoContext.Start(); var client = GetRemoteAppManagementClient(); CollectionListResult collectionList = null; Assert.DoesNotThrow(() => { collectionList = client.Collections.List(); }); Assert.NotNull(collectionList); Assert.NotEmpty(collectionList.Collections); foreach (var collection in collectionList.Collections) { var returnedService = client.Collections.Get(collection.Name); Assert.NotNull(returnedService); Assert.Equal(returnedService.Collection.TemplateImageName, collection.TemplateImageName); Assert.Equal(returnedService.Collection.VNetName, collection.VNetName); } } }
public void CanGetStartMenuApplication() { using (var undoContext = UndoContext.Current) { undoContext.Start(); RemoteAppManagementClient client = GetRemoteAppManagementClient(); CollectionListResult serviceList = null; Assert.DoesNotThrow(() => { serviceList = client.Collections.List(); }); Assert.NotNull(serviceList); Assert.NotEmpty(serviceList.Collections); foreach (Collection collection in serviceList.Collections) { GetStartMenuApplicationListResult appListResult = client.Publishing.StartMenuApplicationList(collection.Name); foreach (StartMenuApplication startMenuApp in appListResult.ResultList) { GetStartMenuApplicationResult appResult = client.Publishing.StartMenuApplication(collection.Name, startMenuApp.StartMenuAppId); Assert.NotNull(appResult); Assert.NotNull(appResult.Result); Assert.True(appResult.StatusCode == HttpStatusCode.OK); return; } } } }
private string GetCollectionName() { RemoteAppManagementClient remoteAppManagementClient = GetRemoteAppManagementClient(); CollectionListResult result = remoteAppManagementClient.Collections.List(); Assert.NotNull(result); Assert.Equal(HttpStatusCode.OK, result.StatusCode); IList <Collection> colList = result.Collections; Random r = new Random(42); int index = r.Next(0, colList.Count - 1); return(colList[index].Name); }
public void CanRestartVm() { using (UndoContext undoContext = UndoContext.Current) { undoContext.Start(); RemoteAppManagementClient client = GetRemoteAppManagementClient(); CollectionListResult collectionList = null; Assert.DoesNotThrow(() => { collectionList = client.Collections.List(); }); Assert.NotNull(collectionList); Assert.NotEmpty(collectionList.Collections); foreach (Collection collection in collectionList.Collections) { CollectionVmsListResult vmsList = null; Assert.DoesNotThrow(() => { vmsList = client.Collections.ListVms(collection.Name); }); Assert.NotNull(vmsList); Assert.NotEmpty(vmsList.Vms); Assert.DoesNotThrow(() => { RestartVmCommandParameter restartParam = new RestartVmCommandParameter(); restartParam.VirtualMachineName = vmsList.Vms[0].VirtualMachineName; restartParam.LogoffMessage = "You will be logged off after 2 minutes"; restartParam.LogoffWaitTimeInSeconds = 120; OperationResultWithTrackingId restartResult = client.Collections.RestartVm(collection.Name, restartParam); Assert.True(restartResult.StatusCode == HttpStatusCode.OK); Assert.NotNull(restartResult.TrackingId); }); break; } } }
private IEnumerable <Collection> GetAllActiveCollections(RemoteAppManagementClient client) { CollectionListResult result = client.Collections.List(); Assert.NotNull(result); Assert.True(result.StatusCode == System.Net.HttpStatusCode.OK, "Failed retrieving the list of collections."); IEnumerable <Collection> activeCollections = result.Collections.Where( (service, index) => { return(string.Equals(service.Status, "Active", StringComparison.OrdinalIgnoreCase)); }); Assert.True(activeCollections.Count() > 0, "No active collection exist for the test."); return(activeCollections); }
public void CanListVms() { using (UndoContext undoContext = UndoContext.Current) { undoContext.Start(); RemoteAppManagementClient client = GetRemoteAppManagementClient(); CollectionListResult collectionList = null; Assert.DoesNotThrow(() => { collectionList = client.Collections.List(); }); Assert.NotNull(collectionList); Assert.NotEmpty(collectionList.Collections); foreach (Collection collection in collectionList.Collections) { CollectionVmsListResult vmsList = null; Assert.DoesNotThrow(() => { vmsList = client.Collections.ListVms(collection.Name); }); Assert.NotNull(vmsList); Assert.NotEmpty(vmsList.Vms); foreach (RemoteAppVm vm in vmsList.Vms) { Assert.NotNull(vm.VirtualMachineName); Assert.NotNull(vm.LoggedOnUserUpns); } } } }
public static int SetUpDefaultRemoteAppCollection(Mock <IRemoteAppManagementClient> clientMock, string collectionName) { CollectionListResult response = new CollectionListResult(); response.Collections = new List <Collection>() { new Collection() { Name = collectionName, Region = "West US", Status = "Active" }, new Collection() { Name = "test2", Region = "West US", Status = "Active" } }; mockCollectionList = new List <Collection>(); foreach (Collection collection in response.Collections) { Collection mockCollection = new Collection() { Name = collection.Name, Region = collection.Region, Status = collection.Status }; mockCollectionList.Add(mockCollection); } ISetup <IRemoteAppManagementClient, Task <CollectionListResult> > setup = clientMock.Setup(c => c.Collections.ListAsync(It.IsAny <CancellationToken>())); setup.Returns(Task.Factory.StartNew(() => response)); return(mockCollectionList.Count); }
public void CanPublishModifyUnpublishApps() { using (var undoContext = UndoContext.Current) { undoContext.Start(); RemoteAppManagementClient client = GetRemoteAppManagementClient(); CollectionListResult serviceList = null; Assert.DoesNotThrow(() => { serviceList = client.Collections.List(); }); Assert.NotNull(serviceList); Assert.NotEmpty(serviceList.Collections); Collection activeCollection = null; ApplicationDetailsListParameter appDetailsList = new ApplicationDetailsListParameter(); PublishedApplicationDetails publishApp = new PublishedApplicationDetails(); string publishingAppName = TestUtilities.GenerateName("TestApp"); string publishingAppAlias = null; GetPublishedApplicationResult publishedAppResult = null; // Find collection in "Active" state so that publishing operations can be performed foreach (Collection ser in serviceList.Collections) { if (ser.Status == "Active") { activeCollection = ser; break; } } Assert.NotNull(activeCollection); // Publish an App { appDetailsList.DetailsList = new List <PublishedApplicationDetails>(); publishApp.AvailableToUsers = true; publishApp.Name = publishingAppName; publishApp.VirtualPath = "%systemroot%\\system32\\notepad.exe"; publishApp.IconPngUris = new IconPngUrisType(); // backend throws exception if this is null appDetailsList.DetailsList.Add(publishApp); PublishApplicationsResult publishResult = client.Publishing.PublishApplications(activeCollection.Name, appDetailsList); // Verify for publish operation Assert.NotNull(publishResult); Assert.NotEmpty(publishResult.ResultList); foreach (PublishingOperationResult oneResult in publishResult.ResultList) { Assert.True(oneResult.Success); publishingAppAlias = oneResult.ApplicationAlias; break; } } // Wait for app status to change to Published publishedAppResult = WaitForAppStatus(client, activeCollection.Name, publishingAppAlias, AppPublishingStatus.Published); // Modify Published application { PublishedApplicationDetails newAppDetails = publishedAppResult.Result; ApplicationDetailsParameter newAppDetailsParam = new ApplicationDetailsParameter(); newAppDetails.Name = TestUtilities.GenerateName("ModTestApp"); newAppDetailsParam.Details = newAppDetails; ModifyApplicationResult modifiedAppResult = client.Publishing.ModifyApplication(activeCollection.Name, publishingAppAlias, newAppDetailsParam); // Verify Modify app result Assert.NotNull(modifiedAppResult); Assert.NotNull(modifiedAppResult.Result); Assert.True(modifiedAppResult.StatusCode == HttpStatusCode.OK); } // Wait for app status to change to Published publishedAppResult = WaitForAppStatus(client, activeCollection.Name, publishingAppAlias, AppPublishingStatus.Published); // Unpublish the application { UnpublishApplicationsResult unpublishAppResult = client.Publishing.Unpublish(activeCollection.Name, new AliasesListParameter { AliasesList = { publishingAppAlias } }); // Verify unpublish app result Assert.NotNull(unpublishAppResult); Assert.NotEmpty(unpublishAppResult.ResultList); foreach (PublishingOperationResult oneResult in unpublishAppResult.ResultList) { Assert.True(oneResult.Success); } } } }
public void CanUnpublishAllApps() { using (var undoContext = UndoContext.Current) { undoContext.Start(); RemoteAppManagementClient client = GetRemoteAppManagementClient(); Collection activeCollection = null; CollectionListResult serviceList = null; Assert.DoesNotThrow(() => { serviceList = client.Collections.List(); }); Assert.NotNull(serviceList); Assert.NotEmpty(serviceList.Collections); foreach (Collection collection in serviceList.Collections) { // Find the collection in Active state so that Publish/UnPublish operations can be performed if (collection.Status == "Active") { activeCollection = collection; continue; } } Assert.NotNull(activeCollection); // Save the apps list GetPublishedApplicationListResult appsListResult = client.Publishing.List(activeCollection.Name); Assert.NotNull(appsListResult); Assert.True(appsListResult.StatusCode == HttpStatusCode.OK); // Unpublish all apps UnpublishApplicationsResult unpublishResult = client.Publishing.UnpublishAll(activeCollection.Name); Assert.NotNull(unpublishResult); // Wait for all apps to be unpublished { GetPublishedApplicationListResult newAppsListResult = null; int retryCount = 0; do { // Need not wait in Mock environment if (HttpMockServer.Mode != HttpRecorderMode.Playback) { TestUtilities.Wait(AppPublihingStatusCheckIntervalSeconds * 1000); } newAppsListResult = client.Publishing.List(activeCollection.Name); Assert.NotNull(newAppsListResult); Assert.NotNull(newAppsListResult.ResultList); Assert.True(newAppsListResult.StatusCode == HttpStatusCode.OK); retryCount++; } while (retryCount < AppPublihingStatusCheckMaxRetries && newAppsListResult.ResultList.Count != 0); Assert.True(retryCount < AppPublihingStatusCheckMaxRetries); } // Re-Publish the original application list PublishApplicationsResult publishResult = client.Publishing.PublishApplications( activeCollection.Name, new ApplicationDetailsListParameter { DetailsList = appsListResult.ResultList }); Assert.NotNull(publishResult); Assert.NotNull(publishResult.ResultList); Assert.True(publishResult.StatusCode == HttpStatusCode.OK); } }