コード例 #1
0
        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));
        }
コード例 #2
0
        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));
            }
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        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());
            }
        }
コード例 #5
0
        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));
        }
コード例 #6
0
        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();
        }
コード例 #7
0
        public void AddNewTask_UserCancelsCreationOfTask_ShouldGoToTheTasksPage()
        {
            //Arrange
            int initialNumberOfTask = TasksPage.GetCurrentNumberOfTasks();

            //Act
            TasksPage.GoToNewTaskPage();
            NewTaskPage.ClosePage();
            int finalNumberOfTasks = TasksPage.GetCurrentNumberOfTasks();

            //Assert
            Assert.AreEqual(initialNumberOfTask, finalNumberOfTasks);
        }
コード例 #8
0
        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());
        }
コード例 #9
0
        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);
        }
コード例 #10
0
        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));
        }
コード例 #11
0
        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;
            }
        }
コード例 #12
0
        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;
        }