public void CheckTaskCreation() { var ids = this.App.Preconditions.CreateOrderWorkpieceWorkplan(); this.App.Ui.OrdersMain.OpenWorkpieceDetailsDirectly(ids[GeneralData.ProjectManagerEnitityTypes.Workpiece]); var task = this.TaskGenerationRule.Generate(); this.App.Ui.OrdersWorkpiece.AddNewTask(task); var tasks = this.App.Ui.OrdersWorkpiece.GetTasksRecords(); var addedTask = tasks.First(t => t.Name.Equals(task.Name)); Assert.Multiple( () => { Assert.True(tasks.Count.Equals(1), "Task wasn't created or more than 1 tasks were created"); Assert.True( ServiceMethods.ConvertDurationFromTimeFormatToSeconds(addedTask.DurationPerWorkpiece) .Equals(task.DurationPerWorkpiece), $"Duration per workpieces is incorrect. Expected '{task.DurationPerWorkpiece}' but actual '{ServiceMethods.ConvertDurationFromTimeFormatToSeconds(addedTask.DurationPerWorkpiece)}'"); Assert.True( ServiceMethods.ConvertDurationFromTimeFormatToSeconds(addedTask.DurationInTotal) .Equals(task.DurationPerTotal), $"Duration per workpieces is incorrect. Expected '{task.DurationPerTotal}' but actual '{ServiceMethods.ConvertDurationFromTimeFormatToSeconds(addedTask.DurationInTotal)}'"); Assert.True( addedTask.Start.Equals(task.StartDate.ToString("MM/dd/yyyy")), $"Start date is incorrect. Expected '{task.StartDate:MM/dd/yyyy}' but actual '{addedTask.Start}'"); Assert.True( addedTask.End.Equals(task.EndDate.ToString("MM/dd/yyyy")), $"End date is incorrrect. Expected '{task.EndDate:MM/dd/yyyy}' but actual '{addedTask.End}'"); var machineName = this.App.GraphApi.ProjectManager.GetMachine(task.MachineId).name; Assert.True( addedTask.Machine.Equals(machineName), $"Machine name is incorrect. Expected '{machineName}' but actual was '{addedTask.Machine}'"); }); // Check input fields states were reset var states = this.App.Ui.OrdersWorkpiece.GetTaskInputFieldsStates(); foreach (var state in states) { if (!state.Key.Equals(WorkpieceDetails.TaskFields.Machine)) { Assert.True( state.Value.Equals(string.Empty), $"Field '{state.Key.ToString()}' is not in valid state. Actual state is '{state.Value}' but expected empty"); } else { Assert.True( state.Value.Equals("Select Machine"), $"Field '{state.Key.ToString()}' is not in valid state. Actual state is '{state.Value}' but expected 'Select Machine'"); } } }
public void MachineInformation() { #region Get test data string machineToCheck = "Machine 1"; //ToDo: Check for all machines after implementing task sorting logic var machine = App.GraphApi.ProjectManager.GetMachines().First(m => m.name.Equals(machineToCheck)); var apiMachineTasks = App.GraphApi.ProjectManager.GetMachineTasks(machine.id); apiMachineTasks.Sort((x, y) => DateTime.Compare(x.StartDate, y.StartDate)); //Get current task var currentTask = this.GetCurrentTask(apiMachineTasks); //Get upcoming tasks var upcomingTasks = this.GetUpcomingTasks(apiMachineTasks, currentTask); #endregion var machineInfo = App.Ui.Machines.GetMachinesInfo(true, 50).First(m => m.Machine.Equals(machineToCheck)); var workplanId = App.Db.ProjectManager.GetTask(currentTask.Id).WorkplanId; var workplan = App.Db.ProjectManager.GetWorkplan(workplanId); var workpiece = App.Db.ProjectManager.GetWorkpiece(workplan.WorkpieceId); Assert.Multiple( () => { Assert.True(machineInfo.WorkpieceName.Equals(workpiece.Name), $"Workpiece name is incorrect. Expected: {workpiece.Name}. Actual: {machineInfo.WorkpieceName}"); Assert.True(machineInfo.CurrentTask.Equals(currentTask.Name), $"Current is incorrect. Expected: {currentTask.Name}. Actual: {machineInfo.CurrentTask}"); Assert.True(machineInfo.EstimatedEnd.Equals(currentTask.EndDate.ToString("MM/dd/yyyy") + " 12:00:00 AM"), "Estimated end time is wrong"); var estimatedDurationActual = ServiceMethods.ConvertDurationFromTimeFormatToSeconds(machineInfo.EstimatedDuration); Assert.True( estimatedDurationActual.Equals( currentTask.DurationPerTotal), $"Estimated end time is wrong. Expected {currentTask.DurationPerTotal}. Actual {estimatedDurationActual}"); Assert.True( upcomingTasks.First().Value.Select(e => e.Name).ToList() .Contains(machineInfo.UpcomingWorkpiece)); }); }
public void CheckMachinesDetailsInformation() { #region Get test data string machineToCheck = "Machine 2"; var machine = App.GraphApi.ProjectManager.GetMachines().First(m => m.name.Equals(machineToCheck)); var apiMachineTasks = App.GraphApi.ProjectManager.GetMachineTasks(machine.id); apiMachineTasks.Sort((x, y) => DateTime.Compare(x.StartDate, y.StartDate)); //Get current task var currentTask = this.GetCurrentTask(apiMachineTasks); //Get upcoming tasks var upcomingTasks = this.GetUpcomingTasks(apiMachineTasks, currentTask); #endregion App.Ui.Machines.ClickOnMachine(machineToCheck); var workpiece = this.GetWorkpieceByTaskId(currentTask.Id); var uiCurrentTask = App.Ui.Machines.GetCurrentTaskInformationFromMachineDetails(); Assert.Multiple( () => { Assert.True(uiCurrentTask.CurrentTask.Equals(currentTask.Name), $"Task name is incorrect. Expected: {currentTask.Name}. Actual: {uiCurrentTask.CurrentTask}"); Assert.True(uiCurrentTask.WorkpieceName.Equals(workpiece.Name), $"Workpiece name is incorrect. Expected: {workpiece.Name}. Actual: {uiCurrentTask.WorkpieceName}"); Assert.True(uiCurrentTask.ActualStart.Equals(currentTask.StartDate.ToString("MM/dd/yyyy") + " 12:00:00 AM"), "Actual start time is wrong"); Assert.True(uiCurrentTask.EstimatedEnd.Equals(currentTask.EndDate.ToString("MM/dd/yyyy") + " 12:00:00 AM"), "Estimated end time is wrong"); var estimatedDurationActual = ServiceMethods.ConvertDurationFromTimeFormatToSeconds(uiCurrentTask.EstimatedDuration); Assert.True( estimatedDurationActual.Equals( currentTask.DurationPerTotal), $"Estimated end time is wrong. Expected {currentTask.DurationPerTotal}. Actual {estimatedDurationActual}"); Assert.True( uiCurrentTask.DeliveryDate.Equals(workpiece.DeliveryDate.ToString("MM/dd/yyyy")), "Delivery date is wrong"); }); // Check 'Next tasks' section var expectedUpcomingTasks = DateTasksDictionaryToList(upcomingTasks); var uiUpcomingTasks = App.Ui.Machines.GetUpcomingTasksInformationFromMachineDetails(true, 60); Assert.True(expectedUpcomingTasks.Count.Equals(uiUpcomingTasks.Count), $"Incorrect number of upcoming tasks is displayed. Expected {expectedUpcomingTasks.Count} but actual {uiUpcomingTasks.Count}"); foreach (var task in uiUpcomingTasks) { var expectedTask = expectedUpcomingTasks.First(t => t.Name.Equals(task.UpcomingWorkpiece) && (t.StartDate.ToString("MM/dd/yyyy") + " 12:00:00 AM").Equals(task.ActualStart)); workpiece = this.GetWorkpieceByTaskId(expectedTask.Id); var estimatedDurationActual = ServiceMethods.ConvertDurationFromTimeFormatToSeconds(task.EstimatedDuration); bool valid = task.WorkpieceName.Equals(workpiece.Name) && (expectedTask.StartDate.ToString("MM/dd/yyyy") + " 12:00:00 AM").Equals( task.ActualStart) && expectedTask.DurationPerTotal.Equals(estimatedDurationActual) && (expectedTask.EndDate.ToString("MM/dd/yyyy") + " 12:00:00 AM").Equals(task.EstimatedEnd) && workpiece.DeliveryDate.ToString("MM/dd/yyyy").Equals(task.DeliveryDate); Assert.True(valid, "'Next tasks' are not properly displayed"); } // Check tasks order bool validOrder = true; for (int i = 1; i < uiUpcomingTasks.Count; i++) { validOrder = DateTime.Parse(uiUpcomingTasks[i].ActualStart) >= DateTime.Parse(uiUpcomingTasks[i - 1].ActualStart); if (!validOrder) { break; } } Assert.True(validOrder, "'Next tasks' are not displayed in the correct order (by Planned Start)"); }