예제 #1
0
        public async void TestSelfDeclarationRule(SelfDeclarationFlag declaration, bool expected)
        {
            Enrollee enrollee = new EnrolleeFactory().Generate();

            UpdateSelfDeclaration(enrollee, declaration);
            var rule = new SelfDeclarationRule();

            Assert.Equal(expected, await rule.ProcessRule(enrollee));
            if (expected)
            {
                AssertReasons(enrollee.CurrentStatus.EnrolmentStatusReasons);
            }
            else
            {
                AssertReasons(enrollee.CurrentStatus.EnrolmentStatusReasons, StatusReasonType.SelfDeclaration);
            }
        }
예제 #2
0
        private void UpdateSelfDeclaration(Enrollee enrollee, SelfDeclarationFlag declarations)
        {
            var updated = new List <SelfDeclaration>();

            if (declarations.HasFlag(SelfDeclarationFlag.CONVICTION))
            {
                updated.Add(GenerateSelfDeclaration(enrollee, 1));
            }
            if (declarations.HasFlag(SelfDeclarationFlag.DISCIPLINARY))
            {
                updated.Add(GenerateSelfDeclaration(enrollee, 3));
            }
            if (declarations.HasFlag(SelfDeclarationFlag.PHARMANET_SUSPENDED))
            {
                updated.Add(GenerateSelfDeclaration(enrollee, 2));
            }
            if (declarations.HasFlag(SelfDeclarationFlag.REGISTRATION_SUSPENDED))
            {
                updated.Add(GenerateSelfDeclaration(enrollee, 4));
            }
            enrollee.SelfDeclarations = updated;
        }