From bed3bffc09e81d34ea450f35a25546dfb8928890 Mon Sep 17 00:00:00 2001 From: BennettDeveloper Date: Mon, 9 Mar 2026 15:13:56 -0400 Subject: [PATCH] Implemented Tests for Dog class --- .../java/object/christopherbennett/Dog.java | 118 ++++++++++++++++++ .../object/christopherbennett/DogTest.java | 94 ++++++++++++++ 2 files changed, 212 insertions(+) create mode 100644 src/main/java/object/christopherbennett/Dog.java create mode 100644 src/test/java/object/christopherbennett/DogTest.java diff --git a/src/main/java/object/christopherbennett/Dog.java b/src/main/java/object/christopherbennett/Dog.java new file mode 100644 index 0000000..8d6ea83 --- /dev/null +++ b/src/main/java/object/christopherbennett/Dog.java @@ -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; + } +} diff --git a/src/test/java/object/christopherbennett/DogTest.java b/src/test/java/object/christopherbennett/DogTest.java new file mode 100644 index 0000000..accc23c --- /dev/null +++ b/src/test/java/object/christopherbennett/DogTest.java @@ -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()); + } + +}