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); }
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); }