Exemple #1
0
        public void BushvProtravelIntl()
        {
            var testContract = new ComLawContract <Promise>
            {
                Offer      = new OfferTripToEastAfrica(),
                Acceptance = o => o is OfferTripToEastAfrica ? new AcceptanctTripToEastAfrica() : null,
                Assent     = new MutualAssent
                {
                    IsApprovalExpressed = lp => true,
                    TermsOfAgreement    = lp =>
                    {
                        switch (lp)
                        {
                        case Bush _:
                            return(((Bush)lp).GetTerms());

                        case ProtravelIntl _:
                            return(((ProtravelIntl)lp).GetTerms());

                        default:
                            return(null);
                        }
                    }
                }
            };

            testContract.Consideration = new Consideration <Promise>(testContract)
            {
                IsGivenByOfferee  = (lp, p) => true,
                IsSoughtByOfferor = (lp, p) => true
            };

            var testResult = testContract.IsValid(new Bush(), new ProtravelIntl());

            Assert.IsTrue(testResult);

            var testSubject = new ImpracticabilityOfPerformance <Promise>(testContract)
            {
                //the basic assumption being that NY NY would not suffer an attack
                IsBasicAssumptionGone = lp => lp is Bush,
                IsContraryInForm      = lp => false,
                IsAtFault             = lp => false
            };

            testResult = testSubject.IsValid(new Bush(), new ProtravelIntl());
            Console.WriteLine(testSubject.ToString());
            Assert.IsTrue(testResult);
        }
        public void UsBancorpvAmeriquest()
        {
            var testContract = new ComLawContract <Promise>
            {
                Offer      = new OfferFinanceAirplanes(),
                Acceptance = o => o is OfferFinanceAirplanes ? new AcceptanctFinanceAirplanes() : null,
                Assent     = new MutualAssent
                {
                    IsApprovalExpressed = lp => true,
                    TermsOfAgreement    = lp =>
                    {
                        switch (lp)
                        {
                        case UsBancorp _:
                            return(((UsBancorp)lp).GetTerms());

                        case Ameriquest _:
                            return(((Ameriquest)lp).GetTerms());

                        default:
                            return(null);
                        }
                    }
                }
            };

            testContract.Consideration = new Consideration <Promise>(testContract)
            {
                IsGivenByOfferee  = (lp, p) => true,
                IsSoughtByOfferor = (lp, p) => true
            };

            var testResult = testContract.IsValid(new UsBancorp(), new Ameriquest());

            Assert.IsTrue(testResult);

            var testSubject = new ImpracticabilityOfPerformance <Promise>(testContract)
            {
                IsBasicAssumptionGone = lp => false,
                IsAtFault             = lp => false,
                IsContraryInForm      = lp => false
            };

            testResult = testSubject.IsValid(new UsBancorp(), new Ameriquest());
            Console.WriteLine(testSubject.ToString());
            Assert.IsFalse(testResult);
        }
        public void KarlWendtvIntlHarvester()
        {
            var testContract = new ComLawContract <Promise>
            {
                Offer      = new OfferFarmEquipDealerAgreement(),
                Acceptance = o => o is OfferFarmEquipDealerAgreement ? new AcceptanctFarmEquipDealerAgreement() : null,
                Assent     = new MutualAssent
                {
                    IsApprovalExpressed = lp => true,
                    TermsOfAgreement    = lp =>
                    {
                        switch (lp)
                        {
                        case KarlWendt _:
                            return(((KarlWendt)lp).GetTerms());

                        case IntlHarvester _:
                            return(((IntlHarvester)lp).GetTerms());

                        default:
                            return(null);
                        }
                    }
                }
            };

            testContract.Consideration = new Consideration <Promise>(testContract)
            {
                IsGivenByOfferee  = (lp, p) => true,
                IsSoughtByOfferor = (lp, p) => true
            };

            var testResult = testContract.IsValid(new KarlWendt(), new IntlHarvester());

            Assert.IsTrue(testResult);

            ExcuseBase <Promise> testSubject = new ImpracticabilityOfPerformance <Promise>(testContract)
            {
                IsAtFault        = lp => false,
                IsContraryInForm = lp => false,
                //IH argues that Farm Crisis of 1980s was sufficient to this excuse
                //the court found this false
                IsBasicAssumptionGone = lp => false,
            };

            testResult = testSubject.IsValid(new KarlWendt(), new IntlHarvester());
            Assert.IsFalse(testResult);

            testSubject = new FrustrationOfPurpose <Promise>(testContract)
            {
                IsAtFault                    = lp => false,
                IsContraryInForm             = lp => false,
                IsBasicAssumptionGone        = lp => false,
                IsFrustrationSubstantial     = lp => false,
                IsPrincipalPurposeFrustrated = lp => false
            };
            testResult = testSubject.IsValid(new KarlWendt(), new IntlHarvester());
            Assert.IsFalse(testResult);

            //test if the conditions had indeed been met
            testSubject = new FrustrationOfPurpose <Promise>(testContract)
            {
                IsAtFault                    = lp => false,
                IsContraryInForm             = lp => false,
                IsBasicAssumptionGone        = lp => lp is IntlHarvester,
                IsFrustrationSubstantial     = lp => lp is IntlHarvester,
                IsPrincipalPurposeFrustrated = lp => lp is IntlHarvester
            };
            testResult = testSubject.IsValid(new KarlWendt(), new IntlHarvester());
            Console.WriteLine(testSubject.ToString());
            Assert.IsTrue(testResult);
        }