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); } }
public void TestSolutionTest() { LeetTestUnit unit = new LeetTestUnit( new object[] { 3, 3, 3 }, 0); SolutionTester.TestSolution(new Solution(), unit); }
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); }
/// <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; } }
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); } } }