Пример #1
0
 public override void ApplyLeave(LeavingRecording record)
 {
     if (record.NumberOfDaysLeave <= MAX_LEAVES_CAN_APPROVE)
     {
         ApproveLeave(record);
     }
     else
     {
         _supervisor.ApplyLeave(record);
     }
 }
        public void Test_reporting()
        {
            LeavingRecording recordA = new LeavingRecording {
                EmployeeName = "Mr.A", IsApproved = false, NumberOfDaysLeave = 9, SectionDecided = SectionType.Developer
            };
            LeavingRecording recordB = new LeavingRecording {
                EmployeeName = "Mss.B", IsApproved = false, NumberOfDaysLeave = 12, SectionDecided = SectionType.Developer
            };
            LeavingRecording recordC = new LeavingRecording {
                EmployeeName = "Mr.C", IsApproved = false, NumberOfDaysLeave = 30, SectionDecided = SectionType.Developer
            };
            LeavingRecording recordD = new LeavingRecording {
                EmployeeName = "Mrs.D", IsApproved = false, NumberOfDaysLeave = 50, SectionDecided = SectionType.Developer
            };
            LeavingRecording recordE = new LeavingRecording {
                EmployeeName = "Mss.E", IsApproved = false, NumberOfDaysLeave = 44, SectionDecided = SectionType.Developer
            };

            ReportingSection reportingSection = new ReportingSection();

            reportingSection.ApproveLeavingRecord(recordA);
            reportingSection.ApproveLeavingRecord(recordB);
            reportingSection.ApproveLeavingRecord(recordC);
            reportingSection.ApproveLeavingRecord(recordD);
            reportingSection.ApproveLeavingRecord(recordE);

            Assert.That(recordA.IsApproved, Is.EqualTo(true));
            Assert.That(recordA.SectionDecided, Is.EqualTo(SectionType.TeamLeader));

            Assert.That(recordB.IsApproved, Is.EqualTo(true));
            Assert.That(recordB.SectionDecided, Is.EqualTo(SectionType.ProjectLeader));

            Assert.That(recordC.IsApproved, Is.EqualTo(true));
            Assert.That(recordC.SectionDecided, Is.EqualTo(SectionType.HR));

            Assert.That(recordD.IsApproved, Is.EqualTo(false));
            Assert.That(recordD.SectionDecided, Is.EqualTo(SectionType.HR));

            Assert.That(recordE.IsApproved, Is.EqualTo(false));
            Assert.That(recordE.SectionDecided, Is.EqualTo(SectionType.HR));
        }
Пример #3
0
 private void ApproveLeave(LeavingRecording record)
 {
     record.IsApproved     = true;
     record.SectionDecided = SectionType.TeamLeader;
 }
Пример #4
0
 public abstract void ApplyLeave(LeavingRecording record);
Пример #5
0
 private void Decline(LeavingRecording record)
 {
     record.IsApproved     = false;
     record.SectionDecided = SectionType.HR;
 }