public void MitchillvLath() { var testContract = new ComLawContract <Promise> { Offer = new OfferPurchaseFarmRemIceHouse(), Acceptance = o => o is OfferPurchaseFarmRemIceHouse ? new AcceptancePurchaseFarmRemIceHouse() : null, Assent = new MutualAssent { IsApprovalExpressed = lp => true, TermsOfAgreement = lp => { switch (lp) { case Mitchill _: return(((Mitchill)lp).GetTerms()); case Lath _: return(((Lath)lp).GetTerms()); default: return(null); } } } }; testContract.Consideration = new Consideration <Promise>(testContract) { IsGivenByOfferee = (lp, p) => true, IsSoughtByOfferor = (lp, p) => true }; var contractTerms = testContract.Assent as IAssentTerms; Assert.IsNotNull(contractTerms); var additonalTerms = contractTerms.GetAdditionalTerms(new Mitchill(), new Lath()); Assert.IsNotNull(additonalTerms); Assert.AreEqual(1, additonalTerms.Count); Assert.AreEqual("remove ice house", additonalTerms.First().Name); var testSubject = new ParolEvidenceRule <Promise>(testContract) { IsCollateralInForm = t => t.Name == "remove ice house", IsNotContradictWritten = t => t.Name == "remove ice house", //the court finds "remove ice house" is closely related and should have been // present in the contract IsNotExpectedWritten = t => false }; var testResult = testSubject.IsValid(new Mitchill(), new Lath()); Console.WriteLine(testSubject.ToString()); Assert.IsFalse(testResult); }
public void NelsonvElway() { var testContract = new ComLawContract <Promise> { Offer = new OfferSellMetroCarDealership(), Acceptance = o => o is OfferSellMetroCarDealership ? new AcceptanceSellMetroCarDealership() : null, Assent = new MutualAssent { IsApprovalExpressed = lp => true, TermsOfAgreement = lp => { switch (lp) { case Nelson _: return(((Nelson)lp).GetTerms()); case Elway _: return(((Elway)lp).GetTerms()); default: return(null); } } } }; testContract.Consideration = new Consideration <Promise>(testContract) { IsGivenByOfferee = (lp, p) => true, IsSoughtByOfferor = (lp, p) => true }; var testSubject = new ParolEvidenceRule <Promise>(testContract) { IsCollateralInForm = t => true, IsNotContradictWritten = t => true, IsNotExpectedWritten = t => true, }; var testResult = testSubject.IsValid(new Nelson(), new Elway()); Console.WriteLine(testSubject.ToString()); //is still false since the terms include the Expressly Conditional term Assert.IsFalse(testResult); }
public void MastersonvSine() { var testContract = new ComLawContract <Promise> { Offer = new OfferSellRanch(), Acceptance = o => o is OfferSellRanch ? new AcceptanceSellRanch() : null, Assent = new MutualAssent { IsApprovalExpressed = lp => true, TermsOfAgreement = lp => { switch (lp) { case Masterson _: return(((Masterson)lp).GetTerms()); case Sine _: return(((Sine)lp).GetTerms()); default: return(null); } } } }; testContract.Consideration = new Consideration <Promise>(testContract) { IsGivenByOfferee = (lp, p) => true, IsSoughtByOfferor = (lp, p) => true }; var testSubject = new ParolEvidenceRule <Promise>(testContract) { IsCollateralInForm = t => t.Name == "repurchase option", IsNotContradictWritten = t => t.Name == "repurchase option", IsNotExpectedWritten = t => t.Name == "repurchase option", }; var testResult = testSubject.IsValid(new Masterson(), new Sine()); Console.WriteLine(testSubject.ToString()); Assert.IsTrue(testResult); }