Ejemplo n.º 1
0
        public override bool IsValid(params ILegalPerson[] persons)
        {
            if (ProbableCause == null)
            {
                AddReasonEntry($"{nameof(ProbableCause)} is unassigned");
                return(false);
            }

            if (!ProbableCause.IsValid(persons))
            {
                AddReasonEntry($"{nameof(ProbableCause)} {nameof(IsValid)} is false");
                AddReasonEntryRange(ProbableCause.GetReasonEntries());
                return(false);
            }

            var magistrate = GetIssuerOfWarrant(persons);

            if (magistrate == null)
            {
                AddReasonEntry($"{nameof(GetIssuerOfWarrant)} returned nothing");
                return(false);
            }

            var magistrateTitle = magistrate.GetAllKindsOfNames();

            var isCourtOfficial = magistrate is ICourtOfficial;

            if (!isCourtOfficial)
            {
                AddReasonEntry($"{magistrateTitle} {magistrate.Name}, is not of " +
                               $"type {nameof(ICourtOfficial)}");
                return(false);
            }

            if (!IsIssuerNeutralAndDetached(magistrate))
            {
                AddReasonEntry($"{magistrateTitle} {magistrate.Name}, " +
                               $"{nameof(IsIssuerNeutralAndDetached)} is false");
                return(false);
            }

            if (!IsIssuerCapableDetermineProbableCause(magistrate))
            {
                AddReasonEntry($"{magistrateTitle} {magistrate.Name}, " +
                               $"{nameof(IsIssuerCapableDetermineProbableCause)} is false");
                return(false);
            }

            return(true);
        }
Ejemplo n.º 2
0
        public void TestProbableCauseIsValid02()
        {
            var testSubject = new ProbableCause
            {
                GetInformationSource = lps => lps.FirstOrDefault(lp => lp is IInformant),
                IsFactsConcludeToCriminalActivity = lp => lp is ExampleLawEnforcement
            };

            var testResult = testSubject.IsValid(
                new ExampleSuspect(),
                new ExampleInformant {
                IsInformationSufficientlyReliable = true, IsPersonSufficientlyCredible = false
            },
                new ExampleLawEnforcement());

            Console.WriteLine(testSubject.ToString());
            Assert.IsFalse(testResult);
        }