示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }