public void AndThereIsAMatchTheCorrectResultIsReturned()
        {
            var testA = new Yay();
            var testB = new Yay();
            var testC = new Yay();

            var testD = testA;

            new Match<Yay, string>(testA)
                .When(testB, () => FirstResult)
                .When(testC, () => SecondResult)
                .When(testD, () => ThirdResult)
                .Default(null)
                .Should()
                .Be(ThirdResult);
        }
        public void AndAChildClassIsMatchedTheCorrectResultIsReturned()
        {
            var testABaby = new BabyYay();
            var testBBaby = new BabyYay();
            var testCBaby = new BabyYay();

            var testA = new Yay(testABaby);
            var testB = new Yay(testBBaby);
            var testC = new Yay(testCBaby);

            var testD = testA;

            new Match<BabyYay, string>(testA.Baby)
                .When(testB.Baby, () => FirstResult)
                .When(testC.Baby, () => SecondResult)
                .When(testD.Baby, () => ThirdResult)
                .Default(null)
                .Should()
                .Be(ThirdResult);
        }