Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 public NecessityDefense() : base(ExtensionMethods.Defendant)
 {
     Proportionality = new ChoiceThereof <T>(ExtensionMethods.Defendant);
     Imminence       = new Imminence(ExtensionMethods.Defendant);
 }
Ejemplo n.º 3
0
 public NecessityDefense(Func <ILegalPerson[], ILegalPerson> getSubjectPerson) : base(getSubjectPerson)
 {
     Proportionality = new ChoiceThereof <T>(getSubjectPerson);
     Imminence       = new Imminence(getSubjectPerson);
 }