Exemple #1
0
 private WorkReport(AppealCase ac, CaseStage stage, WorkerRole role, WorkState state)
 {
     Case  = ac;
     Stage = stage;
     Role  = role;
     State = state;
 }
Exemple #2
0
        public void FinishedCaseTest()
        {
            Hour       hour       = new Hour(0);
            AppealCase appealCase = new AppealCase();

            boardT.ProcessNewCase(appealCase, hour);
            boardT.DoWork(hour);
            Assert.AreEqual(0, boardT.FinishedCaseCount);

            hour = new Hour(1);
            boardT.DoWork(hour);
            Assert.AreEqual(0, boardT.FinishedCaseCount);

            hour = new Hour(2);
            boardT.DoWork(hour);
            Assert.AreEqual(0, boardT.FinishedCaseCount);


            for (int i = 711; i < 722; i++)
            {
                hour = new Hour(i);
                boardT.DoWork(hour);
                Assert.AreEqual(0, boardT.FinishedCaseCount);
            }


            boardT.DoWork(new Hour(722));
            Assert.AreEqual(1, boardT.FinishedCaseCount);

            boardT.DoWork(new Hour(723));
            Assert.AreEqual(1, boardT.FinishedCaseCount);
        }
Exemple #3
0
        public void OPWorkTest()
        {
            AppealCase appealCase = new AppealCase();

            boardT.ProcessNewCase(appealCase, new Hour(0));
            boardT.DoWork(new Hour(0));
            boardT.DoWork(new Hour(1));
            boardT.DoWork(new Hour(2));

            boardT.DoWork(new Hour(710));
            Assert.AreEqual(0, boardT.RunningOPCount);
            boardT.DoWork(new Hour(711));
            Assert.AreEqual(0, boardT.RunningOPCount);
            boardT.DoWork(new Hour(712));
            Assert.AreEqual(1, boardT.RunningOPCount);
            boardT.DoWork(new Hour(713));
            Assert.AreEqual(1, boardT.RunningOPCount);
            boardT.DoWork(new Hour(714));
            Assert.AreEqual(1, boardT.RunningOPCount);
            boardT.DoWork(new Hour(715));
            Assert.AreEqual(1, boardT.RunningOPCount);
            boardT.DoWork(new Hour(716));
            Assert.AreEqual(1, boardT.RunningOPCount);
            boardT.DoWork(new Hour(717));
            Assert.AreEqual(1, boardT.RunningOPCount);
            boardT.DoWork(new Hour(718));
            Assert.AreEqual(1, boardT.RunningOPCount);
            boardT.DoWork(new Hour(719));
            Assert.AreEqual(0, boardT.RunningOPCount);
            boardT.DoWork(new Hour(720));
            Assert.AreEqual(0, boardT.RunningOPCount);
        }
Exemple #4
0
 internal WorkReport(AppealCase ac, Work.WorkType type, Work.WorkRole role, Work.WorkState state)
 {
     Case  = ac;
     Type  = type;
     Role  = role;
     State = state;
 }
Exemple #5
0
        public void ProcessNewCaseTest()
        {
            AppealCase appealCase = new AppealCase();

            boardT.ProcessNewCase(appealCase, new Hour(0));

            Assert.AreEqual(1, boardT.CirculatedSummonsCount);
        }
Exemple #6
0
        public void DoWork_ScheduleOPTestB()
        {
            AppealCase appealCase = new AppealCase();

            boardT.ProcessNewCase(appealCase, new Hour(0));
            boardT.DoWork(new Hour(0));
            Assert.AreEqual(0, boardT.PendingOPCount);
            boardT.DoWork(new Hour(1));
            Assert.AreEqual(0, boardT.PendingOPCount);
            boardT.DoWork(new Hour(2));
            Assert.AreEqual(1, boardT.PendingOPCount);
            boardT.DoWork(new Hour(3));
            Assert.AreEqual(1, boardT.PendingOPCount);
        }
Exemple #7
0
        public void DoWork_SummonsCirculationTest()
        {
            AppealCase appealCase = new AppealCase();

            boardT.ProcessNewCase(appealCase, new Hour(0));
            Assert.AreEqual(1, boardT.CirculatedSummonsCount);

            boardT.DoWork(new Hour(0));
            Assert.AreEqual(1, boardT.CirculatedSummonsCount);
            boardT.DoWork(new Hour(1));
            Assert.AreEqual(1, boardT.CirculatedSummonsCount);
            boardT.DoWork(new Hour(2));
            Assert.AreEqual(0, boardT.CirculatedSummonsCount);
        }
Exemple #8
0
        public void DecisionCirculationTest()
        {
            Hour       hour       = new Hour(0);
            AppealCase appealCase = new AppealCase();

            boardT.ProcessNewCase(appealCase, hour);
            boardT.DoWork(hour);
            Assert.AreEqual(0, boardT.CirculatedDecisionsCount);

            hour = new Hour(1);
            boardT.DoWork(hour);
            Assert.AreEqual(0, boardT.CirculatedDecisionsCount);

            hour = new Hour(2);
            boardT.DoWork(hour);
            Assert.AreEqual(0, boardT.CirculatedDecisionsCount);


            for (int i = 711; i < 719; i++)
            {
                hour = new Hour(i);
                boardT.DoWork(hour);
                Assert.AreEqual(0, boardT.CirculatedDecisionsCount);
            }

            hour = new Hour(719);
            boardT.DoWork(hour);
            Assert.AreEqual(1, boardT.CirculatedDecisionsCount);

            hour = new Hour(720);
            boardT.DoWork(hour);
            Assert.AreEqual(1, boardT.CirculatedDecisionsCount);

            hour = new Hour(721);
            boardT.DoWork(new Hour(721));
            Assert.AreEqual(1, boardT.CirculatedDecisionsCount);

            hour = new Hour(722);
            boardT.DoWork(new Hour(722));
            Assert.AreEqual(0, boardT.CirculatedDecisionsCount);

            hour = new Hour(723);
            boardT.DoWork(new Hour(723));
            Assert.AreEqual(0, boardT.CirculatedDecisionsCount);
        }
Exemple #9
0
        public void Initialise()
        {
            parameters          = new MemberParameters(2, 1, 2);
            parameterCollection = new MemberParameterCollection(parameters, parameters, parameters);
            chair      = new Member(parameterCollection);
            rapporteur = new Member(parameterCollection);
            other      = new Member(parameterCollection);
            registrar  = new Registrar(new SimpleOPScheduler());
            board      = Board.MakeTechnicalBoard(
                chair,
                new List <Member> {
                rapporteur
            },
                new List <Member> {
                other
            },
                registrar,
                new ChairChooser(chair));

            appealCase    = new AppealCase();
            allocatedCase = board.ProcessNewCase(appealCase, new Hour(0));
        }
        public void Initialise()
        {
            schedule0 = new SimpleOPScheduler();
            schedule1 = new SimpleOPScheduler(1);

            chair      = new Member(MemberParameterCollection.DefaultCollection());
            rapporteur = new Member(MemberParameterCollection.DefaultCollection());
            other      = new Member(MemberParameterCollection.DefaultCollection());
            registar   = new Registrar(new SimpleOPScheduler());
            board      = Board.MakeTechnicalBoard(
                chair,
                new List <Member> {
                rapporteur
            },
                new List <Member> {
                other
            },
                registar,
                new ChairChooser(chair));

            appealCase    = new AppealCase();
            allocatedCase = board.ProcessNewCase(appealCase, new Hour(0));
        }
Exemple #11
0
        public void CaseLogTest()
        {
            AppealCase appealCase = new AppealCase();
            Hour       hour       = new Hour(0);

            boardT.ProcessNewCase(appealCase, hour);
            //Assert.AreEqual(hour, appealCase.Log.Allocated);

            boardT.DoWork(hour);
            Assert.AreEqual(hour, appealCase.Log.SummonsEnqueuedRapporteur);
            Assert.AreEqual(hour, appealCase.Log.SummonsStartedRapporteur);
            Assert.AreEqual(hour, appealCase.Log.SummonsFinishedRapporteur);
            Assert.AreEqual(hour, appealCase.Log.SummonsEnqueuedSecondMember);

            hour = new Hour(1);
            boardT.DoWork(hour);
            Assert.AreEqual(hour, appealCase.Log.SummonsStartedSecondMember);
            Assert.AreEqual(hour, appealCase.Log.SummonsFinishedSecondMember);
            Assert.AreEqual(hour, appealCase.Log.SummonsEnqueuedChair);

            hour = new Hour(2);
            boardT.DoWork(hour);
            Assert.AreEqual(hour, appealCase.Log.SummonsStartedChair);
            Assert.AreEqual(hour, appealCase.Log.SummonsFinishedChair);
            Assert.AreEqual(hour, appealCase.Log.OPEnqueuedChair);

            hour = new Hour(711);
            boardT.DoWork(hour);
            Assert.AreEqual(hour, appealCase.Log.OPStartedChair);
            Assert.AreEqual(hour, appealCase.Log.OPStartedRapporteur);
            Assert.AreEqual(hour, appealCase.Log.OPStartedSecondMember);

            for (int i = 712; i < 719; i++)
            {
                hour = new Hour(i);
                boardT.DoWork(hour);
            }

            hour = new Hour(719);
            boardT.DoWork(hour);
            Assert.AreEqual(hour, appealCase.Log.OPFinishedChair);
            Assert.AreEqual(hour, appealCase.Log.OPFinishedRapporteur);
            Assert.AreEqual(hour, appealCase.Log.OPFinishedSecondMember);
            Assert.AreEqual(hour, appealCase.Log.DecisionEnqueuedRapporteur);


            hour = new Hour(720);
            boardT.DoWork(hour);
            Assert.AreEqual(hour, appealCase.Log.DecisionStartedRapporteur);
            Assert.AreEqual(hour, appealCase.Log.DecisionFinishedRapporteur);
            Assert.AreEqual(hour, appealCase.Log.DecisionEnqueuedSecondMember);

            hour = new Hour(721);
            boardT.DoWork(hour);
            Assert.AreEqual(hour, appealCase.Log.DecisionStartedSecondMember);
            Assert.AreEqual(hour, appealCase.Log.DecisionFinishedSecondMember);
            Assert.AreEqual(hour, appealCase.Log.DecisionEnqueuedChair);

            hour = new Hour(722);
            boardT.DoWork(hour);
            Assert.AreEqual(hour, appealCase.Log.DecisionStartedChair);
            Assert.AreEqual(hour, appealCase.Log.DecisionFinishedChair);
            Assert.AreEqual(hour, appealCase.Log.Finished);
        }
Exemple #12
0
 public OPWorkReport(AppealCase ac)
     : base(ac, Work.WorkType.OP, Work.WorkRole.None, Work.WorkState.None)
 {
 }
Exemple #13
0
 internal CompletedCaseReport(AppealCase ac, CaseBoard cb, CaseLog log)
 {
     AppealCase = ac;
     CaseBoard  = cb;
     Log        = log;
 }
Exemple #14
0
 internal static WorkReport MakeReport(AppealCase ac, CaseStage stage, WorkerRole role, WorkState state)
 {
     return(new WorkReport(ac, stage, role, state));
 }
Exemple #15
0
 internal static WorkReport MakeOPReport(AppealCase ac, WorkerRole role)
 {
     return(new WorkReport(ac, CaseStage.OP, role, WorkState.None));
 }