示例#1
0
        internal override OfficeWorkerCredential AddCredential(VirtualResource resource, OfficeWorkerDetail detail)
        {
            SolutionTester tester = resource as SolutionTester;

            OfficeWorkerCredential credential = null;

            switch (tester.AccountType)
            {
            case SolutionTesterCredentialType.AccountPool:
                credential = ManifestAgent.UserAccounts.NextUserCredential(((OfficeWorker)resource).UserPool);
                credential.ResourceInstanceId = credential.UserName;
                //credential.ResourceInstanceId = SystemManifestAgent.CreateUniqueId(credential.UserName);
                break;

            case SolutionTesterCredentialType.DefaultDesktop:
                credential                    = new OfficeWorkerCredential();
                credential.Domain             = Environment.UserDomainName;
                credential.UserName           = Environment.UserName;
                credential.Password           = string.Empty;
                credential.ResourceInstanceId = SystemManifestAgent.CreateUniqueId(Environment.UserName);
                break;

            case SolutionTesterCredentialType.ManuallyEntered:
                credential                    = new OfficeWorkerCredential();
                credential.Domain             = tester.Domain;
                credential.UserName           = tester.UserName;
                credential.Password           = tester.Password;
                credential.ResourceInstanceId = SystemManifestAgent.CreateUniqueId(tester.UserName);
                break;
            }

            return(credential);
        }
        private void IncrementQuantities(VirtualResourcePacker packer)
        {
            // Get a list of distinct resources based on the resource Id.  Then for each distinct
            // resource increment the total user pool count by the instance count for the resource.
            var resourceList = packer.PackedSets
                               .SelectMany(x => x)
                               .DistinctBy(x => x.VirtualResourceId)
                               .Where
                               (
                x => x.ResourceType.Equals("OfficeWorker") ||
                x.ResourceType.Equals("CitrixWorker") ||
                x.ResourceType.Equals("SolutionTester")
                               );

            foreach (var resource in resourceList)
            {
                SolutionTester tester = resource as SolutionTester;
                if (tester != null && tester.AccountType != SolutionTesterCredentialType.AccountPool)
                {
                    continue;
                }

                IncrementDomainAccountQuantity(((OfficeWorker)resource).UserPool, resource.InstanceCount);
            }

            // For each packed set, which equates to the resources that will run on a given VM, increment
            // the VM count by platform used for each packed resource set.
            foreach (var packedResourceSet in packer.PackedSets)
            {
                IncrementVirtualMachineQuantity(packedResourceSet.Platform);
            }
        }
示例#3
0
        public void TestSolutionTest()
        {
            LeetTestUnit unit = new LeetTestUnit(
                new object[]
            {
                3, 3, 3
            }, 0);

            SolutionTester.TestSolution(new Solution(), unit);
        }
示例#4
0
        public override OfficeWorkerDetail CreateDetail(VirtualResource resource)
        {
            SolutionTester tester = resource as SolutionTester;

            SolutionTesterDetail detail = new SolutionTesterDetail();

            CreateBaseWorkerDetail(tester, detail);

            detail.UseCredential  = tester.UseCredential;
            detail.CredentialType = tester.CredentialType;
            detail.Username       = tester.CredentialName;
            detail.Domain         = tester.CredentialDomain;
            detail.Password       = tester.Password;

            CreateMetadataDetail(resource, detail);
            return(detail);
        }
示例#5
0
        /// <summary>
        /// Initializes this instance.
        /// </summary>
        /// <param name="entity"></param>
        public override void Initialize(object entity)
        {
            _tester = entity as SolutionTester;

            base.Initialize(entity);

            if (_tester.ResourcesPerVM != int.MaxValue)
            {
                // Force resources per VM to the max value to avoid
                // splitting manifests when running the test.
                _tester.ResourcesPerVM = int.MaxValue;
            }

            usernameTextBox.DataBindings.Add("Text", _tester, "Username");
            passwordTextBox.DataBindings.Add("Text", _tester, "Password");
            domainTextBox.DataBindings.Add("Text", _tester, "Domain");

            if (_tester.UseCredential)
            {
                solutionTesterUseDesktopRadioButton.Checked  = false;
                solutionTesterUseSelectedRadioButton.Checked = true;
            }
            else
            {
                solutionTesterUseDesktopRadioButton.Checked  = true;
                solutionTesterUseSelectedRadioButton.Checked = false;
            }

            switch (_tester.AccountType)
            {
            case SolutionTesterCredentialType.AccountPool:
                poolCredentialRadioButton.Checked = true;
                break;

            case SolutionTesterCredentialType.DefaultDesktop:
                desktopCredentialRadioButton.Checked         = true;
                solutionTesterUseDesktopRadioButton.Checked  = true;
                solutionTesterUseDesktopRadioButton.Enabled  = false;
                solutionTesterUseSelectedRadioButton.Enabled = false;
                break;

            default:
                manualCredentialRadioButton.Checked = true;
                break;
            }
        }
示例#6
0
        private void ImportScenarios(string fileName, Guid folderId)
        {
            int totalActivities = 0;
            List <Database.EnterpriseScenario> exportedScenarios;

            using (FileStream fs = File.OpenRead(fileName))
            {
                StreamReader sReader        = new StreamReader(fs);
                var          scenarioString = sReader.ReadToEnd();
                exportedScenarios = (List <Database.EnterpriseScenario>)JsonConvert.DeserializeObject(scenarioString, typeof(List <Database.EnterpriseScenario>));
            }

            using (EnterpriseTestContext context = new EnterpriseTestContext(_currentDatabase))
            {
                foreach (var sourceScenario in exportedScenarios)
                {
                    EnterpriseScenario targetScenario = new EnterpriseScenario
                    {
                        Name = sourceScenario.Name,
                        EnterpriseScenarioId = SequentialGuid.NewGuid(),
                        FolderId             = folderId,
                        Company          = sourceScenario.Company,
                        Deleted          = false,
                        Description      = sourceScenario.Description,
                        Owner            = UserManager.CurrentUserName,
                        ScenarioSettings = sourceScenario.ScenarioSettings,
                        Vertical         = sourceScenario.Vertical
                    };
                    //if (context.EnterpriseScenarios.FirstOrDefault(x =>
                    //        x.EnterpriseScenarioId == sourceScenario.EnterpriseScenarioId) != null)
                    //{
                    //    targetScenario.EnterpriseScenarioId = SequentialGuid.NewGuid();
                    //}

                    foreach (var sourceScenarioVirtualResource in sourceScenario.VirtualResources)
                    {
                        SolutionTester targetVirtualResource = new SolutionTester("SolutionTester")
                        {
                            Description          = sourceScenarioVirtualResource.Description,
                            Enabled              = true,
                            EnterpriseScenarioId = targetScenario.EnterpriseScenarioId,
                            Name                   = sourceScenarioVirtualResource.Name,
                            InstanceCount          = sourceScenarioVirtualResource.InstanceCount,
                            Platform               = sourceScenarioVirtualResource.Platform,
                            ResourceType           = sourceScenarioVirtualResource.ResourceType,
                            ResourcesPerVM         = sourceScenarioVirtualResource.ResourcePerVM,
                            TestCaseId             = sourceScenarioVirtualResource.TestCaseId,
                            VirtualResourceId      = SequentialGuid.NewGuid(),
                            DurationTime           = sourceScenarioVirtualResource.DurationTime,
                            MaxActivityDelay       = sourceScenarioVirtualResource.MaxActivityDelay,
                            MinActivityDelay       = sourceScenarioVirtualResource.MinActivityDelay,
                            RandomizeActivities    = sourceScenarioVirtualResource.RandomizeActivities,
                            RandomizeActivityDelay = sourceScenarioVirtualResource.RandomizeActivityDelay,
                            ExecutionMode          = EnumUtil.Parse <ExecutionMode>(sourceScenarioVirtualResource.RunMode),
                            MaxStartupDelay        = sourceScenarioVirtualResource.MaxStartupDelay,
                            MinStartupDelay        = sourceScenarioVirtualResource.MinStartupDelay,
                            RandomizeStartupDelay  = sourceScenarioVirtualResource.RandomizeStartupDelay,
                            RepeatCount            = sourceScenarioVirtualResource.RepeatCount,
                            AccountType            = SolutionTesterCredentialType.DefaultDesktop,
                            UseCredential          = false
                        };

                        //if (context.VirtualResources.FirstOrDefault(x =>
                        //        x.VirtualResourceId == sourceScenarioVirtualResource.VirtualResourceId) != null)
                        //{
                        //    targetVirtualResource.VirtualResourceId = SequentialGuid.NewGuid();
                        //}

                        foreach (var virtualResourceMetadata in sourceScenarioVirtualResource.VirtualResourceMetadata)
                        {
                            VirtualResourceMetadata targetVirtualResourceMetadata =
                                new VirtualResourceMetadata(virtualResourceMetadata.ResourceType,
                                                            virtualResourceMetadata.MetadataType)
                            {
                                VirtualResourceId = targetVirtualResource.VirtualResourceId,
                                Deleted           = false,
                                Enabled           = true,
                                ExecutionPlan     = virtualResourceMetadata.ExecutionPlan,
                                Metadata          = virtualResourceMetadata.Metadata,
                                MetadataVersion   = virtualResourceMetadata.MetadataVersion,
                                MetadataType      = virtualResourceMetadata.MetadataType,
                                Name         = virtualResourceMetadata.Name,
                                ResourceType = virtualResourceMetadata.ResourceType,
                                VirtualResourceMetadataId = SequentialGuid.NewGuid(),
                            };
                            //if (context.VirtualResourceMetadataSet.FirstOrDefault(x =>
                            //        x.VirtualResourceMetadataId ==
                            //        targetVirtualResourceMetadata.VirtualResourceMetadataId) != null)
                            //{
                            //    targetVirtualResourceMetadata.VirtualResourceMetadataId = SequentialGuid.NewGuid();
                            //}

                            targetVirtualResourceMetadata.AssetUsage = VirtualResourceMetadataAssetUsage
                                                                       .CreateVirtualResourceMetadataAssetUsage(
                                targetVirtualResourceMetadata.VirtualResourceMetadataId,
                                Serializer.Serialize(_edtAssetSelectionControl.AssetSelectionData).ToString());
                            targetVirtualResource.VirtualResourceMetadataSet.Add(targetVirtualResourceMetadata);
                            totalActivities++;
                        }
                        targetScenario.VirtualResources.Add(targetVirtualResource);
                    }
                    context.EnterpriseScenarios.AddObject(targetScenario);
                }

                try
                {
                    MessageBox.Show(
                        $"Found {totalActivities} activities to import. This might take few minutes to complete. Please be patient. Press OK to proceed.",
                        ApplicationName, MessageBoxButton.OK, MessageBoxImage.Information);
                    context.SaveChanges();
                    MessageBox.Show($"{exportedScenarios.Count} scenarios successfully imported.", ApplicationName,
                                    MessageBoxButton.OK, MessageBoxImage.Information);
                }
                catch (SqlException sqlException)
                {
                    MessageBox.Show($"Error occurred while importing the scenario. {ScalableTest.Extension.JoinAllErrorMessages(sqlException)}",
                                    ApplicationName, MessageBoxButton.OK, MessageBoxImage.Error);
                }
                catch (UpdateException updateException)
                {
                    MessageBox.Show($"Error occurred while importing the scenario. {ScalableTest.Extension.JoinAllErrorMessages(updateException)}",
                                    ApplicationName, MessageBoxButton.OK, MessageBoxImage.Error);
                }
                catch (Exception e)
                {
                    MessageBox.Show($"An unknown error occurred while importing scenario. {ScalableTest.Extension.JoinAllErrorMessages(e)}", ApplicationName, MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
        }