public void AddNewTask_WithSubTasks_MustCreateXSubTasks(int subTasksToCreate) { //Arrange string title = "Title"; string content = $"This task contains {subTasksToCreate} subtasks"; int initialNumberOfTask = TasksPage.GetCurrentNumberOfTasks(); int taskIndex = initialNumberOfTask; TasksPage.GoToNewTaskPage(); //Act for (int i = 1; i <= subTasksToCreate; i++) { NewTaskPage.ShowAddSubTaskDialog(); TaskMenuOptionsDialog.AddSubTask(true, $"This is subtask number = {i}"); } NewTaskPage.AddEditNewTask(title, content); //Assert int finalNumberOfTasks = TasksPage.GetCurrentNumberOfTasks(); Assert.True(initialNumberOfTask + 1 == finalNumberOfTasks); Assert.DoesNotThrow(() => TasksPage.ShowSubTasks(taskIndex)); int numberOfSubTasks = TasksPage.GetNumberOfSubTasks(taskIndex); Assert.True(numberOfSubTasks == subTasksToCreate); Assert.AreEqual(title, TasksPage.GetTaskTitle(taskIndex)); Assert.AreEqual(content, TasksPage.GetTaskContent(taskIndex)); }
public void AddNewTask_WithACompletitionDate_ShouldShowACompletitionDateIndicator(bool addCompletitionDate) { //Arrange string title = "Title"; string content = $"This task has a completition date = {addCompletitionDate}"; int initialNumberOfTask = TasksPage.GetCurrentNumberOfTasks(); int taskIndex = initialNumberOfTask; TasksPage.GoToNewTaskPage(); //Act NewTaskPage.ShowAddEditCompletitionDate().AddCompletitionDate(addCompletitionDate); bool dateWasAdded = NewTaskPage.CompletitionDateIsShown(); NewTaskPage.AddEditNewTask(title, content); //Assert int finalNumberOfTasks = TasksPage.GetCurrentNumberOfTasks(); Assert.True(initialNumberOfTask + 1 == finalNumberOfTasks); Assert.AreEqual(title, TasksPage.GetTaskTitle(taskIndex)); Assert.AreEqual(content, TasksPage.GetTaskContent(taskIndex)); if (addCompletitionDate) { Assert.True(dateWasAdded); Assert.True(TasksPage.HasACompletitionDateSet(taskIndex)); } else { Assert.True(!dateWasAdded); Assert.True(!TasksPage.HasACompletitionDateSet(taskIndex)); } }
public void EditTask_ExistingTask_TaskIsTotallyEdited() { //Arrange string newTitle = "Edited title"; string newContent = "This task is edited"; string subTaskTitle = "This is subtask of an edited task"; int initialNumberOfTask = TasksPage.GetCurrentNumberOfTasks(); int taskIndex = initialNumberOfTask - 1; TasksPage.GoToNewTaskPage(taskIndex); //Act //Here we basically edit everything NewTaskPage.ShowAddEditCompletitionDate() .AddCompletitionDate(true) .ShowAddReminderDialog(); TaskMenuOptionsDialog.AddAReminder(true); NewTaskPage.ShowAddSubTaskDialog(); TaskMenuOptionsDialog.AddSubTask(true, subTaskTitle); NewTaskPage.AddEditNewTask(newTitle, newContent); //Assert int finalNumberOfTasks = TasksPage.GetCurrentNumberOfTasks(); Assert.AreEqual(initialNumberOfTask, finalNumberOfTasks); Assert.AreEqual(newTitle, TasksPage.GetTaskTitle(taskIndex)); Assert.AreEqual(newContent, TasksPage.GetTaskContent(taskIndex)); Assert.True(TasksPage.HasACompletitionDateSet(taskIndex)); Assert.True(TasksPage.HasAReminderDateSet(taskIndex)); TasksPage.ShowSubTasks(taskIndex); Assert.True(TasksPage.HasSubTasks(taskIndex)); }
public void MoveTask_ShouldBeMoved(bool moveIt) { //Arrange int initialNumberOfTask = TasksPage.GetCurrentNumberOfTasks(); int taskIndex = initialNumberOfTask - 1; TasksPage.GoToNewTaskPage(taskIndex); NewTaskPage.ShowMoveTaskDialog(); int tasksListIndex = TaskMenuOptionsDialog.GetSelectedTaskListIndex(); int maxIndex = TaskMenuOptionsDialog.GetNumberOfTaskLists(); int selectedTaskListIndex = Enumerable.Range(0, maxIndex).First(value => value != tasksListIndex); //Act TaskMenuOptionsDialog.MoveToDiffTaskList(moveIt, selectedTaskListIndex); //Assert if (moveIt) { NewTaskPage.WaitForPageToLeave(); TasksPage.AssertOnPage(); int finalNumberOfTasks = TasksPage.GetCurrentNumberOfTasks(); Assert.AreEqual(initialNumberOfTask - 1, finalNumberOfTasks); } else { ManageTaskListsDialog.AssertOnPage(TimeSpan.FromSeconds(10)); Assert.True(tasksListIndex == TaskMenuOptionsDialog.GetSelectedTaskListIndex()); } }
public void AddNewTask_CreatesOrNotANewTaskList(bool createTaskList) { //Arrange string title = "Title goes here"; string content = "Content goes here"; string taskListTitle = "A new task list"; int initialNumberOfTask = createTaskList ? 0 : TasksPage.GetCurrentNumberOfTasks(); int taskIndex = initialNumberOfTask; if (createTaskList) { TasksPage.OpenNewTaskListDialog().AddNewTaskList(taskListTitle); } TasksPage.GoToNewTaskPage(); //Act NewTaskPage.AddEditNewTask(title, content); //Assert int finalNumberOfTasks = TasksPage.GetCurrentNumberOfTasks(); Assert.True(createTaskList ? finalNumberOfTasks == 1 : initialNumberOfTask + 1 >= finalNumberOfTasks); Assert.AreEqual(title, TasksPage.GetTaskTitle(taskIndex)); Assert.AreEqual(content, TasksPage.GetTaskContent(taskIndex)); }
public virtual void BeforeEachTest() { AppManager.StartApp(); LoginPage = new LoginPage(); TasksPage = new TasksPage(); NewTaskPage = new NewTaskPage(); TaskMenuOptionsDialog = new TaskMenuOptionsDialog(); ManageTaskListsDialog = new ManageTaskListsDialog(); SettingsPage = new SettingsPage(); LoginPage.Login(); }
public void AddNewTask_UserCancelsCreationOfTask_ShouldGoToTheTasksPage() { //Arrange int initialNumberOfTask = TasksPage.GetCurrentNumberOfTasks(); //Act TasksPage.GoToNewTaskPage(); NewTaskPage.ClosePage(); int finalNumberOfTasks = TasksPage.GetCurrentNumberOfTasks(); //Assert Assert.AreEqual(initialNumberOfTask, finalNumberOfTasks); }
public void AddEditTask_InvalidTitleAndContent_ShowsAValidationError(bool addTask) { //Arrange string title = string.Empty; string content = string.Empty; if (addTask) { TasksPage.GoToNewTaskPage(); } else { TasksPage.GoToNewTaskPage(TasksPage.GetCurrentNumberOfTasks() - 1); } //Act - Assert Assert.Throws <Exception>(() => NewTaskPage.AddEditNewTask(title, content)); Assert.True(NewTaskPage.IsTaskTitleErrorValidationVisible()); Assert.True(NewTaskPage.IsTaskContentErrorValidationVisibile()); }
public void DeleteTask_FreshCreatedTask_MustBeDeleted() { //Arrange int initialNumberOfTask = TasksPage.GetCurrentNumberOfTasks(); TasksPage.GoToNewTaskPage(); NewTaskPage.AddEditNewTask("A Task", "This task will be deleted"); //Act //E.g: initially you have 3 task, create another one and you will have 4, but the corresponding //index will be equal to the initial number of tasks TaskMenuOptionsDialog.ShowMainDialog(initialNumberOfTask) .ShowDeleteTaskDialog() .DeleteTask(true); //Assert int finalNumberOfTask = TasksPage.GetCurrentNumberOfTasks(); Assert.True(initialNumberOfTask == finalNumberOfTask); }
public void EditTask_CreatesOrNotANewTaskList(bool createTaskList) { //Arrange string newTitle = "Edited title"; string newContent = "This task is edited"; AddNewTask_CreatesOrNotANewTaskList(createTaskList); int initialNumberOfTask = TasksPage.GetCurrentNumberOfTasks(); int taskIndex = initialNumberOfTask - 1; //Act TasksPage.GoToNewTaskPage(taskIndex); NewTaskPage.AddEditNewTask(newTitle, newContent); //Assert int finalNumberOfTasks = TasksPage.GetCurrentNumberOfTasks(); Assert.True(initialNumberOfTask == finalNumberOfTasks); Assert.AreEqual(newTitle, TasksPage.GetTaskTitle(taskIndex)); Assert.AreEqual(newContent, TasksPage.GetTaskContent(taskIndex)); }
private void PageChanged(int pageIndex) { this.pageIndex = pageIndex; switch (pageIndex) { case 0: newClientPage = new NewClientPage(CloseFrame); MainFrame.Content = newClientPage; break; case 1: newOrderPage = new NewOrderPage(CloseFrame); MainFrame.Content = newOrderPage; break; case 2: newProjectPage = new NewProjectPage(CloseFrame); MainFrame.Content = newProjectPage; break; case 3: newEmployeePage = new NewEmployeePage(CloseFrame); MainFrame.Content = newEmployeePage; break; case 4: clientsPage = new ClientsPage(CloseFrame); MainFrame.Content = clientsPage; break; case 5: ordersPage = new OrdersPage(CloseFrame); MainFrame.Content = ordersPage; break; case 6: employeesPage = new EmployeesPage(CloseFrame); MainFrame.Content = employeesPage; break; case 7: allprojectsPage = new AllProjectsPage(CloseFrame); MainFrame.Content = allprojectsPage; break; case 8: lifeprojectsPage = new ProjectLifePage(CloseFrame); MainFrame.Content = lifeprojectsPage; break; case 9: notopened = new NotOpenedProjectsPage(CloseFrame); MainFrame.Content = notopened; break; case 10: alltasksPage = new TasksPage(CloseFrame); MainFrame.Content = alltasksPage; break; case 11: newTaskPage = new NewTaskPage(CloseFrame); MainFrame.Content = newTaskPage; break; case 12: newItemPage = new NewItemPage(CloseFrame); MainFrame.Content = newItemPage; break; case 13: itemsPage = new ItemsPage(CloseFrame); MainFrame.Content = itemsPage; break; } }
static void Main(string[] args) { log4net.Config.BasicConfigurator.Configure(); log4net.ILog log = log4net.LogManager.GetLogger(typeof(Program)); log.Info("Starting"); System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("es"); System.Threading.Thread.CurrentThread.CurrentCulture = ci; Console.WriteLine("Options "); Console.WriteLine("1: Cerrar Actividades CM"); Console.WriteLine("2: Crear Tarea"); Console.WriteLine("3: Cerrar Tarea"); Console.WriteLine("4: Crear Tareas (excel)"); Console.WriteLine("5: Download report as csv"); Console.WriteLine("6: Open app (IE)"); Console.WriteLine("8: Crear defecto"); Console.Write("Escoger opcion: "); var option = Console.ReadLine(); Console.WriteLine("Opcion escogida es: {0}", option); switch (option) { case "8": var defectsExcel = new ExcelQueryFactory("Defects.xlsx"); var defects = from x in defectsExcel.Worksheet <DefectDTO>() select x; foreach (var def in defects) { if (def.IdAuthorization != null) { Login(); log.InfoFormat("Creando Defecto: {0}", def.ToString()); var autPage = new AutorizationPage(driver); string autPageUrl = ""; autPageUrl += ConfigurationManager.AppSettings["URLBase"]; autPageUrl += ConfigurationManager.AppSettings["WISearchURLPartialHistory"]; autPage.GoToURL(string.Format(autPageUrl, def.IdAuthorization)); string areaProyecto = autPage.AreaProyecto(); log.InfoFormat("Area proyecto {0}", areaProyecto); string PrmUrl = ""; PrmUrl += ConfigurationManager.AppSettings["URLBase"]; PrmUrl += ConfigurationManager.AppSettings["WISearchURLPartialHistory"]; Console.WriteLine("Prmurl {0}", PrmUrl); autPage.GoToURL(string.Format(PrmUrl, autPage.Father())); SolPage solPage = new SolPage(driver); solPage.FillAttributes(def); var defPage = new DefectPage(driver); string newDefUrl = ""; newDefUrl += ConfigurationManager.AppSettings["URLBase"]; newDefUrl += ConfigurationManager.AppSettings["ProjectAreaURLPartial"]; newDefUrl += ConfigurationManager.AppSettings["URLdefectPartial"]; defPage.GoToURL(string.Format(newDefUrl, areaProyecto)); defPage.CreateDefect(def); var input = Console.ReadLine(); Logout(); } } break; case "6": string currentDirectory = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); string driverFolder = Path.Combine(currentDirectory, ConfigurationManager.AppSettings["DriversDirectory"]); var options = new InternetExplorerOptions { IgnoreZoomLevel = true, ForceCreateProcessApi = true, BrowserCommandLineArguments = "-private", PageLoadStrategy = PageLoadStrategy.None }; string site = ConfigurationManager.AppSettings["IEUrl"]; string usuario = ConfigurationManager.AppSettings["IEUser"]; string clave = ConfigurationManager.AppSettings["IEPassword"]; driver = new InternetExplorerDriver(driverFolder, options); var NetAppLogin = new NetAppLogin(driver); NetAppLogin.GoToURL(site); Console.WriteLine("now is {0}", DateTime.Now.ToLongTimeString()); Console.WriteLine("about to start...."); Console.WriteLine("now is {0}", DateTime.Now.ToLongTimeString()); AutoItX.WinActivate("Windows Security"); AutoItX.WinWaitActive("Windows Security"); AutoItX.Sleep(500); AutoItX.WinActivate("Windows Security"); AutoItX.Send("{TAB}"); AutoItX.WinActivate("Windows Security"); AutoItX.Send("{TAB}"); AutoItX.WinActivate("Windows Security"); AutoItX.Send("{ENTER}"); AutoItX.WinActivate("Windows Security"); AutoItX.Send("{TAB}"); AutoItX.WinActivate("Windows Security"); AutoItX.Send("{ENTER}"); AutoItX.WinActivate("Windows Security"); AutoItX.Sleep(500); AutoItX.WinActivate("Windows Security"); AutoItX.Send("TIM"); AutoItX.WinActivate("Windows Security"); AutoItX.Send("{ASC 092}"); AutoItX.WinActivate("Windows Security"); AutoItX.Send(usuario); AutoItX.WinActivate("Windows Security"); AutoItX.Send("{TAB}"); AutoItX.WinActivate("Windows Security"); AutoItX.Sleep(500); AutoItX.WinActivate("Windows Security"); AutoItX.Send(clave); AutoItX.WinActivate("Windows Security"); AutoItX.Send("{ENTER}"); break; case "5": Login(); var savedQueryPage = new SavedQueryPage(driver); savedQueryPage.downloadCSV(); log.Info("Se descargó reporte en download"); Logout(); break; case "4": var tasksExcel = new ExcelQueryFactory("Tasks.xlsx"); var timeTasks = from x in tasksExcel.Worksheet <TimeTask>() select x; foreach (var task in timeTasks) { if (task != null && task.ToString() != null && task.IdTicket != "" && task.IdTicket != null) { Login(); log.InfoFormat("Creando Tarea: {0}", task.ToString()); Console.WriteLine(task.ToString()); Console.WriteLine("taskplanned for {0}", task.TaskPlannedFor == null); int taskCode = Int32.Parse(task.IdTicket); NewTaskPage taskPage = null; taskPage = new NewTaskPage(driver, taskCode); if (task.TimeSpentHr.Contains(",")) { task.TimeSpentHr = task.TimeSpentHr.Replace(",", "."); Console.WriteLine("new timespent {0}", task.TimeSpentHr); } taskPage.VisitTicketLinksTab(task); Logout(); } else { log.Error("No se procesan tareas nulas"); } } //report Login(); savedQueryPage = new SavedQueryPage(driver); savedQueryPage.downloadCSV(); log.Info("Se descargó reporte en download"); Logout(); break; case "3": //close task tarea var taskCode1 = int.Parse(ConfigurationManager.AppSettings["TaskID"]); var page1 = new TaskPage(driver, "", null); page1.GoTo(taskCode1); page1.CloseTask("Completada"); //Completada o Invalida o En Trabajo break; case "2": //crear task var taskPage2 = new NewTaskPage(driver, int.Parse(ConfigurationManager.AppSettings["IdTicket"])); taskPage2.VisitTicketLinksTab(null); break; case "1": try { Login(); int startRow = int.Parse(ConfigurationManager.AppSettings["startRow"]); int endRow = int.Parse(ConfigurationManager.AppSettings["endRow"]); int processingAssignations = endRow - startRow + 1; Console.WriteLine("Skipping {0} attention(s)", startRow - 2); Console.WriteLine("Processing {0} attention(s)", processingAssignations); var excel = new ExcelQueryFactory("Modelo.xlsx"); excel.AddTransformation <AssignationExcel>(x => x.DDS, cellValue => cellValue == "Y"); excel.AddTransformation <AssignationExcel>(x => x.Installed, cellValue => cellValue != "N"); excel.AddTransformation <AssignationExcel>(x => x.SourcesCompiled, cellValue => cellValue != "N"); excel.AddTransformation <AssignationExcel>(x => x.Special, cellValue => cellValue == "Y"); var assignations = from x in excel.Worksheet <AssignationExcel>() select x; var assignationList = assignations.ToList().Skip(startRow - 2).Take(processingAssignations); foreach (var task in assignationList) { Console.WriteLine("Processing Actividad id {0} summary {1} installed {2}", task.Id, task.Summary, task.Installed); //crear assignation request var request = new AssignationRequest(); if (task.Cycle > 0) { request.Cycle = task.Cycle; } if (task.DDS) { request.DDS = task.DDS; } request.Id = task.Id; if (!task.Installed) { request.Installation = task.Installed; } if (task.NumberDefects > 0) { request.NumberDefects = task.NumberDefects; } if (task.NumberPbls > 0) { request.NumberPBL = task.NumberPbls; } if (!task.SourcesCompiled) { request.SourcesCompiled = task.SourcesCompiled; } request.TimeSpent = task.TotalTime; Console.WriteLine("Task state {0}", task.ClosingState); if (task.ClosingState == 1) { request.ClosingState = SeleniumCM.Models.AssignationRequest.AttentionClosingState.ExitosoConErrores; } if (task.ClosingState == 2) { request.ClosingState = SeleniumCM.Models.AssignationRequest.AttentionClosingState.Stopper; } if (task.Special) { request.Special = task.Special; } var atencion = AssignationFactory.createAssignation(request); //Console.ReadLine(); //buscar actividad var activity = task.Id; var url = String.Format("https://172.19.112.112:9443/ccm/web/projects/CLARO.CERTIFICACION#action=com.ibm.team.workitem.viewWorkItem&id={0}&tab=esfuerzoscm", activity); driver.Navigate().GoToUrl(url); driver.Navigate().Refresh(); driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20); IWebElement table = null; table = driver.FindElement(By.ClassName("DetailsSplitTable")); var i = 0; foreach (var tarea in atencion.Tasks) { //editar campos t1 IWebElement field = null; field = table.FindElements(By.TagName("input"))[i]; field.Clear(); field.SendKeys(tarea.ReportTime.ToString()); i++; } //guardar IWebElement saveBtn = null; saveBtn = driver.FindElement(By.CssSelector("button.primary-button")); saveBtn.Click(); //cambiar estado a Status IWebElement statusList = null; statusList = driver.FindElement(By.CssSelector("select[aria-label='Status']")); //select status var selectElement = new SelectElement(statusList); selectElement.SelectByText("Finalizado"); //cambiar estado a Resolution var resolutionList = driver.FindElement(By.CssSelector("select[aria-label='Resolution']")); //select status selectElement = new SelectElement(resolutionList); Console.WriteLine("Closing state {0}", request.ClosingState.ToString()); switch (request.ClosingState) { case SeleniumCM.Models.AssignationRequest.AttentionClosingState.Exitoso: selectElement.SelectByText("Exitoso"); break; case SeleniumCM.Models.AssignationRequest.AttentionClosingState.ExitosoConErrores: selectElement.SelectByText("Exitoso con Errores"); break; case SeleniumCM.Models.AssignationRequest.AttentionClosingState.Stopper: selectElement.SelectByText("Stopper (No Instalado)"); break; default: break; } //guardar final saveBtn.Click(); driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5); ScreenshotHelper.TakeScreenshot(driver, request.Id); } } catch (Exception e) { Console.WriteLine("Exception Message {0}", e.Message); Console.WriteLine("Exception Trace {0}", e.StackTrace); } break; default: break; } //page object return return; }