public void ShouldHandleNestedNamespaces()
        {
            List<Type> typesInZoo = GetTypesIn(AssemblyDll);
            var liskovSubstitutionPrinciple = new LiskovSubstitutionPrinciple() { EnglishGrammar = new EnglishGrammar()};

            var birdClass = typesInZoo.Find(t => t.Name.Equals("Bird"));
            string validationPhrase = liskovSubstitutionPrinciple.Validate(birdClass);
            Assert.AreEqual("It looks like a Bird and behaves like an Aves.", validationPhrase);
        }
Example #2
0
        public static void PrincipleDemo()
        {
            var lsp = new LiskovSubstitutionPrinciple();

            lsp.OverloadDemo();

            var ocp = new OpenClosedPrinciple();

            ocp.MockSell();
            ocp.MockOffSell();
        }
        public void ShouldReturnMeaninglessLiskovMessageIfNoBaseTypeOrTypeIsObject()
        {
            List<Type> typesInZoo = GetTypesIn(AssemblyDll);
            var liskovSubstitutionPrinciple = new LiskovSubstitutionPrinciple() {EnglishGrammar = new EnglishGrammar()};

            var duckType = typesInZoo.Find(t => t.Name.Equals("Object"));
            string validationPhrase = liskovSubstitutionPrinciple.Validate(duckType);

            var animal = typesInZoo.Find(t => t.Name.Equals("Animal"));
            validationPhrase = liskovSubstitutionPrinciple.Validate(animal);
            Assert.IsTrue(validationPhrase.Contains("It's pointless to check for Liskov here."));
        }
        public void ShouldHandleNestedNamespaces()
        {
            List <Type> typesInZoo = GetTypesIn(AssemblyDll);
            var         liskovSubstitutionPrinciple = new LiskovSubstitutionPrinciple()
            {
                EnglishGrammar = new EnglishGrammar()
            };

            var    birdClass        = typesInZoo.Find(t => t.Name.Equals("Bird"));
            string validationPhrase = liskovSubstitutionPrinciple.Validate(birdClass);

            Assert.AreEqual("It looks like a Bird and behaves like an Aves.", validationPhrase);
        }
Example #5
0
        // Lsikov substituition Principle Example
        public static void LSP()
        {
            LiskovSubstitutionPrinciple.Rectangle rc = new LiskovSubstitutionPrinciple.Rectangle(2, 3);

            WriteLine($"{rc} has area {LiskovSubstitutionPrinciple.Area(rc)}");

            LiskovSubstitutionPrinciple.Square sq = new LiskovSubstitutionPrinciple.Square();
            sq.Width = 4;
            WriteLine($"{sq} has area {LiskovSubstitutionPrinciple.Area(sq)}");

            //Cause error if setters aren't override
            LiskovSubstitutionPrinciple.Rectangle sq2 = new LiskovSubstitutionPrinciple.Square();
            sq.Width = 4;
            WriteLine($"{sq2} has area {LiskovSubstitutionPrinciple.Area(sq2)}");
        }
        public void ShouldReturnMeaninglessLiskovMessageIfNoBaseTypeOrTypeIsObject()
        {
            List <Type> typesInZoo = GetTypesIn(AssemblyDll);
            var         liskovSubstitutionPrinciple = new LiskovSubstitutionPrinciple()
            {
                EnglishGrammar = new EnglishGrammar()
            };

            var    duckType         = typesInZoo.Find(t => t.Name.Equals("Object"));
            string validationPhrase = liskovSubstitutionPrinciple.Validate(duckType);

            var animal = typesInZoo.Find(t => t.Name.Equals("Animal"));

            validationPhrase = liskovSubstitutionPrinciple.Validate(animal);
            Assert.IsTrue(validationPhrase.Contains("It's pointless to check for Liskov here."));
        }
        public void ShouldGetLiskovValidationPhraseFromType()
        {
            List<Type> typesInZoo = GetTypesIn(AssemblyDll);
            var liskovSubstitutionPrinciple = new LiskovSubstitutionPrinciple() {EnglishGrammar = new EnglishGrammar()};

            var duckType = typesInZoo.Find(t => t.Name.Equals("Duck"));
            string validationPhrase = liskovSubstitutionPrinciple.Validate(duckType);
            Assert.AreEqual("It looks like a Duck and behaves like an Animal.", validationPhrase);

            var merganserType = typesInZoo.Find(t => t.Name.Equals("MerganserDuck"));
            validationPhrase = liskovSubstitutionPrinciple.Validate(merganserType);
            Assert.AreEqual("It looks like a MerganserDuck and behaves like a TransistorRadio.", validationPhrase);

            var automobile = typesInZoo.Find(t => t.Name.Equals("Automobile"));
            validationPhrase = liskovSubstitutionPrinciple.Validate(automobile);
            Assert.AreEqual("It looks like an Automobile and behaves like an Animal.", validationPhrase);
        }
        public void ShouldGetLiskovValidationPhraseFromType()
        {
            List <Type> typesInZoo = GetTypesIn(AssemblyDll);
            var         liskovSubstitutionPrinciple = new LiskovSubstitutionPrinciple()
            {
                EnglishGrammar = new EnglishGrammar()
            };

            var    duckType         = typesInZoo.Find(t => t.Name.Equals("Duck"));
            string validationPhrase = liskovSubstitutionPrinciple.Validate(duckType);

            Assert.AreEqual("It looks like a Duck and behaves like an Animal.", validationPhrase);

            var merganserType = typesInZoo.Find(t => t.Name.Equals("MerganserDuck"));

            validationPhrase = liskovSubstitutionPrinciple.Validate(merganserType);
            Assert.AreEqual("It looks like a MerganserDuck and behaves like a TransistorRadio.", validationPhrase);

            var automobile = typesInZoo.Find(t => t.Name.Equals("Automobile"));

            validationPhrase = liskovSubstitutionPrinciple.Validate(automobile);
            Assert.AreEqual("It looks like an Automobile and behaves like an Animal.", validationPhrase);
        }