From 0a2b7df9501e6e700b8aa79553201b27a6825982 Mon Sep 17 00:00:00 2001 From: Karousha Fennimore Date: Tue, 27 Feb 2018 09:53:28 -0500 Subject: [PATCH 1/2] final --- src/main/java/io/zipcoder/Application.java | 5 -- src/main/java/io/zipcoder/PetUtils.java | 79 ++++++++++++++++++ .../io/zipcoder/pets/Application.java | 8 ++ .../io/zipcoder/io/zipcoder/pets/Cat.java | 13 +++ .../io/zipcoder/io/zipcoder/pets/Compare.java | 18 +++++ .../io/zipcoder/io/zipcoder/pets/Dog.java | 14 ++++ .../io/zipcoder/io/zipcoder/pets/Pet.java | 40 +++++++++ .../io/zipcoder/io/zipcoder/pets/Unicorn.java | 11 +++ .../java/io/zipcoder/ApplicationTest.java | 5 -- src/test/java/io/zipcoder/PetUtilsTest.java | 81 +++++++++++++++++++ .../io/zipcoder/io/zipcoder/pets/CatTest.java | 32 ++++++++ .../io/zipcoder/io/zipcoder/pets/DogTest.java | 32 ++++++++ .../io/zipcoder/io/zipcoder/pets/PetTest.java | 41 ++++++++++ .../io/zipcoder/pets/UnicornTest.java | 33 ++++++++ 14 files changed, 402 insertions(+), 10 deletions(-) delete mode 100644 src/main/java/io/zipcoder/Application.java create mode 100644 src/main/java/io/zipcoder/PetUtils.java create mode 100644 src/main/java/io/zipcoder/io/zipcoder/pets/Application.java create mode 100644 src/main/java/io/zipcoder/io/zipcoder/pets/Cat.java create mode 100644 src/main/java/io/zipcoder/io/zipcoder/pets/Compare.java create mode 100644 src/main/java/io/zipcoder/io/zipcoder/pets/Dog.java create mode 100644 src/main/java/io/zipcoder/io/zipcoder/pets/Pet.java create mode 100644 src/main/java/io/zipcoder/io/zipcoder/pets/Unicorn.java delete mode 100644 src/test/java/io/zipcoder/ApplicationTest.java create mode 100644 src/test/java/io/zipcoder/PetUtilsTest.java create mode 100644 src/test/java/io/zipcoder/io/zipcoder/pets/CatTest.java create mode 100644 src/test/java/io/zipcoder/io/zipcoder/pets/DogTest.java create mode 100644 src/test/java/io/zipcoder/io/zipcoder/pets/PetTest.java create mode 100644 src/test/java/io/zipcoder/io/zipcoder/pets/UnicornTest.java diff --git a/src/main/java/io/zipcoder/Application.java b/src/main/java/io/zipcoder/Application.java deleted file mode 100644 index 3a257cb..0000000 --- a/src/main/java/io/zipcoder/Application.java +++ /dev/null @@ -1,5 +0,0 @@ -package io.zipcoder; - - -public class Application { -} diff --git a/src/main/java/io/zipcoder/PetUtils.java b/src/main/java/io/zipcoder/PetUtils.java new file mode 100644 index 0000000..60c59d3 --- /dev/null +++ b/src/main/java/io/zipcoder/PetUtils.java @@ -0,0 +1,79 @@ +package io.zipcoder; + + +import io.zipcoder.io.zipcoder.pets.Cat; +import io.zipcoder.io.zipcoder.pets.Dog; +import io.zipcoder.io.zipcoder.pets.Pet; +import io.zipcoder.io.zipcoder.pets.Unicorn; + +import java.util.ArrayList; +import java.util.Collections; + +public class PetUtils { + + ArrayList pets = new ArrayList(); + private int numberOfPets; + + public ArrayList getPets() { + + return pets; + } + + public String printList() { + + return pets.toString(); + } + + + public int getNumberOfPets() { + + + return pets.size(); + + } + + public void addPet(String petName, String petType) { + + Pet pet = null; + if (petType.equalsIgnoreCase("Dog")) { + pet = new Dog(); + pet.setPetName(petName); + pets.add(pet); + } else if (petType.equalsIgnoreCase("Cat")) { + pet = new Cat(); + pet.setPetName(petName); + pets.add(pet); + } else if (petType.equalsIgnoreCase("Unicorn")) { + pet = new Unicorn(); + pet.setPetName(petName); + pets.add(pet); + } else { + pet = null; + } + } + + public boolean containsPet(String petName, String petType) { + + boolean contains = false; + + for (Pet pet : pets) { + if (pet.getPetName().equalsIgnoreCase(petName) && pet.getClass().getSimpleName().equals(petType)) { + contains = true; + break; + } + } + return contains; + } + + public void setNumberOfPets(int numberOfPets) { + + this.numberOfPets = numberOfPets; + } + + + public static void main(String[] args) { + + + } +} + diff --git a/src/main/java/io/zipcoder/io/zipcoder/pets/Application.java b/src/main/java/io/zipcoder/io/zipcoder/pets/Application.java new file mode 100644 index 0000000..69c6eb1 --- /dev/null +++ b/src/main/java/io/zipcoder/io/zipcoder/pets/Application.java @@ -0,0 +1,8 @@ +package io.zipcoder.io.zipcoder.pets; + +public class Application { + + public static void main(String[] args) { + + } +} diff --git a/src/main/java/io/zipcoder/io/zipcoder/pets/Cat.java b/src/main/java/io/zipcoder/io/zipcoder/pets/Cat.java new file mode 100644 index 0000000..193b21a --- /dev/null +++ b/src/main/java/io/zipcoder/io/zipcoder/pets/Cat.java @@ -0,0 +1,13 @@ +package io.zipcoder.io.zipcoder.pets; + +public class Cat extends Pet { + + + @Override + public String speak() { + + return "meow"; + } + + +} diff --git a/src/main/java/io/zipcoder/io/zipcoder/pets/Compare.java b/src/main/java/io/zipcoder/io/zipcoder/pets/Compare.java new file mode 100644 index 0000000..2571997 --- /dev/null +++ b/src/main/java/io/zipcoder/io/zipcoder/pets/Compare.java @@ -0,0 +1,18 @@ +package io.zipcoder.io.zipcoder.pets; + +import java.util.Comparator; + +public class Compare implements Comparator { + + public int compare(Pet o1, Pet o2) { + int comparable = o1.getClass().getSimpleName().compareTo(o2.getClass().getSimpleName()); + + if(comparable == 0) { + return 0; + }else if(comparable == 1) { + return 1; + }else { + return -1; + } + } +} diff --git a/src/main/java/io/zipcoder/io/zipcoder/pets/Dog.java b/src/main/java/io/zipcoder/io/zipcoder/pets/Dog.java new file mode 100644 index 0000000..4c593b9 --- /dev/null +++ b/src/main/java/io/zipcoder/io/zipcoder/pets/Dog.java @@ -0,0 +1,14 @@ +package io.zipcoder.io.zipcoder.pets; + +public class Dog extends Pet { + + + + @Override + public String speak() { + + return "woof"; + } + + +} diff --git a/src/main/java/io/zipcoder/io/zipcoder/pets/Pet.java b/src/main/java/io/zipcoder/io/zipcoder/pets/Pet.java new file mode 100644 index 0000000..153b30b --- /dev/null +++ b/src/main/java/io/zipcoder/io/zipcoder/pets/Pet.java @@ -0,0 +1,40 @@ +package io.zipcoder.io.zipcoder.pets; + +import java.util.Comparator; +import java.util.List; +import java.util.TreeMap; + +public abstract class Pet implements Comparable { + + private String petName; + + public abstract String speak(); + + public String getPetName() { + return petName; + } + + public void setPetName(String petName) { + this.petName = petName; + } + + @Override + public String toString(){ + + return "[" + petName + ", " + this.getClass().getSimpleName()+ "]"; + + } + public int compareTo(Pet o) { + + int result = this.getPetName().compareTo(o.getPetName()); + int classCompare = this.getClass().getSimpleName().compareTo(o.getClass().getSimpleName()); + + if(result == 0) { + return classCompare; + }else { + return result; + } + } + + +} diff --git a/src/main/java/io/zipcoder/io/zipcoder/pets/Unicorn.java b/src/main/java/io/zipcoder/io/zipcoder/pets/Unicorn.java new file mode 100644 index 0000000..743c582 --- /dev/null +++ b/src/main/java/io/zipcoder/io/zipcoder/pets/Unicorn.java @@ -0,0 +1,11 @@ +package io.zipcoder.io.zipcoder.pets; + +public class Unicorn extends Pet { + + + + @Override + public String speak() { + return "* sparkles * glitter *"; + } +} diff --git a/src/test/java/io/zipcoder/ApplicationTest.java b/src/test/java/io/zipcoder/ApplicationTest.java deleted file mode 100644 index b744df5..0000000 --- a/src/test/java/io/zipcoder/ApplicationTest.java +++ /dev/null @@ -1,5 +0,0 @@ -package io.zipcoder; - - -public class ApplicationTest { -} diff --git a/src/test/java/io/zipcoder/PetUtilsTest.java b/src/test/java/io/zipcoder/PetUtilsTest.java new file mode 100644 index 0000000..6c8f51d --- /dev/null +++ b/src/test/java/io/zipcoder/PetUtilsTest.java @@ -0,0 +1,81 @@ +package io.zipcoder; + +import io.zipcoder.io.zipcoder.pets.Compare; +import io.zipcoder.io.zipcoder.pets.Pet; +import org.junit.Assert; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.Collections; + +public class PetUtilsTest { + + @Test + public void printList() { + //Given + PetUtils utils = new PetUtils(); + //When + utils.addPet("Hugo", "Dog"); + utils.addPet("Bob", "Cat"); + //Then + String expected = ("[[Hugo, Dog], [Bob, Cat]]"); + String actual = utils.printList(); + + Assert.assertEquals(expected, actual); + } + + @Test + public void setNumberOfPets() { + //Given + PetUtils petUtils = new PetUtils(); + petUtils.addPet("Hugo", "Dog"); + petUtils.addPet("Bob", "Cat"); + petUtils.addPet("John", "Unicorn"); + + int expected = 3; + petUtils.setNumberOfPets(expected); + //When + int actual = petUtils.getNumberOfPets(); + //Then + Assert.assertEquals(expected, actual); + } + + @Test + public void addPet() { + //Given + PetUtils utils = new PetUtils(); + + utils.addPet("Hugo", "Dog"); + String expected = ("[Hugo, Dog]"); + String actual = utils.pets.get(0).toString(); + Assert.assertEquals(expected, actual); + } + + @Test + public void containsPet() { + + PetUtils utils = new PetUtils(); + + utils.addPet("Bob", "Cat"); + + Assert.assertTrue(utils.containsPet("Bob", "Cat")); + } + + @Test + public void compare(){ + //Given + Compare compare = new Compare(); + PetUtils petUtils = new PetUtils(); + + petUtils.addPet("Hugo", "Dog"); + petUtils.addPet("Bob", "Cat"); + petUtils.addPet("John", "Unicorn"); + + Collections.sort(petUtils.getPets(), compare); + String expected = "[[Bob, Cat], [Hugo, Dog], [John, Unicorn]]"; + String actual = petUtils.getPets().toString(); + + Assert.assertEquals(expected, actual); + } + +} \ No newline at end of file diff --git a/src/test/java/io/zipcoder/io/zipcoder/pets/CatTest.java b/src/test/java/io/zipcoder/io/zipcoder/pets/CatTest.java new file mode 100644 index 0000000..e5f73ca --- /dev/null +++ b/src/test/java/io/zipcoder/io/zipcoder/pets/CatTest.java @@ -0,0 +1,32 @@ +package io.zipcoder.io.zipcoder.pets; + +import org.junit.Assert; +import org.junit.Test; + +import static org.junit.Assert.*; + +public class CatTest { + + @Test + public void speak() { + //Given + Cat cat = new Cat(); + //When + String expected = "meow"; + String actual = cat.speak(); + //Then + Assert.assertEquals(expected,actual); + } + + @Test + public void setPetName(){ + //Given + Cat cat = new Cat(); + String expected = "Hugo"; + cat.setPetName(expected); + //When + String actual = cat.getPetName(); + //Then + Assert.assertEquals(expected, actual); + } +} \ No newline at end of file diff --git a/src/test/java/io/zipcoder/io/zipcoder/pets/DogTest.java b/src/test/java/io/zipcoder/io/zipcoder/pets/DogTest.java new file mode 100644 index 0000000..b06d052 --- /dev/null +++ b/src/test/java/io/zipcoder/io/zipcoder/pets/DogTest.java @@ -0,0 +1,32 @@ +package io.zipcoder.io.zipcoder.pets; + +import org.junit.Assert; +import org.junit.Test; + +import static org.junit.Assert.*; + +public class DogTest { + + @Test + public void speak() { + //Given + Dog dog = new Dog(); + //When + String expected = "woof"; + String actual = dog.speak(); + //Then + Assert.assertEquals(expected,actual); + } + + @Test + public void setPetName(){ + //Given + Dog dog = new Dog(); + String expected = "Cody"; + dog.setPetName(expected); + //When + String actual = dog.getPetName(); + //Then + Assert.assertEquals(expected, actual); + } +} \ No newline at end of file diff --git a/src/test/java/io/zipcoder/io/zipcoder/pets/PetTest.java b/src/test/java/io/zipcoder/io/zipcoder/pets/PetTest.java new file mode 100644 index 0000000..dd93a26 --- /dev/null +++ b/src/test/java/io/zipcoder/io/zipcoder/pets/PetTest.java @@ -0,0 +1,41 @@ +package io.zipcoder.io.zipcoder.pets; + +import io.zipcoder.PetUtils; +import org.junit.Assert; +import org.junit.Test; + +import java.util.Collections; + +public class PetTest { + + @Test + public void compareTo() { + + PetUtils petUtils = new PetUtils(); + + petUtils.addPet("Hugo", "Dog"); + petUtils.addPet("Bob", "Cat"); + petUtils.addPet("John", "Unicorn"); + + Collections.sort(petUtils.getPets()); + String expected = "[[Bob, Cat], [Hugo, Dog], [John, Unicorn]]"; + String actual = petUtils.getPets().toString(); + + Assert.assertEquals(expected, actual); + } + + + @Test + public void setPetName() { + //Given + Unicorn unicorn = new Unicorn(); + unicorn.setPetName("Blumbo"); + //When + String expected = unicorn.getPetName(); + String actual = "Blumbo"; + //Then + Assert.assertEquals(expected, actual); + } + + +} \ No newline at end of file diff --git a/src/test/java/io/zipcoder/io/zipcoder/pets/UnicornTest.java b/src/test/java/io/zipcoder/io/zipcoder/pets/UnicornTest.java new file mode 100644 index 0000000..87d87c8 --- /dev/null +++ b/src/test/java/io/zipcoder/io/zipcoder/pets/UnicornTest.java @@ -0,0 +1,33 @@ +package io.zipcoder.io.zipcoder.pets; + +import org.junit.Assert; +import org.junit.Test; + +import static org.junit.Assert.*; + +public class UnicornTest { + + + @Test + public void speak() { + //Given + Unicorn unicorn = new Unicorn(); + //When + String expected = "* sparkles * glitter *"; + String actual = unicorn.speak(); + //Then + Assert.assertEquals(expected,actual); + } + + @Test + public void setPetName(){ + //Given + Unicorn unicorn = new Unicorn(); + String expected = "Lucky"; + unicorn.setPetName(expected); + //When + String actual = unicorn.getPetName(); + //Then + Assert.assertEquals(expected, actual); + } +} \ No newline at end of file From 8b128cd93a31486352a85e5d945c41fdaf6e7336 Mon Sep 17 00:00:00 2001 From: Karousha Fennimore Date: Tue, 27 Feb 2018 14:36:21 -0500 Subject: [PATCH 2/2] actually finished --- pom.xml | 12 ++++++++ .../io/zipcoder/pets/Application.java | 28 ++++++++++++++++++- .../io/zipcoder/io/zipcoder/pets/Compare.java | 3 +- .../io/zipcoder/io/zipcoder/pets/Pet.java | 2 ++ 4 files changed, 43 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index d73c078..384c015 100644 --- a/pom.xml +++ b/pom.xml @@ -7,6 +7,18 @@ io.zipcoder Interfaces 1.0-SNAPSHOT + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.7 + 1.7 + + + + diff --git a/src/main/java/io/zipcoder/io/zipcoder/pets/Application.java b/src/main/java/io/zipcoder/io/zipcoder/pets/Application.java index 69c6eb1..4346f36 100644 --- a/src/main/java/io/zipcoder/io/zipcoder/pets/Application.java +++ b/src/main/java/io/zipcoder/io/zipcoder/pets/Application.java @@ -1,8 +1,34 @@ package io.zipcoder.io.zipcoder.pets; +import io.zipcoder.PetUtils; + +import java.util.ArrayList; +import java.util.Scanner; + public class Application { public static void main(String[] args) { + Scanner scanner = new Scanner(System.in); + PetUtils pet = new PetUtils(); + + + System.out.println("Hi, how many pets do you have?"); + int numOfPets = Integer.parseInt(scanner.nextLine()); + for(int i = 0; i < numOfPets; i++) { + String petType; + String petName; + System.out.println("Aww, what kind of pet is # " + (i+1) + "?"); + petType = scanner.nextLine(); + + System.out.println("Cute! Whats your " + petType + "'s name?"); + petName = scanner.nextLine(); + pet.addPet(petName, petType); + } + + System.out.println("So, let me get this right, you have the following animals: "); + + System.out.println(pet.printList()); + + } } -} diff --git a/src/main/java/io/zipcoder/io/zipcoder/pets/Compare.java b/src/main/java/io/zipcoder/io/zipcoder/pets/Compare.java index 2571997..46af552 100644 --- a/src/main/java/io/zipcoder/io/zipcoder/pets/Compare.java +++ b/src/main/java/io/zipcoder/io/zipcoder/pets/Compare.java @@ -5,11 +5,12 @@ public class Compare implements Comparator { public int compare(Pet o1, Pet o2) { + int comparable = o1.getClass().getSimpleName().compareTo(o2.getClass().getSimpleName()); if(comparable == 0) { return 0; - }else if(comparable == 1) { + }else if(comparable > 0) { return 1; }else { return -1; diff --git a/src/main/java/io/zipcoder/io/zipcoder/pets/Pet.java b/src/main/java/io/zipcoder/io/zipcoder/pets/Pet.java index 153b30b..ca4ca5b 100644 --- a/src/main/java/io/zipcoder/io/zipcoder/pets/Pet.java +++ b/src/main/java/io/zipcoder/io/zipcoder/pets/Pet.java @@ -1,5 +1,7 @@ package io.zipcoder.io.zipcoder.pets; +import io.zipcoder.PetUtils; + import java.util.Comparator; import java.util.List; import java.util.TreeMap;