Skip to content
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
25 changes: 25 additions & 0 deletions src/main/java/io/zipcoder/pets/Cat.java
Original file line number Diff line number Diff line change
@@ -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!";
}
}
25 changes: 25 additions & 0 deletions src/main/java/io/zipcoder/pets/Dog.java
Original file line number Diff line number Diff line change
@@ -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!";
}
}
25 changes: 25 additions & 0 deletions src/main/java/io/zipcoder/pets/Duck.java
Original file line number Diff line number Diff line change
@@ -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!";
}
}
29 changes: 29 additions & 0 deletions src/main/java/io/zipcoder/pets/Pet.java
Original file line number Diff line number Diff line change
@@ -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";
}

}

88 changes: 88 additions & 0 deletions src/main/java/io/zipcoder/polymorphism/Console.java
Original file line number Diff line number Diff line change
@@ -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<Pet> storePets = new ArrayList<Pet>();

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);



5 changes: 5 additions & 0 deletions src/main/java/io/zipcoder/polymorphism/MainApplication.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
package io.zipcoder.polymorphism;

public class MainApplication {

public static void main(String[] args) {
Console console = new Console();
console.enterNumber();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
import org.junit.Test;

public class MainApplicationTest {
@Test
public void testMe(){}
@Test
public void testMe() {

}
}

47 changes: 47 additions & 0 deletions src/test/java/io/zipcoder/polymorphism/TestCat.java
Original file line number Diff line number Diff line change
@@ -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);
}
}

49 changes: 49 additions & 0 deletions src/test/java/io/zipcoder/polymorphism/TestDog.java
Original file line number Diff line number Diff line change
@@ -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);

}

}
48 changes: 48 additions & 0 deletions src/test/java/io/zipcoder/polymorphism/TestDuck.java
Original file line number Diff line number Diff line change
@@ -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);
}
}
Loading