Skip to content

Pets Talk Back #72

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,18 @@
<groupId>io.zipcoder</groupId>
<artifactId>polymorphism-1</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>14</source>
<target>14</target>
</configuration>
</plugin>
</plugins>
</build>
<packaging>jar</packaging>

<name>interfaces-1</name>
Expand Down
11 changes: 11 additions & 0 deletions src/main/java/io/zipcoder/polymorphism/Cat.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package io.zipcoder.polymorphism;

public class Cat extends Pet{
public Cat(String name) {
super(name);
}

public String speak(){
return "Purrrr";
}
}
17 changes: 17 additions & 0 deletions src/main/java/io/zipcoder/polymorphism/Dog.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package io.zipcoder.polymorphism;

public class Dog extends Pet{
String breed;

public Dog(String name) {
super(name);
}
public Dog (String name, String breed){
super(name);
this.breed = breed;
}

public String speak(){
return "Woof woof!";
}
}
97 changes: 97 additions & 0 deletions src/main/java/io/zipcoder/polymorphism/MainApplication.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,101 @@
package io.zipcoder.polymorphism;

import com.sun.tools.javac.Main;

import java.util.ArrayList;
import java.util.Scanner;

public class MainApplication {
ArrayList <Pet> petList = new ArrayList<>();
public static void main(String[] args) {
MainApplication app = new MainApplication();
Scanner in = new Scanner(System.in);
System.out.println("How many pets do you have?");
int value = in.nextInt();
while (value > 0) {
System.out.println("Is it a dog, cat, parrot, or other");
String type = in.next().toLowerCase();
switch (type){
case "dog":
System.out.println("What's your dog's name?");
String name = in.next();
app.addDog(name);
System.out.println("Next pet...");
break;
case "cat":
System.out.println("What's your cat's name?");
String catName = in.next();
app.addCat(catName);
System.out.println("Next pet...");
break;
case "parrot":
System.out.println("What's your parrot's name");
String birdName = in.next();
app.addParrot(birdName);
System.out.println("Next pet...");
break;
default:
System.out.println("Name it");
String petName = in.next();
app.addPet(petName);
System.out.println("Next pet...");
break;
}
value--;

}
System.out.println(app.printListWithSound());
}

public int getValue(String input){
return Integer.parseInt(input);
}

public String printList(){
StringBuilder print = new StringBuilder();
for (Pet pet : petList) {
print.append(pet.getName());
print.append("\n");
}
return print.toString();
}

public void addPet(String name){
Pet pet = new Pet(name);
petList.add(pet);

}

public void addDog(String name){
Pet pet = new Dog(name);
petList.add(pet);

}

public void addCat(String name){
Pet pet = new Cat(name);
petList.add(pet);

}

public void addParrot(String name){
Pet pet = new Parrot(name);
petList.add(pet);

}

public int getSize() {
return petList.size();
}

public String printListWithSound(){
StringBuilder print = new StringBuilder();
for (Pet pet : petList) {
print.append(pet.getName());
print.append(" goes ");
print.append(pet.speak());
print.append("\n");
}
return print.toString();
}
}
11 changes: 11 additions & 0 deletions src/main/java/io/zipcoder/polymorphism/Parrot.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package io.zipcoder.polymorphism;

public class Parrot extends Pet{
public Parrot(String name) {
super(name);
}

public String speak(){
return "I do what I want";
}
}
22 changes: 22 additions & 0 deletions src/main/java/io/zipcoder/polymorphism/Pet.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package io.zipcoder.polymorphism;

public class Pet {

String name;
public Pet(String name) {
this.name = name;
}


public String getName() {
return this.name;
}

public void setName(String newName) {
this.name = newName;
}

public String speak(){
return "screech";
}
}
35 changes: 35 additions & 0 deletions src/test/java/io/zipcoder/polymorphism/CatTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package io.zipcoder.polymorphism;

import org.junit.Assert;
import org.junit.Test;

public class CatTest {

@Test
public void catConstructorTest(){
//given
String name = "Zazzy";

//when
Pet cat = new Cat(name);
String actual = cat.getName();

//then
Assert.assertEquals(name, actual);
}

@Test
public void catSpeakTest(){
//given
String name = "Zazzy";
String expected = "Purrrr";

//when
Pet cat = new Cat(name);
String sound = cat.speak();

//then
Assert.assertEquals(expected, sound);

}
}
35 changes: 35 additions & 0 deletions src/test/java/io/zipcoder/polymorphism/DogTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package io.zipcoder.polymorphism;

import org.junit.Assert;
import org.junit.Test;

public class DogTest {

@Test
public void dogConstructorTest(){
//given
String name = "JoJo";

//when
Pet dog = new Dog(name);
String actual = dog.getName();

//then
Assert.assertEquals(name, actual);
}

@Test
public void dogSpeakTest(){
//given
String name = "JoJo";
String expected = "Woof woof!";

//when
Pet dog = new Dog(name);
String sound = dog.speak();

//then
Assert.assertEquals(expected, sound);

}
}
132 changes: 131 additions & 1 deletion src/test/java/io/zipcoder/polymorphism/MainApplicationTest.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,138 @@
package io.zipcoder.polymorphism;

import org.junit.Assert;
import org.junit.Test;

import java.util.ArrayList;
import java.util.Arrays;

public class MainApplicationTest {
@Test
public void testMe(){}
public void testMe(){
//given
String input = "4";
Integer expected = 4;

//when
MainApplication app = new MainApplication();
Integer value = app.getValue(input);

//then
Assert.assertEquals(expected, value);

}

@Test
public void printListTest(){
//given
Pet pet1 = new Pet("Lola");
Pet pet2 = new Pet ("Bromley");
Pet pet3 = new Pet("Sammie");
ArrayList<Pet> petList = new ArrayList<>();

//when
petList.add(pet1);
petList.add(pet2);
petList.add(pet3);
String pet1Name = petList.get(0).getName();
String sound = petList.get(0).speak();

//then
Assert.assertEquals("Lola", pet1Name);
Assert.assertEquals("screech", sound);

}

@Test
public void printTest2(){
//given
Pet pet1 = new Pet("Lola");
Pet pet2 = new Pet ("Bromley");
Pet pet3 = new Pet("Sammie");
MainApplication app = new MainApplication();

//when
app.petList.add(pet1);
app.petList.add(pet2);
app.petList.add(pet3);

//then
String print = app.printList();
System.out.println(print);
}

@Test
public void addPetTest(){
//given
String name = "Scabbers";
MainApplication app = new MainApplication();
int expected = 1;

//when
app.addPet(name);
int actual = app.getSize();

//then
Assert.assertEquals(expected, actual);
}

@Test
public void printDogTest(){
//given
String name = "Bronco";
MainApplication app = new MainApplication();
String expected = "Woof woof!";

//when
app.addDog(name);
String petName = app.petList.get(0).getName();
String sound = app.petList.get(0).speak();

//then
Assert.assertEquals(name, petName);
Assert.assertEquals(expected, sound);

}

@Test
public void printDogAndCatTest(){
//given
String name = "Bronco";
String catName = "Persia";
MainApplication app = new MainApplication();
String expected = "Purrrr";

//when
app.addDog(name);
app.addCat(catName);
String petName = app.petList.get(1).getName();
String sound = app.petList.get(1).speak();

//then
Assert.assertEquals(catName, petName);
Assert.assertEquals(expected, sound);

}

@Test
public void printParrotTest(){
//given
String name = "Bronco";
String catName = "Persia";
String parrotName = "Charlie";
MainApplication app = new MainApplication();
String expected = "I do what I want";

//when
app.addDog(name);
app.addCat(catName);
app.addParrot(parrotName);
String petName = app.petList.get(2).getName();
String sound = app.petList.get(2).speak();

//then
Assert.assertEquals(parrotName, petName);
Assert.assertEquals(expected, sound);

}
}
Loading