public ProducerRegistrationNumberValidityTests()
        {
            producerQuerySet = A.Fake<IProducerQuerySet>();
            migratedProducerQuerySet = A.Fake<IMigratedProducerQuerySet>();

            // By default, no prns returned by query set
            A.CallTo(() => migratedProducerQuerySet.GetAllRegistrationNumbers())
                .Returns(new List<string>());

            // By default, no prns returned by query set
            A.CallTo(() => producerQuerySet.GetAllRegistrationNumbers())
                .Returns(new List<string>());
        }
コード例 #2
0
        public ProducerRegistrationNumberValidityTests()
        {
            producerQuerySet         = A.Fake <IProducerQuerySet>();
            migratedProducerQuerySet = A.Fake <IMigratedProducerQuerySet>();

            // By default, no prns returned by query set
            A.CallTo(() => migratedProducerQuerySet.GetAllRegistrationNumbers())
            .Returns(new List <string>());

            // By default, no prns returned by query set
            A.CallTo(() => producerQuerySet.GetAllRegistrationNumbers())
            .Returns(new List <string>());
        }
コード例 #3
0
        public void ProducerHasPrnNumberThatDoesExist_ValidationSucceeds()
        {
            const string prn = "ABC12345";

            A.CallTo(() => producerQuerySet.GetAllRegistrationNumbers())
            .Returns(new List <string> {
                prn
            });

            var producer = new producerType()
            {
                registrationNo = prn,
                status         = statusType.A
            };

            var result = Rule().Evaluate(producer);

            Assert.True(result.IsValid);
        }
コード例 #4
0
        public RuleResult Evaluate(producerType producer)
        {
            if (producer.status == statusType.A && !string.IsNullOrEmpty(producer.registrationNo))
            {
                var validRegistrationNumbers = producerQuerySet.GetAllRegistrationNumbers()
                                               .Union(migratedProducerQuerySet.GetAllRegistrationNumbers())
                                               .Select(prn => prn.ToLowerInvariant());

                if (!validRegistrationNumbers.Contains(producer.registrationNo.ToLowerInvariant()))
                {
                    return
                        (RuleResult.Fail(
                             string.Format(
                                 "We cannot recognise the producer registration number (PRN) you have entered for {0} {1}. Enter the correct PRN for this producer.",
                                 producer.GetProducerName(), producer.registrationNo)));
                }
            }

            return(RuleResult.Pass());
        }