public void StatevDaoud() { var testCrime = new Misdemeanor { ActusReus = new ActusReus { IsVoluntary = lp => lp is Daoud, IsAction = lp => lp is Daoud }, MensRea = StrictLiability.Value }; var testResult = testCrime.IsValid(new Daoud()); Assert.IsTrue(testResult); var testSubject = new ChoiceThereof <ITermCategory>(ExtensionMethods.Defendant) { GetChoice = lp => lp is Daoud ? new NondeadlyForce() : null, GetOtherPossibleChoices = lp => new List <ITermCategory>() { new CallForTaxi(), new WalkedToNeighbor() }, }; testResult = testSubject.IsValid(new Daoud(), new JohnHilane()); Console.WriteLine(testSubject.ToString()); Assert.IsFalse(testResult); }
public NecessityDefense() : base(ExtensionMethods.Defendant) { Proportionality = new ChoiceThereof <T>(ExtensionMethods.Defendant); Imminence = new Imminence(ExtensionMethods.Defendant); }
public NecessityDefense(Func <ILegalPerson[], ILegalPerson> getSubjectPerson) : base(getSubjectPerson) { Proportionality = new ChoiceThereof <T>(getSubjectPerson); Imminence = new Imminence(getSubjectPerson); }