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..b0f5399 --- /dev/null +++ b/src/main/java/io/zipcoder/pets/Cat.java @@ -0,0 +1,25 @@ +package io.zipcoder.pets; + +public class Cat extends Pet{ + + public Cat() { + super("Garfield"); + } + + public Cat(String name) { + super(name); + } + + public String getName(String name) { + return super.getName(); + } + + public void setName(String name) { + super.setName(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..eb80e6e --- /dev/null +++ b/src/main/java/io/zipcoder/pets/Dog.java @@ -0,0 +1,25 @@ +package io.zipcoder.pets; + +public class Dog extends Pet{ + + public Dog() { + super("Mochi"); + } + + public Dog(String name) { + super(name); + } + + public String getName(String name) { + return super.getName(); + } + + public void setName(String name) { + super.setName(name); + } + + @Override + public String speak() { + return "Woof!"; + } +} diff --git a/src/main/java/io/zipcoder/pets/Duck.java b/src/main/java/io/zipcoder/pets/Duck.java new file mode 100644 index 0000000..6c6c15d --- /dev/null +++ b/src/main/java/io/zipcoder/pets/Duck.java @@ -0,0 +1,25 @@ +package io.zipcoder.pets; + +public class Duck extends Pet { + + public Duck() { + super("Loba"); + } + + public Duck(String name) { + super(name); + } + + public String getName(String name) { + return super.getName(); + } + + public void setName(String name) { + super.setName(name); + } + + @Override + public String speak() { + return "Quack!"; + } +} 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..c4bdf23 --- /dev/null +++ b/src/main/java/io/zipcoder/pets/Pet.java @@ -0,0 +1,29 @@ +package io.zipcoder.pets; + +import com.sun.deploy.net.MessageHeader; + +public class Pet { + String name; + + public Pet() { + this.name = "Pet Name"; + } + + public Pet(String name) { + this.name = name; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String speak() { + return "Pet say word"; + } + +} + diff --git a/src/main/java/io/zipcoder/polymorphism/Console.java b/src/main/java/io/zipcoder/polymorphism/Console.java new file mode 100644 index 0000000..9d91ea7 --- /dev/null +++ b/src/main/java/io/zipcoder/polymorphism/Console.java @@ -0,0 +1,88 @@ +package io.zipcoder.polymorphism; +import io.zipcoder.pets.Cat; +import io.zipcoder.pets.Dog; +import io.zipcoder.pets.Duck; +import io.zipcoder.pets.Pet; +import java.util.ArrayList; +import java.util.List; +import java.util.Scanner; + +public class Console { + private int numberOfPets; + private List storePets = new ArrayList(); + + public void enterNumber() { + Scanner userInput = new Scanner(System.in); + System.out.println("How many pets do you have?\n Enter number: "); + numberOfPets = userInput.nextInt(); + enterType(); + } + + public void enterType(){ + Scanner userInput = new Scanner(System.in); + int petCounter = 0; + int input; + + for(int i = 0; i < numberOfPets; i++) { + System.out.println("Enter the type for pet #" + (petCounter+1)); + System.out.println("1: Cat\n2: Dog\n3: Duck"); + userInput = new Scanner(System.in); + input = userInput.nextInt(); + switch (input) { + case 1: + storePets.add(new Cat()); + break; + case 2: + storePets.add(new Dog()); + break; + case 3: + storePets.add(new Duck()); + break; + default: + System.out.println("invalid entry"); + enterType(); + break; + } + petCounter++; + } + enterName(); + } + + public void enterName() { + Scanner userInput = new Scanner(System.in); + String input; + int storePetsIndex = 0; + + for (int i = 0; i < numberOfPets; i++) { + System.out.println("Enter the name of pet #" + (storePetsIndex + 1)); + input = userInput.nextLine(); + storePets.get(storePetsIndex).setName(input); + storePetsIndex++; + } + enterSpeak(); + } + + public void enterSpeak() { + for (int i = 0; i < numberOfPets; i++) { + System.out.println(storePets.get(i).getName() + " says " + storePets.get(i).speak()); + } + } +} + +// String kindOfPet = ""; +// String nameOfPet = ""; +// +// +// +// for (int i = 0; i < numberOfPets; i++) { +// System.out.println("List the type of pet and their name"); +// System.out.println("Enter type: "); +// kindOfPet = userInput.next(); +// System.out.println("Enter name: "); +// nameOfPet = userInput.next(); +// } +// System.out.println("Kind of pets: \n" + kindOfPet); +// System.out.println("Name of pets: \n" + nameOfPet); + + + diff --git a/src/main/java/io/zipcoder/polymorphism/MainApplication.java b/src/main/java/io/zipcoder/polymorphism/MainApplication.java index 668c627..07f4e8f 100644 --- a/src/main/java/io/zipcoder/polymorphism/MainApplication.java +++ b/src/main/java/io/zipcoder/polymorphism/MainApplication.java @@ -1,4 +1,9 @@ package io.zipcoder.polymorphism; public class MainApplication { + + public static void main(String[] args) { + Console console = new Console(); + console.enterNumber(); + } } diff --git a/src/test/java/io/zipcoder/polymorphism/MainApplicationTest.java b/src/test/java/io/zipcoder/polymorphism/MainApplicationTest.java index 7daa131..2b59385 100644 --- a/src/test/java/io/zipcoder/polymorphism/MainApplicationTest.java +++ b/src/test/java/io/zipcoder/polymorphism/MainApplicationTest.java @@ -3,6 +3,9 @@ import org.junit.Test; public class MainApplicationTest { -@Test - public void testMe(){} + @Test + public void testMe() { + + } } + 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..fcb54e6 --- /dev/null +++ b/src/test/java/io/zipcoder/polymorphism/TestCat.java @@ -0,0 +1,47 @@ +package io.zipcoder.polymorphism; + +import io.zipcoder.pets.Cat; +import io.zipcoder.pets.Dog; +import org.junit.Assert; +import org.junit.Test; + +public class TestCat { + @Test + public void setNameTest() { + // Given + Cat cat = new Cat(null); + cat.setName("Gerry"); + + String expectedName = "Gerry"; + + // When + String actualName = cat.getName(); + + // Then + Assert.assertEquals(actualName, expectedName); + } + + @Test + public void getNameTest() { + // Given + String name = "Garfield"; + Cat cat = new Cat(name); + String expectedName = "Garfield"; + // When + String actualName = cat.getName(); + // Then + Assert.assertEquals(actualName, expectedName); + } + + @Test + public void dogSpeakTest() { + // Given + Cat cat = new Cat(); + String expected = "Meow!"; + // When + String actual = cat.speak(); + // Then + Assert.assertEquals(expected, actual); + } +} + 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..8d5674d --- /dev/null +++ b/src/test/java/io/zipcoder/polymorphism/TestDog.java @@ -0,0 +1,49 @@ +package io.zipcoder.polymorphism; + +import io.zipcoder.pets.Cat; +import io.zipcoder.pets.Dog; +import org.junit.Assert; +import org.junit.Test; + +public class TestDog { + + @Test + public void setNameTest() { + // Given + Dog dog = new Dog(null); + dog.setName("Mochi"); + + String expectedName = "Mochi"; + + // When + String actualName = dog.getName(); + + // Then + Assert.assertEquals(actualName, expectedName); + } + + @Test + public void getNameTest() { + // Given + String name = "Mochi"; + Dog dog = new Dog(name); + String expectedName = "Mochi"; + // When + String actualName = dog.getName(); + // Then + Assert.assertEquals(actualName, expectedName); + } + + @Test + public void dogSpeakTest() { + // Given + Dog dog = new Dog(); + String expected = "Woof!"; + // When + String actual = dog.speak(); + // Then + Assert.assertEquals(expected, actual); + + } + +} diff --git a/src/test/java/io/zipcoder/polymorphism/TestDuck.java b/src/test/java/io/zipcoder/polymorphism/TestDuck.java new file mode 100644 index 0000000..fe37026 --- /dev/null +++ b/src/test/java/io/zipcoder/polymorphism/TestDuck.java @@ -0,0 +1,48 @@ +package io.zipcoder.polymorphism; + +import io.zipcoder.pets.Cat; +import io.zipcoder.pets.Dog; +import io.zipcoder.pets.Duck; +import org.junit.Assert; +import org.junit.Test; + +public class TestDuck { + + @Test + public void setNameTest() { + // Given + Duck duck = new Duck(null); + duck.setName("Loba"); + + String expectedName = "Loba"; + + // When + String actualName = duck.getName(); + + // Then + Assert.assertEquals(actualName, expectedName); + } + + @Test + public void getNameTest() { + // Given + String name = "Macha"; + Duck duck = new Duck(name); + String expectedName = "Macha"; + // When + String actualName = duck.getName(); + // Then + Assert.assertEquals(actualName, expectedName); + } + + @Test + public void dogSpeakTest() { + // Given + Duck duck = new Duck(); + String expected = "Quack!"; + // When + String actual = duck.speak(); + // Then + Assert.assertEquals(expected, actual); + } +} \ No newline at end of file diff --git a/src/test/java/io/zipcoder/polymorphism/TestPet.java b/src/test/java/io/zipcoder/polymorphism/TestPet.java new file mode 100644 index 0000000..3d82317 --- /dev/null +++ b/src/test/java/io/zipcoder/polymorphism/TestPet.java @@ -0,0 +1,47 @@ +package io.zipcoder.polymorphism; + + +import io.zipcoder.pets.Pet; +import org.junit.Assert; +import org.junit.Test; + +public class TestPet { + + @Test + public void setNameTest() { + // Given + Pet pet = new Pet(null); + pet.setName("Peter"); + + String expectedName = "Peter"; + // When + String actualName = pet.getName(); + + // Then + Assert.assertEquals(actualName, expectedName); + } + + @Test + public void getNameTest() { + // Given + String name = "Peter"; + Pet pet = new Pet(name); + String expectedName = "Peter"; + // When + String actualName = pet.getName(); + // Then + Assert.assertEquals(actualName, expectedName); + } + + @Test + public void speakTest() { + // Given + Pet pet = new Pet(); + String expected = "Pet say word"; + // When + String actual = pet.speak(); + // Then + Assert.assertEquals(expected, actual); + + } +}