public void CommonwealthvAlexander() { var testCrime = new Infraction { MensRea = new GeneralIntent { IsIntentOnWrongdoing = lp => lp is Alexander, IsKnowledgeOfWrongdoing = lp => lp is MichaelTEustler }, ActusReus = new ActusReus { IsVoluntary = lp => lp is Alexander, IsAction = lp => lp is Alexander } }; var testResult = testCrime.IsValid(new Alexander()); Assert.IsTrue(testResult); var testSubject = new DefenseOfProperty { Imminence = new Imminence(ExtensionMethods.Defendant) { GetResponseTime = lp => Imminence.NormalReactionTimeToDanger }, Provocation = new Provocation(ExtensionMethods.Defendant) { IsInitiatorOfAttack = lp => lp is MichaelTEustler, }, Proportionality = new Proportionality <ITermCategory>(ExtensionMethods.Defendant) { GetChoice = lp => { if (lp is MichaelTEustler) { return(new NondeadlyForce()); } if (lp is Alexander) { return(new DeadlyForce()); } return(null); } } }; testResult = testSubject.IsValid(new Alexander(), new MichaelTEustler()); Console.WriteLine(testSubject.ToString()); Assert.IsFalse(testResult); }
public void ExampleDefenseOfProperty() { var testCrime = new Misdemeanor { ActusReus = new ActusReus { IsAction = lp => lp is KelseyEg, IsVoluntary = lp => lp is KelseyEg }, MensRea = new GeneralIntent { IsKnowledgeOfWrongdoing = lp => lp is KelseyEg, IsIntentOnWrongdoing = lp => lp is KelseyEg } }; var testResult = testCrime.IsValid(new KelseyEg()); Assert.IsTrue(testResult); var testSubject = new DefenseOfProperty { IsBeliefProtectProperty = lp => lp is KelseyEg, Imminence = new Imminence(ExtensionMethods.Defendant) { GetResponseTime = lp => Imminence.NormalReactionTimeToDanger }, Provocation = new Provocation(ExtensionMethods.Defendant) { IsInitiatorOfAttack = lp => lp is KeithEg }, Proportionality = new Proportionality <ITermCategory>(ExtensionMethods.Defendant) { GetChoice = lp => new NondeadlyForce() } }; testResult = testSubject.IsValid(new KelseyEg(), new KeithEg()); Console.WriteLine(testSubject.ToString()); Assert.IsTrue(testResult); }
public void BirdvHolbrook() { var test = new DefenseOfProperty(ExtensionMethods.Tortfeasor) { Proportionality = new Proportionality <ITermCategory>(ExtensionMethods.Tortfeasor) { GetChoice = lp => { if (lp is Holbrook) { return(new DeadlyForce()); } return(new NondeadlyForce()); } } }; var testResult = test.IsValid(new Holbrook(), new Bird()); Console.WriteLine(test.ToString()); Assert.IsFalse(testResult); }
public void KatkovBriney() { var test = new DefenseOfProperty(ExtensionMethods.Tortfeasor) { Proportionality = new Proportionality <ITermCategory>(ExtensionMethods.Tortfeasor) { GetChoice = lp => { if (lp is Briney) { return(new SeriousBodilyInjury()); } return(new NondeadlyForce()); } } }; var testResult = test.IsValid(new Briney(), new Katko()); Console.WriteLine(test.ToString()); Assert.IsFalse(testResult); }