예제 #1
0
        public void StatevHornsby()
        {
            var testCrime = new Felony
            {
                ActusReus = new ActusReus
                {
                    IsAction    = lp => lp is Hornsby,
                    IsVoluntary = lp => lp is Hornsby,
                },
                MensRea = new GeneralIntent
                {
                    IsKnowledgeOfWrongdoing = lp => lp is Hornsby,
                    IsIntentOnWrongdoing    = lp => lp is Hornsby,
                }
            };

            var testResult = testCrime.IsValid(new Hornsby());

            Assert.IsTrue(testResult);

            var testSubject = new MNaghten
            {
                IsMentalDefect = lp => lp is Hornsby,
            };

            testResult = testSubject.IsValid(new Hornsby());
            Console.WriteLine(testSubject.ToString());
            Assert.IsFalse(testResult);
        }
예제 #2
0
        public void ExampleMNaghtenFake()
        {
            var testCrime = new Felony
            {
                ActusReus = new ActusReus
                {
                    IsVoluntary = lp => lp is SusanEg,
                    IsAction    = lp => lp is SusanEg
                },
                MensRea = new MaliceAforethought
                {
                    IsIntentOnWrongdoing = lp => lp is SusanEg
                }
            };

            var testResult = testCrime.IsValid(new SusanEg());

            Assert.IsTrue(testResult);

            var testSubject = new MNaghten
            {
                IsMentalDefect = lp => true,
                //by attempting to coverup action, insanity fails
                IsWrongnessOfAware = lp => true
            };

            testResult = testSubject.IsValid(new SusanEg());
            Console.WriteLine(testSubject.ToString());
            Assert.IsFalse(testResult);
        }
예제 #3
0
        public void ExampleMNaghtenReal()
        {
            var testCrime = new Felony
            {
                ActusReus = new ActusReus
                {
                    IsVoluntary = lp => lp is AndreaEg,
                    IsAction    = lp => lp is AndreaEg
                },
                MensRea = new MaliceAforethought
                {
                    IsIntentOnWrongdoing = lp => lp is AndreaEg
                }
            };

            var testResult = testCrime.IsValid(new AndreaEg());

            Assert.IsTrue(testResult);

            var testSubject = new MNaghten
            {
                IsMentalDefect         = lp => true,
                IsNatureQualityOfAware = lp => false,
                IsWrongnessOfAware     = lp => false
            };

            testResult = testSubject.IsValid(new AndreaEg());
            Console.WriteLine(testSubject.ToString());
            Assert.IsTrue(testResult);
        }
예제 #4
0
        public void StatevGuido()
        {
            var testCrime = new Felony
            {
                ActusReus = new ActusReus
                {
                    IsVoluntary = lp => lp is Guido,
                    IsAction    = lp => lp is Guido,
                },
                MensRea = new MaliceAforethought
                {
                    IsKnowledgeOfWrongdoing = lp => lp is Guido,
                }
            };

            var testResult = testCrime.IsValid(new Guido());

            Assert.IsTrue(testResult);

            var testSubject = new MNaghten
            {
                IsMentalDefect     = lp => lp is Guido,
                IsWrongnessOfAware = lp => !(lp is Guido),
            };

            testResult = testSubject.IsValid(new Guido());
            Console.WriteLine(testSubject.ToString());
            Assert.IsTrue(testResult);
        }