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);
        }
示例#2
0
        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);
                }
            }
        }
示例#3
0
        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);
        }
示例#5
0
        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;
                }
            }
        }
示例#6
0
        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);
        }
示例#7
0
        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);
        }
示例#9
0
        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);
                    }
                }
            }
        }
示例#10
0
        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);
            }
        }