From 3e94afc03b9f0722c5bf5d435231634548bf4718 Mon Sep 17 00:00:00 2001 From: Daniel Horowitz Date: Mon, 26 Feb 2018 14:34:54 -0500 Subject: [PATCH 1/5] ready for tests --- src/main/java/io/zipcoder/Application.java | 24 +++++++++++++++++++ src/main/java/io/zipcoder/Cat.java | 17 +++++++++++++ src/main/java/io/zipcoder/Dog.java | 16 +++++++++++++ src/main/java/io/zipcoder/Pets.java | 28 ++++++++++++++++++++++ src/main/java/io/zipcoder/Snake.java | 16 +++++++++++++ src/test/java/io/zipcoder/CatTest.java | 7 ++++++ src/test/java/io/zipcoder/DogTest.java | 7 ++++++ src/test/java/io/zipcoder/PetsTest.java | 7 ++++++ src/test/java/io/zipcoder/SnakeTest.java | 7 ++++++ 9 files changed, 129 insertions(+) create mode 100644 src/main/java/io/zipcoder/Cat.java create mode 100644 src/main/java/io/zipcoder/Dog.java create mode 100644 src/main/java/io/zipcoder/Pets.java create mode 100644 src/main/java/io/zipcoder/Snake.java create mode 100644 src/test/java/io/zipcoder/CatTest.java create mode 100644 src/test/java/io/zipcoder/DogTest.java create mode 100644 src/test/java/io/zipcoder/PetsTest.java create mode 100644 src/test/java/io/zipcoder/SnakeTest.java diff --git a/src/main/java/io/zipcoder/Application.java b/src/main/java/io/zipcoder/Application.java index 3a257cb..4bcbd17 100644 --- a/src/main/java/io/zipcoder/Application.java +++ b/src/main/java/io/zipcoder/Application.java @@ -1,5 +1,29 @@ package io.zipcoder; +import java.util.ArrayList; +import java.util.Scanner; public class Application { + + + private int numberOfPets = 0; + private String typeOfPet; + private String nameOfPet; + private ArrayList allPets; + + Scanner userInput = new Scanner(System.in); + + + public void getPetInfo() { + System.out.println("How many pets do you have?"); + numberOfPets = userInput.nextInt(); + + + } + + + + + + } diff --git a/src/main/java/io/zipcoder/Cat.java b/src/main/java/io/zipcoder/Cat.java new file mode 100644 index 0000000..fd9e502 --- /dev/null +++ b/src/main/java/io/zipcoder/Cat.java @@ -0,0 +1,17 @@ +package io.zipcoder; + +public class Cat extends Pets { + + public Cat() { + + + } + + + @Override + public String speak() { + + return "meow"; + } + +} diff --git a/src/main/java/io/zipcoder/Dog.java b/src/main/java/io/zipcoder/Dog.java new file mode 100644 index 0000000..93d1d6e --- /dev/null +++ b/src/main/java/io/zipcoder/Dog.java @@ -0,0 +1,16 @@ +package io.zipcoder; + +public class Dog extends Pets { + + + public Dog () { + + } + + + @Override + public String speak() { + return "bark"; + } + +} diff --git a/src/main/java/io/zipcoder/Pets.java b/src/main/java/io/zipcoder/Pets.java new file mode 100644 index 0000000..c22c190 --- /dev/null +++ b/src/main/java/io/zipcoder/Pets.java @@ -0,0 +1,28 @@ +package io.zipcoder; + +public abstract class Pets { + + public String name; + + + public Pets() { + + } + + + + + + + public String speak() { + return "I am a pet!"; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/src/main/java/io/zipcoder/Snake.java b/src/main/java/io/zipcoder/Snake.java new file mode 100644 index 0000000..ccacccc --- /dev/null +++ b/src/main/java/io/zipcoder/Snake.java @@ -0,0 +1,16 @@ +package io.zipcoder; + +public class Snake extends Pets { + + public Snake () { + + } + + @Override + public String speak() { + + return "hiss"; + } + + +} diff --git a/src/test/java/io/zipcoder/CatTest.java b/src/test/java/io/zipcoder/CatTest.java new file mode 100644 index 0000000..0a10abc --- /dev/null +++ b/src/test/java/io/zipcoder/CatTest.java @@ -0,0 +1,7 @@ +package io.zipcoder; + +import static org.junit.Assert.*; + +public class CatTest { + +} \ No newline at end of file diff --git a/src/test/java/io/zipcoder/DogTest.java b/src/test/java/io/zipcoder/DogTest.java new file mode 100644 index 0000000..27b3c3a --- /dev/null +++ b/src/test/java/io/zipcoder/DogTest.java @@ -0,0 +1,7 @@ +package io.zipcoder; + +import static org.junit.Assert.*; + +public class DogTest { + +} \ No newline at end of file diff --git a/src/test/java/io/zipcoder/PetsTest.java b/src/test/java/io/zipcoder/PetsTest.java new file mode 100644 index 0000000..07c6389 --- /dev/null +++ b/src/test/java/io/zipcoder/PetsTest.java @@ -0,0 +1,7 @@ +package io.zipcoder; + +import static org.junit.Assert.*; + +public class PetsTest { + +} \ No newline at end of file diff --git a/src/test/java/io/zipcoder/SnakeTest.java b/src/test/java/io/zipcoder/SnakeTest.java new file mode 100644 index 0000000..4fd1101 --- /dev/null +++ b/src/test/java/io/zipcoder/SnakeTest.java @@ -0,0 +1,7 @@ +package io.zipcoder; + +import static org.junit.Assert.*; + +public class SnakeTest { + +} \ No newline at end of file From 85d694c58bf58991a7e4f955e876e8f948c982ff Mon Sep 17 00:00:00 2001 From: Daniel Horowitz Date: Mon, 26 Feb 2018 16:01:06 -0500 Subject: [PATCH 2/5] maybe --- src/test/java/io/zipcoder/CatTest.java | 25 ++++++++++++++++++ src/test/java/io/zipcoder/DogTest.java | 26 ++++++++++++++++++- src/test/java/io/zipcoder/PetsTest.java | 15 +++++++++++ src/test/java/io/zipcoder/SnakeTest.java | 33 ++++++++++++++++++++++++ 4 files changed, 98 insertions(+), 1 deletion(-) diff --git a/src/test/java/io/zipcoder/CatTest.java b/src/test/java/io/zipcoder/CatTest.java index 0a10abc..e99bd3f 100644 --- a/src/test/java/io/zipcoder/CatTest.java +++ b/src/test/java/io/zipcoder/CatTest.java @@ -1,7 +1,32 @@ package io.zipcoder; +import org.junit.Assert; +import org.junit.Test; + import static org.junit.Assert.*; public class CatTest { + @Test + public void getNameOfCatsTest() { + + Cat cat = new Cat(); + cat.setName("Felix"); + String expected = "Felix"; + String actual = cat.getName(); + + Assert.assertEquals(expected, actual); + + } + + @Test + public void catSpeakTest() { + Cat cat = new Cat(); + String expected = "meow"; + String actual = cat.speak(); + + Assert.assertEquals(expected, actual); + + } + } \ No newline at end of file diff --git a/src/test/java/io/zipcoder/DogTest.java b/src/test/java/io/zipcoder/DogTest.java index 27b3c3a..c812f7d 100644 --- a/src/test/java/io/zipcoder/DogTest.java +++ b/src/test/java/io/zipcoder/DogTest.java @@ -1,7 +1,31 @@ package io.zipcoder; +import org.junit.Assert; +import org.junit.Test; + import static org.junit.Assert.*; public class DogTest { -} \ No newline at end of file + @Test + public void getNameOfDogsTest() { + + Dog dog = new Dog(); + dog.setName("Butch"); + String expected = "Butch"; + String actual = dog.getName(); + + Assert.assertEquals(expected, actual); + + } + + @Test + public void dogSpeakTest() { + Dog dog = new Dog(); + String expected = "bark"; + String actual = dog.speak(); + + Assert.assertEquals(expected, actual); + + } + } \ No newline at end of file diff --git a/src/test/java/io/zipcoder/PetsTest.java b/src/test/java/io/zipcoder/PetsTest.java index 07c6389..ab22d8a 100644 --- a/src/test/java/io/zipcoder/PetsTest.java +++ b/src/test/java/io/zipcoder/PetsTest.java @@ -1,7 +1,22 @@ package io.zipcoder; +import org.junit.Test; + import static org.junit.Assert.*; public class PetsTest { + @Test + public void getPetNameTest() { + + + } + + + @Test + public void speakTest() { + + } + + } \ No newline at end of file diff --git a/src/test/java/io/zipcoder/SnakeTest.java b/src/test/java/io/zipcoder/SnakeTest.java index 4fd1101..dd74325 100644 --- a/src/test/java/io/zipcoder/SnakeTest.java +++ b/src/test/java/io/zipcoder/SnakeTest.java @@ -1,7 +1,40 @@ package io.zipcoder; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + import static org.junit.Assert.*; public class SnakeTest { + @Before + public void setUp() { + } + + + @Test + public void getNameOfSnakesTest() { + + Snake snake = new Snake(); + snake.setName("Luke"); + String expected = "Luke"; + String actual = snake.getName(); + + Assert.assertEquals(expected, actual); + + } + + @Test + public void snakeSpeakTest() { + Snake snake = new Snake(); + String expected = "hiss"; + String actual = snake.speak(); + + Assert.assertEquals(expected, actual); + + + } + + } \ No newline at end of file From 631df14ad11cbd238aa6dd6f94d6b84fd6d33963 Mon Sep 17 00:00:00 2001 From: Daniel Horowitz Date: Tue, 27 Feb 2018 13:46:50 -0500 Subject: [PATCH 3/5] Implementing Comparator now --- src/main/java/io/zipcoder/Application.java | 49 ++++++++++++++++++++-- src/main/java/io/zipcoder/Cat.java | 4 +- src/main/java/io/zipcoder/Dog.java | 9 +++- src/main/java/io/zipcoder/PetFactory.java | 17 ++++++++ src/main/java/io/zipcoder/Pets.java | 13 +++--- src/main/java/io/zipcoder/Snake.java | 4 +- src/test/java/io/zipcoder/CatTest.java | 6 +-- src/test/java/io/zipcoder/DogTest.java | 6 +-- src/test/java/io/zipcoder/SnakeTest.java | 6 +-- 9 files changed, 91 insertions(+), 23 deletions(-) create mode 100644 src/main/java/io/zipcoder/PetFactory.java diff --git a/src/main/java/io/zipcoder/Application.java b/src/main/java/io/zipcoder/Application.java index 4bcbd17..c51204f 100644 --- a/src/main/java/io/zipcoder/Application.java +++ b/src/main/java/io/zipcoder/Application.java @@ -1,5 +1,6 @@ package io.zipcoder; import java.util.ArrayList; +import java.util.HashMap; import java.util.Scanner; @@ -7,22 +8,62 @@ public class Application { private int numberOfPets = 0; - private String typeOfPet; - private String nameOfPet; - private ArrayList allPets; + private ArrayList typeOfPet = new ArrayList(); + private ArrayList nameOfPet = new ArrayList(); + private ArrayList allPets = new ArrayList(); + + private HashMap allPetCollection = new HashMap(); Scanner userInput = new Scanner(System.in); public void getPetInfo() { - System.out.println("How many pets do you have?"); + System.out.println("Hey fool! How many pets do you have?"); numberOfPets = userInput.nextInt(); + userInput.nextLine(); + + if (numberOfPets > 0) { + for (int i = 0; i < numberOfPets; i++) { + String name; + String type; + System.out.println("What type of pet is pet #: " + (i +1) + "?\n Only enter Dog, Cat or Snake"); + type = userInput.nextLine(); + System.out.println("What is your " + type + "'s name?"); + name = userInput.nextLine(); + + this.allPets.add(PetFactory.createPet(type,name)); + } + } else getPetInfo(); + + } + + public void buildPetMap (ArrayList typeOfPet, ArrayList name) { + for (int i = 0; i < typeOfPet.size(); i++) { + allPetCollection.put(typeOfPet.get(i), nameOfPet.get(i)); + } + } + public String getPetFromMap(String key){ + return this.allPetCollection.get(key); + } + + + public void setNumberOfPets() { + this.numberOfPets =numberOfPets; + } + public Integer getNumberOfPets() { + return this.numberOfPets; } + public static void main(String[] args) { + + Application app = new Application(); + app.getPetInfo(); + } + diff --git a/src/main/java/io/zipcoder/Cat.java b/src/main/java/io/zipcoder/Cat.java index fd9e502..ad276b2 100644 --- a/src/main/java/io/zipcoder/Cat.java +++ b/src/main/java/io/zipcoder/Cat.java @@ -2,8 +2,8 @@ public class Cat extends Pets { - public Cat() { - + public Cat(String name) { + super(name); } diff --git a/src/main/java/io/zipcoder/Dog.java b/src/main/java/io/zipcoder/Dog.java index 93d1d6e..86d4802 100644 --- a/src/main/java/io/zipcoder/Dog.java +++ b/src/main/java/io/zipcoder/Dog.java @@ -3,11 +3,18 @@ public class Dog extends Pets { - public Dog () { + + + public Dog (String name) { + super(name); + } + + + @Override public String speak() { return "bark"; diff --git a/src/main/java/io/zipcoder/PetFactory.java b/src/main/java/io/zipcoder/PetFactory.java new file mode 100644 index 0000000..bcb4be3 --- /dev/null +++ b/src/main/java/io/zipcoder/PetFactory.java @@ -0,0 +1,17 @@ +package io.zipcoder; + +public class PetFactory { + + public static Pets createPet(String type, String name) { + + if (type.equalsIgnoreCase("Dog")) + return new Dog(name); + else if (type.equalsIgnoreCase("Cat")) + return new Cat(name); + else if (type.equalsIgnoreCase("Snake")) + return new Snake(name); + + return null; + } +} + diff --git a/src/main/java/io/zipcoder/Pets.java b/src/main/java/io/zipcoder/Pets.java index c22c190..d746a8e 100644 --- a/src/main/java/io/zipcoder/Pets.java +++ b/src/main/java/io/zipcoder/Pets.java @@ -1,11 +1,14 @@ package io.zipcoder; -public abstract class Pets { +import java.util.Comparator; + +public abstract class Pets implements Comparable, Comparator{ public String name; - public Pets() { + public Pets(String name) { + this.name = name; } @@ -14,9 +17,9 @@ public Pets() { - public String speak() { - return "I am a pet!"; - } + public abstract String speak(); + + public String getName() { return name; diff --git a/src/main/java/io/zipcoder/Snake.java b/src/main/java/io/zipcoder/Snake.java index ccacccc..cd8d011 100644 --- a/src/main/java/io/zipcoder/Snake.java +++ b/src/main/java/io/zipcoder/Snake.java @@ -2,8 +2,8 @@ public class Snake extends Pets { - public Snake () { - + public Snake (String name) { + super(name); } @Override diff --git a/src/test/java/io/zipcoder/CatTest.java b/src/test/java/io/zipcoder/CatTest.java index e99bd3f..78af56e 100644 --- a/src/test/java/io/zipcoder/CatTest.java +++ b/src/test/java/io/zipcoder/CatTest.java @@ -10,8 +10,8 @@ public class CatTest { @Test public void getNameOfCatsTest() { - Cat cat = new Cat(); - cat.setName("Felix"); + Cat cat = new Cat("Felix"); + String expected = "Felix"; String actual = cat.getName(); @@ -21,7 +21,7 @@ public void getNameOfCatsTest() { @Test public void catSpeakTest() { - Cat cat = new Cat(); + Cat cat = new Cat("Felix"); String expected = "meow"; String actual = cat.speak(); diff --git a/src/test/java/io/zipcoder/DogTest.java b/src/test/java/io/zipcoder/DogTest.java index c812f7d..0ef2e23 100644 --- a/src/test/java/io/zipcoder/DogTest.java +++ b/src/test/java/io/zipcoder/DogTest.java @@ -10,8 +10,8 @@ public class DogTest { @Test public void getNameOfDogsTest() { - Dog dog = new Dog(); - dog.setName("Butch"); + Dog dog = new Dog("Butch"); + String expected = "Butch"; String actual = dog.getName(); @@ -21,7 +21,7 @@ public void getNameOfDogsTest() { @Test public void dogSpeakTest() { - Dog dog = new Dog(); + Dog dog = new Dog(""); String expected = "bark"; String actual = dog.speak(); diff --git a/src/test/java/io/zipcoder/SnakeTest.java b/src/test/java/io/zipcoder/SnakeTest.java index dd74325..f7e701a 100644 --- a/src/test/java/io/zipcoder/SnakeTest.java +++ b/src/test/java/io/zipcoder/SnakeTest.java @@ -16,8 +16,8 @@ public void setUp() { @Test public void getNameOfSnakesTest() { - Snake snake = new Snake(); - snake.setName("Luke"); + Snake snake = new Snake("Luke"); + String expected = "Luke"; String actual = snake.getName(); @@ -27,7 +27,7 @@ public void getNameOfSnakesTest() { @Test public void snakeSpeakTest() { - Snake snake = new Snake(); + Snake snake = new Snake("Luke"); String expected = "hiss"; String actual = snake.speak(); From 59b0baae57f1ae51b23903cad185d066d1b294a3 Mon Sep 17 00:00:00 2001 From: Daniel Horowitz Date: Tue, 27 Feb 2018 14:09:52 -0500 Subject: [PATCH 4/5] tests for pete --- src/main/java/io/zipcoder/Pets.java | 31 ++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/src/main/java/io/zipcoder/Pets.java b/src/main/java/io/zipcoder/Pets.java index d746a8e..4c0e1dc 100644 --- a/src/main/java/io/zipcoder/Pets.java +++ b/src/main/java/io/zipcoder/Pets.java @@ -2,7 +2,7 @@ import java.util.Comparator; -public abstract class Pets implements Comparable, Comparator{ +public abstract class Pets implements Comparable, Comparator { public String name; @@ -13,14 +13,9 @@ public Pets(String name) { } - - - - public abstract String speak(); - public String getName() { return name; } @@ -28,4 +23,26 @@ public String getName() { public void setName(String name) { this.name = name; } -} + + public int compareTo(Pets pet) { + int compare = this.getName().compareToIgnoreCase(pet.getName()); + + if (compare != 0) { + return compare; + } else { + compare = this.getClass().getSimpleName().compareToIgnoreCase(pet.getClass().getSimpleName()); + return compare; + } + } + + public int compare(Pets pet1, Pets pet2) { + int compare = pet1.getClass().getSimpleName().compareToIgnoreCase(pet2.getClass().getSimpleName()); + if (compare != 0) { + return compare; + } else { + compare = pet1.getName().compareToIgnoreCase(pet2.getName()); + return compare; + + } + } +} \ No newline at end of file From 9b32279868ca11b1f2a27dc03100c65f53a0c0c2 Mon Sep 17 00:00:00 2001 From: Daniel Horowitz Date: Tue, 27 Feb 2018 14:26:47 -0500 Subject: [PATCH 5/5] Slowly it works --- src/main/java/io/zipcoder/Application.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/io/zipcoder/Application.java b/src/main/java/io/zipcoder/Application.java index c51204f..cf6b76c 100644 --- a/src/main/java/io/zipcoder/Application.java +++ b/src/main/java/io/zipcoder/Application.java @@ -56,12 +56,18 @@ public Integer getNumberOfPets() { return this.numberOfPets; } + public void allPetsSpeak() { + for (Pets pet : allPets) { + System.out.println("Your " + pet.getClass().getSimpleName() + " named " + pet.getName() + " says " + pet.speak() +"!"); + } + } public static void main(String[] args) { Application app = new Application(); app.getPetInfo(); + app.allPetsSpeak(); }