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
7 changes: 7 additions & 0 deletions src/main/java/io/zipcoder/polymorphism/Animal.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package io.zipcoder.polymorphism;

public interface Animal {

String speak();

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

public class Bear extends Pet implements Animal {


public Bear(String name) {
super(name);
}

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


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

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

public class Cat extends Pet implements Animal {

public Cat(String name) {
super(name);
}

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

public String speak() {
return "Meow!";
}

public void setName(String name) {
this.name = name;
}
}
21 changes: 21 additions & 0 deletions src/main/java/io/zipcoder/polymorphism/Dog.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package io.zipcoder.polymorphism;

public class Dog extends Pet implements Animal{


public Dog(String name) {
super(name);
}

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

public String speak() {
return "Woof!";
}

public void setName(String name) {
this.name = name;
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
package io.zipcoder.polymorphism;

public class MainApplication {

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

public abstract class Pet implements Animal{
String name;

public Pet(String name) {
this.name = name;
}
}
60 changes: 60 additions & 0 deletions src/test/java/io/zipcoder/polymorphism/TestBear.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
package io.zipcoder.polymorphism;

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

public class TestBear {
@Test
public void bearConstructorTest() {
//Given
String given = "Bubbles";
//When
Bear bear = new Bear(given);
String expected = bear.getName();
//Then
Assert.assertEquals(given, expected);
}

@Test
public void speakTest() {
//Given
Bear bear = new Bear("Bubbles");
String given = "Roar!";
//When
String expected = bear.speak();
//Then
Assert.assertEquals(given, expected);
}

@Test
public void setNameTest() {
//Given
Bear bear = new Bear("");
String given = "Bubbles";

//When
bear.setName(given);

//Then
String expected = bear.getName();
Assert.assertEquals(given, expected);
}

@Test
public void inheritanceOfPetTest() {

Bear bear = new Bear("Bubbles");
Assert.assertTrue(bear instanceof Pet);

}

@Test
public void inheritanceOfAnimalTest() {

Bear bear = new Bear("Bubbles");
Assert.assertTrue(bear instanceof Animal);

}

}

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

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

public class TestCat {
@Test
public void catConstructorTest(){
//Given
String given = "Ellie";
//When
Cat cat = new Cat(given);
String expected = cat.getName();
//Then
Assert.assertEquals(given, expected);
}

@Test
public void speakTest(){
//given
Cat cat = new Cat("Ellie");
String given = "Meow!";
//when
String expected = cat.speak();
//then
Assert.assertEquals(given, expected);
}

@Test
public void setNameTest() {
//Given
Cat cat = new Cat("");
String given = "Ellie";

//When
cat.setName(given);

//Then
String expected = cat.getName();
Assert.assertEquals(given, expected);
}

@Test
public void inheritanceOfPetTest(){

Cat cat = new Cat("Ellie");
Assert.assertTrue(cat instanceof Pet);

}

@Test
public void inheritanceOfAnimalTest(){

Cat cat = new Cat("Ellie");
Assert.assertTrue(cat instanceof Animal);

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

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

public class TestDog {
@Test
public void dogConstructorTest() {
//Given
String given = "Spot";
//When
Dog dog = new Dog(given);
String expected = dog.getName();
//Then
Assert.assertEquals(given, expected);
}

@Test
public void speakTest() {
//Given
Dog dog = new Dog("Spot");
String given = "Woof!";
//When
String expected = dog.speak();
//Then
Assert.assertEquals(given, expected);
}

@Test
public void setNameTest() {
// Given
Dog dog = new Dog("");
String given = "Spot";

// When
dog.setName(given);

// Then
String expected = dog.getName();
Assert.assertEquals(given, expected);
}

@Test
public void inheritanceOfPetTest() {

Dog dog = new Dog("Spot");
Assert.assertTrue(dog instanceof Pet);

}

@Test
public void inheritanceOfAnimalTest() {

Dog dog = new Dog("Spot");
Assert.assertTrue(dog instanceof Animal);

}
}