From cde0b6a7c5157a75c99d626bde05cb2d01d2c025 Mon Sep 17 00:00:00 2001 From: Nathan Date: Sat, 10 Jul 2021 10:46:32 -0400 Subject: [PATCH 1/4] Added Nathan Project md file --- Nathan.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 Nathan.md diff --git a/Nathan.md b/Nathan.md new file mode 100644 index 0000000..f2d0a82 --- /dev/null +++ b/Nathan.md @@ -0,0 +1 @@ +##This is Nathan's Project \ No newline at end of file From 4e2af0c349664abd00778dec85ac1a52d2f8146a Mon Sep 17 00:00:00 2001 From: jgiroso Date: Sat, 10 Jul 2021 17:20:21 -0400 Subject: [PATCH 2/4] added test classes and tests --- src/test/java/io/zipcoder/pets/CatTest.java | 54 ++++++++++++++ src/test/java/io/zipcoder/pets/DogTest.java | 56 ++++++++++++++ src/test/java/io/zipcoder/pets/HorseTest.java | 56 ++++++++++++++ .../java/io/zipcoder/pets/PetOwnerTest.java | 74 +++++++++++++++++++ 4 files changed, 240 insertions(+) create mode 100644 src/test/java/io/zipcoder/pets/CatTest.java create mode 100644 src/test/java/io/zipcoder/pets/DogTest.java create mode 100644 src/test/java/io/zipcoder/pets/HorseTest.java create mode 100644 src/test/java/io/zipcoder/pets/PetOwnerTest.java diff --git a/src/test/java/io/zipcoder/pets/CatTest.java b/src/test/java/io/zipcoder/pets/CatTest.java new file mode 100644 index 0000000..205bda0 --- /dev/null +++ b/src/test/java/io/zipcoder/pets/CatTest.java @@ -0,0 +1,54 @@ +package io.zipcoder.pets; + +import org.junit.Assert; +import org.junit.Test; + +public class CatTest { + @Test + public void constructorTest() { + //given + String givenName = "Banksy"; + Integer givenId = 0; + //when + Cat cat = new Cat(givenName, givenId); + String retrievedName = cat.getName(); + Integer retrievedID = cat.getId(); + //then + Assert.assertEquals(givenName, retrievedName); + } + @Test + public void testGetName() { + //given + String expectedName = "Ony"; + //when + Cat cat = new Cat(expectedName, 2); + String actualName = cat.getName(); + //then + Assert.assertEquals(expectedName, actualName); + } + @Test + public void testGetID() { + //given + Integer expectedId = 1; + //when + Cat cat = new Cat("Kyo", expectedId); + Integer actualId = cat.getId(); + //then + Assert.assertEquals(expectedId, actualId); + } + @Test + public void testSpeak() { + //given + String expectedSpeak = "meow"; + //when + Cat newCat = new Cat(expectedSpeak); + String actualSpeak = newCat.speak(); + //then + Assert.assertEquals(expectedSpeak, actualSpeak); + } + @Test + public void testPetInheritance() { + Cat newCat = new Cat("Gojo", 2); + Assert.assertTrue(newCat instanceof Pet); + } +} diff --git a/src/test/java/io/zipcoder/pets/DogTest.java b/src/test/java/io/zipcoder/pets/DogTest.java new file mode 100644 index 0000000..32b8d09 --- /dev/null +++ b/src/test/java/io/zipcoder/pets/DogTest.java @@ -0,0 +1,56 @@ +package io.zipcoder.pets; + +import org.junit.Assert; +import org.junit.Test; + +public class DogTest { + @Test + public void constructorTest() { + //given + String givenName = "Bruno"; + Integer givenId = 2; + //when + Dog dog = new Dog(givenName, givenId); + String retrievedName = dog.getName(); + Integer retrievedId = dog.getId(); + //then + Assert.assertEquals(givenName, retrievedName); + Assert.assertEquals(givenId, retrievedId); + } + @Test + public void testSetName() { + //given + String expectedName = "Issa"; + //when + Dog dog = new Dog(expectedName, 4); + String actualName = dog.getName(); + //then + Assert.assertEquals(expectedName, actualName); + } + @Test + public void testGetId() { + //given + Integer expectedId = 9; + //when + Dog dog = new Dog("Shigure", expectedId); + Integer actualId = dog.getId(); + //then + Assert.assertEquals(expectedId, actualId); + + } + @Test + public void testSpeak() { + //given + String expectedSpeak = "bark"; + //when + Dog newDog = new Dog(expectedSpeak); + String actualSpeak = newDog.speak(); + //then + Assert.assertEquals(expectedSpeak, actualSpeak); + } + @Test + public void testPetInheritance() { + Dog newDog = new Dog("Kyo", 7); + Assert.assertTrue(newDog instanceof Pet); + } +} diff --git a/src/test/java/io/zipcoder/pets/HorseTest.java b/src/test/java/io/zipcoder/pets/HorseTest.java new file mode 100644 index 0000000..292179f --- /dev/null +++ b/src/test/java/io/zipcoder/pets/HorseTest.java @@ -0,0 +1,56 @@ +package io.zipcoder.pets; + +import org.junit.Assert; +import org.junit.Test; + +public class HorseTest { + @Test + public void constructorTest() { + //given + String givenName = "Misty"; + Integer givenId = 3; + //when + Horse horse = new Horse(givenName); + String retrievedName = horse.getName(); + Integer retrievedId = horse.getId(); + //then + Assert.assertEquals(givenName, retrievedName); + Assert.assertEquals(givenId, retrievedId); + } + @Test + public void testSetName() { + //given + String expectedName = "Rin"; + //when + Horse horse = new Horse(expectedName, 5); + String actualName = horse.getName(); + //then + Assert.assertEquals(expectedName, actualName); + } + @Test + public void testGetId() { + //given + Integer expectedId = 1; + //when + Horse horse = new Horse("Flash", expectedId); + Integer actualId = horse.getId(); + //then + Assert.assertEquals(expectedId, actualId); + } + @Test + public void testSpeak() { + //given + String expectedSpeak = "neigh"; + //when + Horse newHorse = new Horse(expectedSpeak); + String actualSpeak = newHorse.speak(); + //then + Assert.assertEquals(expectedSpeak, actualSpeak); + } + @Test + public void testPetInheritance() { + Horse newHorse = new Horse("Frank", 4); + Assert.assertTrue(newHorse instanceof Pet); + } + +} diff --git a/src/test/java/io/zipcoder/pets/PetOwnerTest.java b/src/test/java/io/zipcoder/pets/PetOwnerTest.java new file mode 100644 index 0000000..8a387a6 --- /dev/null +++ b/src/test/java/io/zipcoder/pets/PetOwnerTest.java @@ -0,0 +1,74 @@ +package io.zipcoder.pets; + +import org.junit.Assert; +import org.junit.Test; + +public class PetOwnerTest { + + @Test + public void testPetOwnerConstructor() { + //given + String expectedName = "Kira"; + //when + PetOwner petOwner = new PetOwner(expectedName); + String actualName = petOwner.getName(); + //then + Assert.assertEquals(expectedName, actualName); + } + + @Test + public void testSetNumberOfPets() { + //given + int expected = 1; + PetOwner petOwner = new PetOwner("Annette"); + //when + petOwner.setNumberOfPets(expected); + int actual = petOwner.setNumberOfPets(); + + //then + Assert.assertEquals(expected, actual); + } + + @Test + public void testAddPets() { + //given + Pet[] expectedPets = {cat1, cat2}; + PetOwner petOwner = new PetOwner("Caroline"); + petOwner.setNumberOfPets(2); + Cat cat1 = new Cat("Luna", 0); + Cat cat2 = new Cat("Binks", 1); + //when + petOwner.addPet(cat1); + petOwner.addPet(cat2); + Pet[] actualPets = petOwner.getPets(); + //then + Assert.assertEquals(expectedPets, actualPets); + } + + @Test + public void testGetPetById() { + //given + String expected = "YunYun"; + PetOwner petOwner = new PetOwner("Rayna"); + Dog dog = new Dog(expected, 0); + Cat cat = new Cat("Sophie", 1); + //when + String actual = petOwner.getPetById(0); + //then + Assert.assertEquals(expected, actual); + } + + @Test + public void testSetPetName() { + //given + String expected = "Poppy"; + PetOwner petOwner = new PetOwner("Peter"); + petOwner.setNumberOfPets(2); + Cat cat = new Cat("Ghost", 0); + //when + petOwner.setPetName(cat, expected); + String actual = cat.getName(); + //then + Assert.assertEquals(expected, actual); + } +} From 20358a3597a1ddf27fe0de9f85d5c7bf01e48172 Mon Sep 17 00:00:00 2001 From: Nathan Date: Sat, 10 Jul 2021 23:15:08 -0400 Subject: [PATCH 3/4] console works --- pom.xml | 12 +++ src/main/java/io/zipcoder/pets/Animal.java | 6 ++ src/main/java/io/zipcoder/pets/Cat.java | 16 ++++ src/main/java/io/zipcoder/pets/Dog.java | 17 ++++ src/main/java/io/zipcoder/pets/Horse.java | 17 ++++ src/main/java/io/zipcoder/pets/Pet.java | 44 +++++++++ src/main/java/io/zipcoder/pets/PetOwner.java | 58 ++++++++++++ .../io/zipcoder/polymorphism/Console.java | 91 +++++++++++++++++++ .../polymorphism/MainApplication.java | 7 ++ src/test/java/io/zipcoder/pets/CatTest.java | 5 +- src/test/java/io/zipcoder/pets/DogTest.java | 6 +- src/test/java/io/zipcoder/pets/HorseTest.java | 6 +- .../java/io/zipcoder/pets/PetOwnerTest.java | 19 ++-- 13 files changed, 286 insertions(+), 18 deletions(-) create mode 100644 src/main/java/io/zipcoder/pets/Animal.java create mode 100644 src/main/java/io/zipcoder/pets/Cat.java create mode 100644 src/main/java/io/zipcoder/pets/Dog.java create mode 100644 src/main/java/io/zipcoder/pets/Horse.java create mode 100644 src/main/java/io/zipcoder/pets/Pet.java create mode 100644 src/main/java/io/zipcoder/pets/PetOwner.java create mode 100644 src/main/java/io/zipcoder/polymorphism/Console.java diff --git a/pom.xml b/pom.xml index 62dbb86..b118c92 100644 --- a/pom.xml +++ b/pom.xml @@ -5,6 +5,18 @@ io.zipcoder polymorphism-1 0.0.1-SNAPSHOT + + + + org.apache.maven.plugins + maven-compiler-plugin + + 11 + 11 + + + + jar interfaces-1 diff --git a/src/main/java/io/zipcoder/pets/Animal.java b/src/main/java/io/zipcoder/pets/Animal.java new file mode 100644 index 0000000..6e3ab7c --- /dev/null +++ b/src/main/java/io/zipcoder/pets/Animal.java @@ -0,0 +1,6 @@ +package io.zipcoder.pets; + +public interface Animal { + String speak(); + Integer getId(); +} 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..7337323 --- /dev/null +++ b/src/main/java/io/zipcoder/pets/Cat.java @@ -0,0 +1,16 @@ +package io.zipcoder.pets; + +public class Cat extends Pet{ + public Cat(String name, Integer id) { + super(name, id); + } + + public Cat() { + super("Cat", null); + } + + @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..00cbcda --- /dev/null +++ b/src/main/java/io/zipcoder/pets/Dog.java @@ -0,0 +1,17 @@ +package io.zipcoder.pets; + +public class Dog extends Pet{ + + public Dog(String name, Integer id) { + super(name, id); + } + + public Dog() { + super("Dog", null); + } + + @Override + public String speak(){ + return "Bark!"; + } +} diff --git a/src/main/java/io/zipcoder/pets/Horse.java b/src/main/java/io/zipcoder/pets/Horse.java new file mode 100644 index 0000000..7349b8e --- /dev/null +++ b/src/main/java/io/zipcoder/pets/Horse.java @@ -0,0 +1,17 @@ +package io.zipcoder.pets; + +public class Horse extends Pet { + + public Horse(String name, Integer id) { + super(name, id); + } + + public Horse() { + super("Horse", null); + } + + @Override + public String speak(){ + return "Neigh!"; + } +} 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..bdfeb31 --- /dev/null +++ b/src/main/java/io/zipcoder/pets/Pet.java @@ -0,0 +1,44 @@ +package io.zipcoder.pets; + +public class Pet implements Animal { + private String Name; + private final Integer Id; + private PetOwner Owner; + + public Pet(String name, Integer id) { + this.Name = name; + this.Id = id; + this.Owner = null; + } + + public String getName() { + return this.Name; + } + + public void setName(String name) { + this.Name = name; + } + + public Integer getId() { + return Id; + } + +// public void setId(Integer id) { +// this.Id = id; +// } + + public PetOwner getOwner() { + return this.Owner; + } + + public void setOwner(PetOwner owner) { + this.Owner = owner; + } + + + + + public String speak() { + return null; + } +} diff --git a/src/main/java/io/zipcoder/pets/PetOwner.java b/src/main/java/io/zipcoder/pets/PetOwner.java new file mode 100644 index 0000000..688b02d --- /dev/null +++ b/src/main/java/io/zipcoder/pets/PetOwner.java @@ -0,0 +1,58 @@ +package io.zipcoder.pets; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class PetOwner { + private String name; + private ArrayList petList = new ArrayList<>(); + private static Integer ID = 0; + //private Integer numberOfPets; + + public PetOwner(String name, int numOfPets) { + this.name = name; + this.petList = new ArrayList<>(); + for (int i = 0; i < numOfPets; i++) { + petList.add(new Dog("TEST DOG", 90)); + } + } + + public String getName() { + return name; + } + + public void setNumberOfPets(Integer newNumOfPets) { + for (int i = 0; i < newNumOfPets; i++) { + petList.add(new Dog("TEST DOG", 80)); + } + } + + public int getNumberOfPets() { + return petList.size(); + } + + public void addPet(Pet pet) { + for(Pet element: petList){ + if(element != pet){ + element = pet; + break; + } + } + + } + + public Pet getPetById(Integer petId) { + for(Pet pet: petList){ + System.out.println(pet.getId()); + if(pet.getId() == petId){ + return pet; + } + } + return null; + } + + public void setPetName(Pet pet, String newPetName) { + + } +} 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..e18e65f --- /dev/null +++ b/src/main/java/io/zipcoder/polymorphism/Console.java @@ -0,0 +1,91 @@ +package io.zipcoder.polymorphism; + +import io.zipcoder.pets.Cat; +import io.zipcoder.pets.Dog; +import io.zipcoder.pets.Horse; +import io.zipcoder.pets.Pet; + +import java.util.ArrayList; +import java.util.List; +import java.util.Scanner; + +public class Console { + private static List petList = new ArrayList<>(); + private static Integer count; + + public static void start() { + Scanner scanner = new Scanner(System.in); + System.out.println("Hello pet owner! How many pets do you have?"); + //count = getIntegerInput("Hello pet owner! How many pets do you have?"); + count = scanner.nextInt(); + int I = 0; + while (I < count){ + System.out.println("What type of pet is your pet # " + (I +1) + " ?\n" + + "1.Dog, 2. Cat, 3. Horse"); + int input = scanner.nextInt(); +// Integer input = getIntegerInput("What type of pet is your pet # " + I + " ?\n" + +// "1.Dog, 2. Cat, 3. Horse"); + switch(input) { + case 1 : + petList.add(new Dog()); + break; + case 2 : + petList.add(new Cat()); + break; + case 3 : + petList.add(new Horse()); + break; + default : + System.out.println("Error! Pick 1, 2 or 3"); + continue; + } + I++; + } + + } + + public static void getNames(){ + Scanner scanner = new Scanner(System.in); + String input; + int I = 0; + while (I < count){ + System.out.println("What is the name of your pet #" + (I + 1) + " who is a " + petList.get(I).getClass().getSimpleName() + "?" ); + input = scanner.nextLine(); + petList.get(I).setName(input); + I++; + } + } + public static void speak(){ + for(Pet eachPet: petList){ + System.out.println(eachPet.getName() + " the " + eachPet.getClass().getSimpleName() + " says " + eachPet.speak()); + } + } + + 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); + return scanner.nextLine(); + } + + public static Integer getIntegerInput(String prompt) { + Scanner scanner = new Scanner(System.in); + println(prompt); + return Integer.parseInt(scanner.nextLine()); + } + + public static Float getFloatInput(String prompt) { + Scanner scanner = new Scanner(System.in); + println(String.valueOf(prompt)); + return Float.parseFloat((scanner.nextLine())); + } + + +} diff --git a/src/main/java/io/zipcoder/polymorphism/MainApplication.java b/src/main/java/io/zipcoder/polymorphism/MainApplication.java index 668c627..6c1edcd 100644 --- a/src/main/java/io/zipcoder/polymorphism/MainApplication.java +++ b/src/main/java/io/zipcoder/polymorphism/MainApplication.java @@ -1,4 +1,11 @@ package io.zipcoder.polymorphism; public class MainApplication { + + public static void main(String[] args) { + Console.start(); + Console.getNames(); + Console.speak(); + } + } diff --git a/src/test/java/io/zipcoder/pets/CatTest.java b/src/test/java/io/zipcoder/pets/CatTest.java index 205bda0..56b879f 100644 --- a/src/test/java/io/zipcoder/pets/CatTest.java +++ b/src/test/java/io/zipcoder/pets/CatTest.java @@ -15,6 +15,7 @@ public void constructorTest() { Integer retrievedID = cat.getId(); //then Assert.assertEquals(givenName, retrievedName); + Assert.assertEquals(givenId, retrievedID); } @Test public void testGetName() { @@ -39,9 +40,9 @@ public void testGetID() { @Test public void testSpeak() { //given - String expectedSpeak = "meow"; + String expectedSpeak = "Meow!"; //when - Cat newCat = new Cat(expectedSpeak); + Cat newCat = new Cat("Spooky", 1); String actualSpeak = newCat.speak(); //then Assert.assertEquals(expectedSpeak, actualSpeak); diff --git a/src/test/java/io/zipcoder/pets/DogTest.java b/src/test/java/io/zipcoder/pets/DogTest.java index 32b8d09..8f14da1 100644 --- a/src/test/java/io/zipcoder/pets/DogTest.java +++ b/src/test/java/io/zipcoder/pets/DogTest.java @@ -22,7 +22,7 @@ public void testSetName() { //given String expectedName = "Issa"; //when - Dog dog = new Dog(expectedName, 4); + Dog dog = new Dog(expectedName,4); String actualName = dog.getName(); //then Assert.assertEquals(expectedName, actualName); @@ -41,9 +41,9 @@ public void testGetId() { @Test public void testSpeak() { //given - String expectedSpeak = "bark"; + String expectedSpeak = "Bark!"; //when - Dog newDog = new Dog(expectedSpeak); + Dog newDog = new Dog("Coco", 3); String actualSpeak = newDog.speak(); //then Assert.assertEquals(expectedSpeak, actualSpeak); diff --git a/src/test/java/io/zipcoder/pets/HorseTest.java b/src/test/java/io/zipcoder/pets/HorseTest.java index 292179f..811317a 100644 --- a/src/test/java/io/zipcoder/pets/HorseTest.java +++ b/src/test/java/io/zipcoder/pets/HorseTest.java @@ -10,7 +10,7 @@ public void constructorTest() { String givenName = "Misty"; Integer givenId = 3; //when - Horse horse = new Horse(givenName); + Horse horse = new Horse(givenName, givenId); String retrievedName = horse.getName(); Integer retrievedId = horse.getId(); //then @@ -40,9 +40,9 @@ public void testGetId() { @Test public void testSpeak() { //given - String expectedSpeak = "neigh"; + String expectedSpeak = "Neigh!"; //when - Horse newHorse = new Horse(expectedSpeak); + Horse newHorse = new Horse("Layla", 2); String actualSpeak = newHorse.speak(); //then Assert.assertEquals(expectedSpeak, actualSpeak); diff --git a/src/test/java/io/zipcoder/pets/PetOwnerTest.java b/src/test/java/io/zipcoder/pets/PetOwnerTest.java index 8a387a6..b658e3d 100644 --- a/src/test/java/io/zipcoder/pets/PetOwnerTest.java +++ b/src/test/java/io/zipcoder/pets/PetOwnerTest.java @@ -10,7 +10,7 @@ public void testPetOwnerConstructor() { //given String expectedName = "Kira"; //when - PetOwner petOwner = new PetOwner(expectedName); + PetOwner petOwner = new PetOwner(expectedName, 4); String actualName = petOwner.getName(); //then Assert.assertEquals(expectedName, actualName); @@ -20,10 +20,10 @@ public void testPetOwnerConstructor() { public void testSetNumberOfPets() { //given int expected = 1; - PetOwner petOwner = new PetOwner("Annette"); + PetOwner petOwner = new PetOwner("Annette", expected); //when petOwner.setNumberOfPets(expected); - int actual = petOwner.setNumberOfPets(); + int actual = petOwner.getNumberOfPets(); //then Assert.assertEquals(expected, actual); @@ -32,28 +32,27 @@ public void testSetNumberOfPets() { @Test public void testAddPets() { //given - Pet[] expectedPets = {cat1, cat2}; - PetOwner petOwner = new PetOwner("Caroline"); + PetOwner petOwner = new PetOwner("Caroline", 0); petOwner.setNumberOfPets(2); Cat cat1 = new Cat("Luna", 0); Cat cat2 = new Cat("Binks", 1); //when petOwner.addPet(cat1); petOwner.addPet(cat2); - Pet[] actualPets = petOwner.getPets(); + Pet actualPet = petOwner.getPetById(0); //then - Assert.assertEquals(expectedPets, actualPets); + Assert.assertEquals(cat1.getName(), actualPet.getName()); } @Test public void testGetPetById() { //given String expected = "YunYun"; - PetOwner petOwner = new PetOwner("Rayna"); + PetOwner petOwner = new PetOwner("Rayna", 2); Dog dog = new Dog(expected, 0); Cat cat = new Cat("Sophie", 1); //when - String actual = petOwner.getPetById(0); + Pet actual = petOwner.getPetById(0); //then Assert.assertEquals(expected, actual); } @@ -62,7 +61,7 @@ public void testGetPetById() { public void testSetPetName() { //given String expected = "Poppy"; - PetOwner petOwner = new PetOwner("Peter"); + PetOwner petOwner = new PetOwner("Peter", 0); petOwner.setNumberOfPets(2); Cat cat = new Cat("Ghost", 0); //when From da549871f42fd76155bf38aaafc4d6d985bd183e Mon Sep 17 00:00:00 2001 From: Nathan Date: Sat, 10 Jul 2021 23:17:39 -0400 Subject: [PATCH 4/4] minor touch ups --- src/main/java/io/zipcoder/polymorphism/Console.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/io/zipcoder/polymorphism/Console.java b/src/main/java/io/zipcoder/polymorphism/Console.java index e18e65f..ade99b4 100644 --- a/src/main/java/io/zipcoder/polymorphism/Console.java +++ b/src/main/java/io/zipcoder/polymorphism/Console.java @@ -56,6 +56,7 @@ public static void getNames(){ } } public static void speak(){ + System.out.println("You have " + count + " pets."); for(Pet eachPet: petList){ System.out.println(eachPet.getName() + " the " + eachPet.getClass().getSimpleName() + " says " + eachPet.speak()); }