diff --git a/pom.xml b/pom.xml index 62dbb86..9310f37 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,19 @@ io.zipcoder polymorphism-1 0.0.1-SNAPSHOT - jar + + + + org.apache.maven.plugins + maven-compiler-plugin + + 6 + 6 + + + + + jar interfaces-1 http://maven.apache.org diff --git a/src/main/java/io/zipcoder/common/Console.java b/src/main/java/io/zipcoder/common/Console.java new file mode 100644 index 0000000..6a3f4ca --- /dev/null +++ b/src/main/java/io/zipcoder/common/Console.java @@ -0,0 +1,41 @@ +package io.zipcoder.common; + +import java.util.Scanner; + +public class Console { + + public static void printWelcome(){ + System.out.println("Number Of Pets"); + } + + public static void print(String output,Object... args){ + System.out.printf(output, args); + } + + public static void println(String output,Object... args){ + print(output + "\n" + args); + } + + public static String getStringInput(String prompt){ + Scanner scanner = new Scanner(System.in); + println(prompt); + String userInput = scanner.nextLine(); + return userInput; + } + + public static Integer getIntegerInput(String prompt) { + Scanner scanner = new Scanner(System.in); + println(prompt); + Integer userInput = 0; + try { + userInput = scanner.nextInt(); + } + catch (Exception e) + { + System.out.println("Enter a valid number!"); + } + return userInput; + } + + +} 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..e7d88da --- /dev/null +++ b/src/main/java/io/zipcoder/polymorphism/Cat.java @@ -0,0 +1,20 @@ +package io.zipcoder.polymorphism; + +public class Cat extends Pet{ + public Cat(String name ,Integer age,String breed) { + super(name, breed, age); + } + + @Override + public String speak(){ + return "Meow!"; + } + + public void setName(String milo){ + name = milo; + } + + public String getName(){ + return 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..5bb8c2e --- /dev/null +++ b/src/main/java/io/zipcoder/polymorphism/Dog.java @@ -0,0 +1,19 @@ +package io.zipcoder.polymorphism; + +public class Dog extends Pet{ + public Dog (String name ,Integer age,String breed){ + super(name, breed, age); + } + @Override + public String speak(){ + return "Bark!"; + } + + public void setName(String jim){ + name = jim; + } + + public String getName(){ + return name; + } +} diff --git a/src/main/java/io/zipcoder/polymorphism/MainApplication.java b/src/main/java/io/zipcoder/polymorphism/MainApplication.java index 668c627..03e261f 100644 --- a/src/main/java/io/zipcoder/polymorphism/MainApplication.java +++ b/src/main/java/io/zipcoder/polymorphism/MainApplication.java @@ -1,4 +1,37 @@ package io.zipcoder.polymorphism; +import io.zipcoder.common.Console; + public class MainApplication { + public static void main(String[] args) { + Console.printWelcome(); + Integer numberOfPets = Console.getIntegerInput("How many pets do you have? \n"); + Pet pet = new Pet(); + + for (int i = 0; i < numberOfPets; i++) { + + Integer options = Console.getIntegerInput("What type of pet do you have?Enter a number \n" + "1.Dog \n" + + "2.Cat \n" + "3.Rabbit \n"); + String name = Console.getStringInput("what is his/her name? \n"); + + switch(options) { + case 1: + Dog dog = new Dog(name, null, null); + pet.addPet(pet); + break; + case 2: + Cat cat = new Cat(name, null, null); + pet.addPet(pet); + break; + case 3: + Rabbit rabbit = new Rabbit(name, null, null); + pet.addPet(pet); + break; + } + + } + Console.println("Information has been Entered.Thank you!"); + + } + } 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..0d56f73 --- /dev/null +++ b/src/main/java/io/zipcoder/polymorphism/Pet.java @@ -0,0 +1,60 @@ +package io.zipcoder.polymorphism; + +import java.util.ArrayList; + +public class Pet { +Integer age; +String name; +String breed; + +ArrayList pets = new ArrayList(); + +public Pet(String name,String breed,Integer age){ + this.name = name; + this.breed= breed; + this.age = age; + +} +public Pet(){} + + public Integer getAge() { + return age; + } + + public void setAge(Integer age) { + this.age = age; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getBreed() { + return breed; + } + + public void setBreed(String breed) { + this.breed = breed; + } + + public void addPet(Pet pet){ + pets.add(pet); + } + + public void removePet(Pet pet){ + pets.remove(pet); + } + + public Integer numberOfPets(){ + return pets.size(); + } + + public String speak(){ + return "I am Not Going To Speak Until You tell what Pet i am"; + } + +} diff --git a/src/main/java/io/zipcoder/polymorphism/Rabbit.java b/src/main/java/io/zipcoder/polymorphism/Rabbit.java new file mode 100644 index 0000000..4aa6ace --- /dev/null +++ b/src/main/java/io/zipcoder/polymorphism/Rabbit.java @@ -0,0 +1,19 @@ +package io.zipcoder.polymorphism; + +public class Rabbit extends Pet{ + public Rabbit(String name ,Integer age,String breed){ + super(name, breed, age); + } + @Override + public String speak(){ + return "rab rab!"; + } + + public void setName(String lucky){ + name = lucky; + } + + public String getName(){ + return name; + } +} 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..1708bd2 --- /dev/null +++ b/src/test/java/io/zipcoder/polymorphism/CatTest.java @@ -0,0 +1,38 @@ +package io.zipcoder.polymorphism; + +import org.junit.Assert; +import org.junit.Test; + +public class CatTest { + @Test + public void testSpeak(){ + Cat cat = new Cat(null,null,null); + cat.speak(); + Assert.assertEquals("Meow!",cat.speak()); + } + + @Test + public void testName(){ + Cat cat = new Cat(null ,null,null); + cat.setName("milo"); + String actual = cat.getName(); + String expected = "milo"; + Assert.assertEquals(expected,actual); + } + + @Test + public void testBreed(){ + Cat cat = new Cat("milo",5,"Tuxedo"); + String actual= cat.getBreed(); + String expected = "Tuxedo"; + Assert.assertEquals(expected,actual); + } + + @Test + public void testAge(){ + Cat cat = new Cat("milo",5,"Tuxedo"); + Integer actual = cat.getAge(); + Integer expected = 5; + Assert.assertEquals(expected,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..7e5c0a4 --- /dev/null +++ b/src/test/java/io/zipcoder/polymorphism/DogTest.java @@ -0,0 +1,38 @@ +package io.zipcoder.polymorphism; + +import org.junit.Assert; +import org.junit.Test; + +public class DogTest { + @Test + public void testSpeak(){ + Dog dog = new Dog(null,null,null); + dog.speak(); + Assert.assertEquals("Bark!",dog.speak()); + } + + @Test + public void testName(){ + Dog dog = new Dog(null,null,null); + dog.setName("jim"); + String actual = dog.getName(); + String expected = "jim"; + Assert.assertEquals(expected,actual); + } + + @Test + public void testBreed(){ + Dog dog = new Dog("jim",5,"Tuxedo"); + String actual= dog.getBreed(); + String expected = "Tuxedo"; + Assert.assertEquals(expected,actual); + } + + @Test + public void testAge(){ + Dog dog = new Dog("milo",5,"Tuxedo"); + Integer actual = dog.getAge(); + Integer expected = 5; + Assert.assertEquals(expected,actual); + } +} diff --git a/src/test/java/io/zipcoder/polymorphism/PetTest.java b/src/test/java/io/zipcoder/polymorphism/PetTest.java new file mode 100644 index 0000000..d922c3d --- /dev/null +++ b/src/test/java/io/zipcoder/polymorphism/PetTest.java @@ -0,0 +1,47 @@ +package io.zipcoder.polymorphism; + +import org.junit.Assert; +import org.junit.Test; + +public class PetTest { + @Test + public void testAddPet() { + Pet pet =new Pet(); + String expected ="milo"; + Dog dog = new Dog(expected,null,"lab"); + pet.addPet(dog); + Assert.assertEquals(expected,dog.getName()); + + } + + @Test + + public void testRemovePet() { + Pet pet =new Pet(); + Integer expected = 2; + Dog dog = new Dog(null,null,null); + Rabbit rabbit = new Rabbit("lucky",1,"Cavies"); + Cat cat = new Cat("milo",5,"fat"); + pet.addPet(dog); + pet.addPet(rabbit); + pet.addPet(cat); + pet.removePet(dog); + Assert.assertEquals(expected,pet.numberOfPets()); + } + + @Test + + public void testSpeak() { + Pet pet =new Pet(null,null,null); + pet.speak(); + Assert.assertEquals("I am Not Going To Speak Until You tell what Pet i am",pet.speak()); + } + + @Test + public void testInheritance() { + Pet pet = new Dog(null,null,null); + Assert.assertTrue(pet instanceof Pet); + } + + +} diff --git a/src/test/java/io/zipcoder/polymorphism/RabbitTest.java b/src/test/java/io/zipcoder/polymorphism/RabbitTest.java new file mode 100644 index 0000000..456aa31 --- /dev/null +++ b/src/test/java/io/zipcoder/polymorphism/RabbitTest.java @@ -0,0 +1,38 @@ +package io.zipcoder.polymorphism; + +import org.junit.Assert; +import org.junit.Test; + +public class RabbitTest { + @Test + public void testSpeak(){ + Rabbit rabbit= new Rabbit(null,null,null); + rabbit.speak(); + Assert.assertEquals("rab rab!",rabbit.speak()); + } + + @Test + public void testName(){ + Rabbit rabbit = new Rabbit("lucky" ,5,"Caves"); + rabbit.setName("lucky"); + String actual = rabbit.getName(); + String expected = "lucky"; + Assert.assertEquals(expected,actual); + } + + @Test + public void testBreed(){ + Rabbit rabbit = new Rabbit("lucky",5,"Cavies"); + String actual= rabbit.getBreed(); + String expected = "Cavies"; + Assert.assertEquals(expected,actual); + } + + @Test + public void testAge(){ + Rabbit rabbit= new Rabbit("lucky",5,"Cavies"); + Integer actual = rabbit.getAge(); + Integer expected = 5; + Assert.assertEquals(expected,actual); + } +}