Пример #1
0
        public void DeleteCompletedAndDecrementSchedules()
        {
            var schedules = new MazakSchedules()
            {
                Schedules = new[] {
                    new MazakScheduleRow()
                    {
                        Id               = 1,
                        PartName         = "part1:1:1",
                        Comment          = MazakPart.CreateComment("uniq1", new [] { 1 }, false),
                        PlanQuantity     = 15,
                        CompleteQuantity = 15,
                        Priority         = 50,
                        Processes        =
                        {
                            new MazakScheduleProcessRow()
                            {
                                MazakScheduleRowId = 1,
                                FixedMachineFlag   = 1,
                                ProcessNumber      = 1
                            }
                        }
                    },
                    new MazakScheduleRow()
                    {
                        Id               = 2,
                        PartName         = "part2:1:1",
                        Comment          = MazakPart.CreateComment("uniq2", new [] { 1 }, false),
                        PlanQuantity     = 15,
                        CompleteQuantity = 10,
                        Priority         = 50,
                        Processes        =
                        {
                            new MazakScheduleProcessRow()
                            {
                                MazakScheduleRowId      = 1,
                                FixedMachineFlag        = 1,
                                ProcessNumber           = 1,
                                ProcessMaterialQuantity = 3,
                                ProcessExecuteQuantity  = 2
                            }
                        }
                    }
                }
            };

            var(actions, tokeep) = BuildMazakSchedules.RemoveCompletedAndDecrementSchedules(schedules, DecrementPriorityOnDownload: true);

            schedules.Schedules.First().Command = MazakWriteCommand.Delete;
            schedules.Schedules.Skip(1).First().Command  = MazakWriteCommand.ScheduleSafeEdit;
            schedules.Schedules.Skip(1).First().Priority = 40;
            schedules.Schedules.Skip(1).First().Processes.Clear();

            actions.Schedules.Should().BeEquivalentTo(schedules.Schedules);
            actions.Parts.Should().BeEmpty();
            actions.Fixtures.Should().BeEmpty();
            actions.Pallets.Should().BeEmpty();

            tokeep.Should().BeEquivalentTo(new[] { "part2:1:1" });
        }