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
118 changes: 118 additions & 0 deletions src/main/java/object/christopherbennett/Dog.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
package object.christopherbennett;

public class Dog {
public String name;
public String breed;
public String size;
public int age;
public int happinessLevel;


public Dog(String name, String breed, String size, int age, int happinessLevel) {
this.name = name;
this.breed = breed;
this.size = size;
this.age = age;
this.happinessLevel = happinessLevel;
}

public String getName() {
return name;
}

public String getBreed() {
return breed;
}

public String getSize() {
return size;
}

public int getAge() {
return age;
}

public int getHappinessLevel() {
return happinessLevel;
}

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

public void setBreed(String breed) {
this.breed = breed;
}

public void setSize(String size) {
if(!size.equals("small") && !size.equals("medium") && !size.equals("large")) {
throw new IllegalArgumentException("Invalid size: " + size + ". t has to be Small, Medium or Large!");
}
this.size = size;
}

public void setAge(int age) {
this.age = age;
}

public void setHappinessLevel(int happinessLevel) {
if(happinessLevel > 100) {
System.out.println("Happiness Overload!");
System.out.println("Resetting to 100.");
happinessLevel = 100;
}

if(happinessLevel < 0) {
System.out.println("Happiness underload!");
System.out.println("Resetting to 1.");
happinessLevel = 1;
}

this.happinessLevel = happinessLevel;
}

public boolean bark() {

if(breed.toLowerCase().equals("corgi")) {
System.out.println("Corgis cannot bark!");
return false;
}

if(happinessLevel <= 30) {
System.out.println("This dog is too sad to Bark!");
return false;
}

if(happinessLevel >= 90) {
System.out.println("This dog is too happy to Bark!");
return false;
}

System.out.println("Bark! Bark!");
return true;
}

public boolean bite() {

if(name.toLowerCase().equals("princess") || name.toLowerCase().equals("cupcake")) {
System.out.println("All dogs named Princess or Cupcake will bite anyone!");
System.out.println("Bite Bite Chomp!");
return true;
}

if(age >= 11) {
System.out.println("This dog is too old to bite!");
return false;
}

if(size.equals("small")) {
System.out.println("Bite Bite Chomp!");
return true;
}
else {
System.out.println("Nope, all dogs know this important fact:");
System.out.println("Only Small Dogs are allowed to bite people!");
}
return false;
}
}
94 changes: 94 additions & 0 deletions src/test/java/object/christopherbennett/DogTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
package object.christopherbennett;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.*;

public class DogTest {

@Test
public void testNewDogsCanBeMade() {

Dog michaelDog = new Dog("Lola", "Pincher", "small", 14, 100);

Assertions.assertEquals("Lola", michaelDog.getName());
Assertions.assertEquals("Pincher", michaelDog.getBreed());
Assertions.assertEquals("small", michaelDog.getSize());
Assertions.assertEquals(14, michaelDog.getAge());
Assertions.assertEquals(100, michaelDog.getHappinessLevel());
}

@Test public void testDogSetters() {
Dog newDog = new Dog("NewDog", "NewBreed", "medium", 10, 60);

newDog.setBreed("beagle");
newDog.setAge(11);
newDog.setName("Barks");
newDog.setHappinessLevel(80);

Assertions.assertEquals("beagle", newDog.getBreed());
Assertions.assertEquals(11, newDog.getAge());
Assertions.assertEquals("Barks", newDog.name);
Assertions.assertEquals(80, newDog.getHappinessLevel());
}


@Test
public void testIfDogTooBigToBite() {

Dog bobbyDog = new Dog("Zeus", "pitbull", "large", 3, 100);
Assertions.assertEquals(false, bobbyDog.bite());
}

@Test
public void testIfDogCantBarkIfOld() {
Dog jordanDog = new Dog("LilBitey", "pug", "medium", 15, 100);
Assertions.assertEquals(false, jordanDog.bite());
}

@Test
public void testIfDogBreedCantBark() {
Dog corgiDog = new Dog("Corgs", "corgi", "medium", 8, 87);
Assertions.assertEquals(false, corgiDog.bark());
}

@Test
public void testIfDogNamedPrincessCanBite() {
Dog princessDog = new Dog("Princess", "pitbull", "large", 11, 75);
Assertions.assertEquals(true, princessDog.bite());
}

@Test
public void testIfhappyDogsCantBark() {
Dog happyDog = new Dog("Happy", "labrador", "large", 7, 99);
Assertions.assertEquals(false, happyDog.bark());
}

@Test
public void testIfSadDogsCantBark() {
Dog sadDog = new Dog("Droppy", "bloodhound", "large", 9, 29);
Assertions.assertEquals(false, sadDog.bark());
}

@Test
public void testDogCorrectSize() {

Dog dog2 = new Dog("bigBeag", "beagle", "kinda big", 10, 49);
Assertions.assertThrows(IllegalArgumentException.class, () -> {
dog2.setSize("Random Size");
});
}

@Test
public void testDogSetHappiness() {
Dog dog3 = new Dog("Dogman", "puggle", "medium", 10, 50);
Dog dog4 = new Dog("Big Dog", "great dane", "large", 10, 5);

dog3.setHappinessLevel(1001);
dog4.setHappinessLevel(-5);

Assertions.assertEquals(100, dog3.getHappinessLevel());
Assertions.assertEquals(1, dog4.getHappinessLevel());
}

}