diff --git a/src/main/java/io/zipcoder/polymorphism/Animal.java b/src/main/java/io/zipcoder/polymorphism/Animal.java new file mode 100644 index 0000000..4173054 --- /dev/null +++ b/src/main/java/io/zipcoder/polymorphism/Animal.java @@ -0,0 +1,7 @@ +package io.zipcoder.polymorphism; + +public interface Animal { + + String speak(); + +} diff --git a/src/main/java/io/zipcoder/polymorphism/Bear.java b/src/main/java/io/zipcoder/polymorphism/Bear.java new file mode 100644 index 0000000..07c3b7f --- /dev/null +++ b/src/main/java/io/zipcoder/polymorphism/Bear.java @@ -0,0 +1,22 @@ +package io.zipcoder.polymorphism; + +public class Bear extends Pet implements Animal { + + + public Bear(String name) { + super(name); + } + + public String getName() { + return this.name; + } + + + public void setName(String name) { + this.name = name; + } + + public String speak() { + return "Roar!"; + } +} diff --git a/src/main/java/io/zipcoder/polymorphism/Cat.java b/src/main/java/io/zipcoder/polymorphism/Cat.java new file mode 100644 index 0000000..6443b69 --- /dev/null +++ b/src/main/java/io/zipcoder/polymorphism/Cat.java @@ -0,0 +1,20 @@ +package io.zipcoder.polymorphism; + +public class Cat extends Pet implements Animal { + + public Cat(String name) { + super(name); + } + + public String getName() { + return this.name; + } + + public String speak() { + return "Meow!"; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/src/main/java/io/zipcoder/polymorphism/Dog.java b/src/main/java/io/zipcoder/polymorphism/Dog.java new file mode 100644 index 0000000..b5d00f7 --- /dev/null +++ b/src/main/java/io/zipcoder/polymorphism/Dog.java @@ -0,0 +1,21 @@ +package io.zipcoder.polymorphism; + +public class Dog extends Pet implements Animal{ + + + public Dog(String name) { + super(name); + } + + public String getName() { + return this.name; + } + + public String speak() { + return "Woof!"; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/src/main/java/io/zipcoder/polymorphism/MainApplication.java b/src/main/java/io/zipcoder/polymorphism/MainApplication.java index 668c627..6a78b51 100644 --- a/src/main/java/io/zipcoder/polymorphism/MainApplication.java +++ b/src/main/java/io/zipcoder/polymorphism/MainApplication.java @@ -1,4 +1,5 @@ package io.zipcoder.polymorphism; public class MainApplication { + } diff --git a/src/main/java/io/zipcoder/polymorphism/Pet.java b/src/main/java/io/zipcoder/polymorphism/Pet.java new file mode 100644 index 0000000..bef172c --- /dev/null +++ b/src/main/java/io/zipcoder/polymorphism/Pet.java @@ -0,0 +1,9 @@ +package io.zipcoder.polymorphism; + +public abstract class Pet implements Animal{ + String name; + + public Pet(String name) { + this.name = name; + } +} diff --git a/src/test/java/io/zipcoder/polymorphism/TestBear.java b/src/test/java/io/zipcoder/polymorphism/TestBear.java new file mode 100644 index 0000000..9912edc --- /dev/null +++ b/src/test/java/io/zipcoder/polymorphism/TestBear.java @@ -0,0 +1,60 @@ +package io.zipcoder.polymorphism; + +import org.junit.Assert; +import org.junit.Test; + +public class TestBear { + @Test + public void bearConstructorTest() { + //Given + String given = "Bubbles"; + //When + Bear bear = new Bear(given); + String expected = bear.getName(); + //Then + Assert.assertEquals(given, expected); + } + + @Test + public void speakTest() { + //Given + Bear bear = new Bear("Bubbles"); + String given = "Roar!"; + //When + String expected = bear.speak(); + //Then + Assert.assertEquals(given, expected); + } + + @Test + public void setNameTest() { + //Given + Bear bear = new Bear(""); + String given = "Bubbles"; + + //When + bear.setName(given); + + //Then + String expected = bear.getName(); + Assert.assertEquals(given, expected); + } + + @Test + public void inheritanceOfPetTest() { + + Bear bear = new Bear("Bubbles"); + Assert.assertTrue(bear instanceof Pet); + + } + + @Test + public void inheritanceOfAnimalTest() { + + Bear bear = new Bear("Bubbles"); + Assert.assertTrue(bear instanceof Animal); + + } + +} + diff --git a/src/test/java/io/zipcoder/polymorphism/TestCat.java b/src/test/java/io/zipcoder/polymorphism/TestCat.java new file mode 100644 index 0000000..67aeb7a --- /dev/null +++ b/src/test/java/io/zipcoder/polymorphism/TestCat.java @@ -0,0 +1,58 @@ +package io.zipcoder.polymorphism; + +import org.junit.Assert; +import org.junit.Test; + +public class TestCat { + @Test + public void catConstructorTest(){ + //Given + String given = "Ellie"; + //When + Cat cat = new Cat(given); + String expected = cat.getName(); + //Then + Assert.assertEquals(given, expected); + } + + @Test + public void speakTest(){ + //given + Cat cat = new Cat("Ellie"); + String given = "Meow!"; + //when + String expected = cat.speak(); + //then + Assert.assertEquals(given, expected); + } + + @Test + public void setNameTest() { + //Given + Cat cat = new Cat(""); + String given = "Ellie"; + + //When + cat.setName(given); + + //Then + String expected = cat.getName(); + Assert.assertEquals(given, expected); + } + + @Test + public void inheritanceOfPetTest(){ + + Cat cat = new Cat("Ellie"); + Assert.assertTrue(cat instanceof Pet); + + } + + @Test + public void inheritanceOfAnimalTest(){ + + Cat cat = new Cat("Ellie"); + Assert.assertTrue(cat instanceof Animal); + + } + } diff --git a/src/test/java/io/zipcoder/polymorphism/TestDog.java b/src/test/java/io/zipcoder/polymorphism/TestDog.java new file mode 100644 index 0000000..35d0415 --- /dev/null +++ b/src/test/java/io/zipcoder/polymorphism/TestDog.java @@ -0,0 +1,59 @@ +package io.zipcoder.polymorphism; + +import org.junit.Assert; +import org.junit.Test; + +public class TestDog { + @Test + public void dogConstructorTest() { + //Given + String given = "Spot"; + //When + Dog dog = new Dog(given); + String expected = dog.getName(); + //Then + Assert.assertEquals(given, expected); + } + + @Test + public void speakTest() { + //Given + Dog dog = new Dog("Spot"); + String given = "Woof!"; + //When + String expected = dog.speak(); + //Then + Assert.assertEquals(given, expected); + } + + @Test + public void setNameTest() { + // Given + Dog dog = new Dog(""); + String given = "Spot"; + + // When + dog.setName(given); + + // Then + String expected = dog.getName(); + Assert.assertEquals(given, expected); + } + + @Test + public void inheritanceOfPetTest() { + + Dog dog = new Dog("Spot"); + Assert.assertTrue(dog instanceof Pet); + + } + + @Test + public void inheritanceOfAnimalTest() { + + Dog dog = new Dog("Spot"); + Assert.assertTrue(dog instanceof Animal); + + } +} +