private void AddPHPRoleTest(int webRole, int workerRole, int order = 0) { using (FileSystemHelper files = new FileSystemHelper(this)) { AzureServiceWrapper wrappedService = new AzureServiceWrapper(files.RootPath, serviceName, null); CloudServiceProject service = new CloudServiceProject(Path.Combine(files.RootPath, serviceName), null); WebRoleInfo[] webRoles = null; if (webRole > 0) { webRoles = new WebRoleInfo[webRole]; for (int i = 0; i < webRoles.Length; i++) { webRoles[i] = new WebRoleInfo(string.Format("{0}{1}", Resources.WebRole, i + 1), 1); } } WorkerRoleInfo[] workerRoles = null; if (workerRole > 0) { workerRoles = new WorkerRoleInfo[workerRole]; for (int i = 0; i < workerRoles.Length; i++) { workerRoles[i] = new WorkerRoleInfo(string.Format("{0}{1}", Resources.WorkerRole, i + 1), 1); } } RoleInfo[] roles = (webRole + workerRole > 0) ? new RoleInfo[webRole + workerRole] : null; if (order == 0) { for (int i = 0, w = 0, wo = 0; i < webRole + workerRole; ) { if (w++ < webRole) roles[i++] = wrappedService.AddWebRole(Data.PHPWebRoleScaffoldingPath); if (wo++ < workerRole) roles[i++] = wrappedService.AddWorkerRole(Data.PHPWorkerRoleScaffoldingPath); } } else if (order == 1) { for (int i = 0, w = 0, wo = 0; i < webRole + workerRole; ) { if (wo++ < workerRole) roles[i++] = wrappedService.AddWorkerRole(Data.PHPWorkerRoleScaffoldingPath); if (w++ < webRole) roles[i++] = wrappedService.AddWebRole(Data.PHPWebRoleScaffoldingPath); } } else if (order == 2) { wrappedService.AddRole(Data.PHPWebRoleScaffoldingPath, Data.PHPWorkerRoleScaffoldingPath, webRole, workerRole); webRoles.CopyTo(roles, 0); Array.Copy(workerRoles, 0, roles, webRole, workerRoles.Length); } else if (order == 3) { wrappedService.AddRole(Data.PHPWebRoleScaffoldingPath, Data.PHPWorkerRoleScaffoldingPath, 0, workerRole); workerRoles.CopyTo(roles, 0); wrappedService.AddRole(Data.PHPWebRoleScaffoldingPath, Data.PHPWorkerRoleScaffoldingPath, webRole, 0); Array.Copy(webRoles, 0, roles, workerRole, webRoles.Length); } else { throw new ArgumentException("value for order parameter is unknown"); } AzureAssert.AzureServiceExists(Path.Combine(files.RootPath, serviceName), Resources.GeneralScaffolding, serviceName, webRoles: webRoles, workerRoles: workerRoles, webScaff: Data.PHPWebRoleScaffoldingPath, workerScaff: Data.PHPWorkerRoleScaffoldingPath, roles: roles); } }