diff --git a/pom.xml b/pom.xml index 93036ba..90c23e3 100644 --- a/pom.xml +++ b/pom.xml @@ -7,6 +7,14 @@ io.zipcoder polymorphism 1.0-SNAPSHOT + + + junit + junit + 4.12 + test + + \ No newline at end of file diff --git a/src/main/java/io/zipcoder/pets/Bear.java b/src/main/java/io/zipcoder/pets/Bear.java new file mode 100644 index 0000000..4fdc14e --- /dev/null +++ b/src/main/java/io/zipcoder/pets/Bear.java @@ -0,0 +1,12 @@ +package io.zipcoder.pets; + +public class Bear extends Pet { + public Bear(String name) { + super(name); + } + + @Override + public String speak() { + return "*chews Human*"; + } +} \ No newline at end of file diff --git a/src/main/java/io/zipcoder/pets/Cat.java b/src/main/java/io/zipcoder/pets/Cat.java new file mode 100644 index 0000000..cfc3c80 --- /dev/null +++ b/src/main/java/io/zipcoder/pets/Cat.java @@ -0,0 +1,13 @@ +package io.zipcoder.pets; + +public class Cat extends Pet { + + public Cat(String name){ + super(name); + } + + @Override + public String speak() { + return "Meow!"; + } +} diff --git a/src/main/java/io/zipcoder/pets/Dog.java b/src/main/java/io/zipcoder/pets/Dog.java new file mode 100644 index 0000000..a1fe6bc --- /dev/null +++ b/src/main/java/io/zipcoder/pets/Dog.java @@ -0,0 +1,12 @@ +package io.zipcoder.pets; + +public class Dog extends Pet { + public Dog(String name) { + super(name); + } + + @Override + public String speak() { + return "Woof!"; + } +} diff --git a/src/main/java/io/zipcoder/pets/Pet.java b/src/main/java/io/zipcoder/pets/Pet.java new file mode 100644 index 0000000..542333e --- /dev/null +++ b/src/main/java/io/zipcoder/pets/Pet.java @@ -0,0 +1,29 @@ +package io.zipcoder.pets; + +public class Pet { + + + private String name; + private String type; + + public Pet(String name, String type) { + this.name = name; + this.type = type; + } + public Pet(String name){ + this.name=name; + } + + + public String speak() { + return ""; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} \ No newline at end of file diff --git a/src/main/java/io/zipcoder/polymorphism/MainApplication.java b/src/main/java/io/zipcoder/polymorphism/MainApplication.java index ea9281e..374154e 100644 --- a/src/main/java/io/zipcoder/polymorphism/MainApplication.java +++ b/src/main/java/io/zipcoder/polymorphism/MainApplication.java @@ -1,7 +1,67 @@ package io.zipcoder.polymorphism; +import io.zipcoder.pets.Bear; +import io.zipcoder.pets.Cat; +import io.zipcoder.pets.Dog; +import io.zipcoder.pets.Pet; + +import java.util.ArrayList; +import java.util.Scanner; + /** * Created by leon on 11/6/17. */ public class MainApplication { + private static Scanner input = new Scanner(System.in); + + public static void main(String[] args) { + System.out.println("How many pets do you have?"); + Integer numberOfPets = input.nextInt(); + ArrayList petList = new ArrayList(); + for (int i = 1; i <= numberOfPets; i++) { + String petType = getTypeOfPet().toLowerCase(); + String petName = getPetName(); + if (petType.equals("dog")) { + Dog dog = new Dog(petName); + petList.add(dog); + } + if (petType.equals("cat")) { + Cat cat = new Cat(petName); + petList.add(cat); + } + if (petType.equals("bear")) { + Bear bear = new Bear(petName); + petList.add(bear); + } + if (petType.equals("pet")){ + Pet pet = new Pet(petName); + petList.add(pet); + } + } + for (int i = 1; i <= petList.size(); i++) + System.out.println(petList.get(i-1).getName()+" || "+ petList.get(i-1).speak()); + } + + + + public static String getTypeOfPet(){ + System.out.println("What kind of pet?"); + String petType = input.next(); + return petType; + } + + public static String getPetName() { + System.out.println("What is the name of your pet?"); + String petName = input.next(); + return petName; + } } + + + + + + + + + diff --git a/src/test/java/io/zipcoder/polymorphism/BearTest.java b/src/test/java/io/zipcoder/polymorphism/BearTest.java new file mode 100644 index 0000000..1a97f62 --- /dev/null +++ b/src/test/java/io/zipcoder/polymorphism/BearTest.java @@ -0,0 +1,38 @@ +package io.zipcoder.polymorphism; + +import io.zipcoder.pets.Bear; +import io.zipcoder.pets.Pet; +import org.junit.Assert; +import org.junit.Test; + +public class BearTest { + @Test + public void bearInstanceOfTest(){ + Bear bear= new Bear("Ay"); + Assert.assertTrue(bear instanceof Pet); + } + @Test + public void bearGetNameTest(){ + Bear bear= new Bear("Ay"); + String actual = bear.getName(); + + Assert.assertEquals("Ay",actual); + } + + @Test + public void bearSetNameTest(){ + Bear bear= new Bear("Ay"); + bear.setName("Bee"); + String actual = bear.getName(); + + Assert.assertEquals("Bee",actual); + } + @Test + public void bearSpeakTest(){ + Bear bear= new Bear("Ay"); + String actual = bear.speak(); + Assert.assertEquals("*chews Human*",actual); + } +} + + diff --git a/src/test/java/io/zipcoder/polymorphism/CatTest.java b/src/test/java/io/zipcoder/polymorphism/CatTest.java new file mode 100644 index 0000000..c56447e --- /dev/null +++ b/src/test/java/io/zipcoder/polymorphism/CatTest.java @@ -0,0 +1,38 @@ +package io.zipcoder.polymorphism; + +import io.zipcoder.pets.Cat; +import io.zipcoder.pets.Pet; +import org.junit.Assert; +import org.junit.Test; + +public class CatTest { + @Test + public void catInstanceOfTest(){ + Cat cat= new Cat("Ay"); + Assert.assertTrue(cat instanceof Pet); + } + @Test + public void catGetNameTest(){ + Cat cat= new Cat("Ay"); + String actual = cat.getName(); + + Assert.assertEquals("Ay",actual); + } + + @Test + public void catSetNameTest(){ + Cat cat= new Cat("Ay"); + cat.setName("Bee"); + String actual = cat.getName(); + + Assert.assertEquals("Bee",actual); + } + @Test + public void catSpeakTest(){ + Cat cat= new Cat("Ay"); + String actual = cat.speak(); + Assert.assertEquals("Meow!",actual); + } +} + + diff --git a/src/test/java/io/zipcoder/polymorphism/DogTest.java b/src/test/java/io/zipcoder/polymorphism/DogTest.java new file mode 100644 index 0000000..2004ce2 --- /dev/null +++ b/src/test/java/io/zipcoder/polymorphism/DogTest.java @@ -0,0 +1,36 @@ +package io.zipcoder.polymorphism; + +import io.zipcoder.pets.Dog; +import io.zipcoder.pets.Pet; +import org.junit.Assert; +import org.junit.Test; + +public class DogTest { + @Test + public void dogInstanceOfTest(){ + Dog dog= new Dog("Ay"); + Assert.assertTrue(dog instanceof Pet); + } + @Test + public void dogGetNameTest(){ + Dog dog= new Dog("Ay"); + String actual = dog.getName(); + + Assert.assertEquals("Ay",actual); + } + + @Test + public void dogSetNameTest(){ + Dog dog= new Dog("Ay"); + dog.setName("Bee"); + String actual = dog.getName(); + + Assert.assertEquals("Bee",actual); + } + @Test + public void dogSpeakTest(){ + Dog dog= new Dog("Ay"); + String actual = dog.speak(); + Assert.assertEquals("Woof!",actual); + } +}