diff --git a/.github/.keep b/.github/.keep new file mode 100644 index 0000000..e69de29 diff --git a/.github/workflows/classroom.yml b/.github/workflows/classroom.yml new file mode 100644 index 0000000..7a5ca35 --- /dev/null +++ b/.github/workflows/classroom.yml @@ -0,0 +1,29 @@ +name: Autograding Tests +'on': +- workflow_dispatch +- repository_dispatch +permissions: + checks: write + actions: read + contents: read +jobs: + run-autograding-tests: + runs-on: ubuntu-latest + if: github.actor != 'github-classroom[bot]' + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Exercises + id: exercises + uses: classroom-resources/autograding-command-grader@v1 + with: + test-name: Exercises + setup-command: '' + command: mvn clean verify + timeout: 10 + - name: Autograding Reporter + uses: classroom-resources/autograding-grading-reporter@v1 + env: + EXERCISES_RESULTS: "${{steps.exercises.outputs.result}}" + with: + runners: exercises diff --git a/src/main/java/com/serenitydojo/Cat.java b/src/main/java/com/serenitydojo/Cat.java index d80e6b3..c870ddb 100644 --- a/src/main/java/com/serenitydojo/Cat.java +++ b/src/main/java/com/serenitydojo/Cat.java @@ -1,37 +1,66 @@ package com.serenitydojo; -public class Cat { - private String name; +public class Cat extends Pet { + private String favoriteFood; private String favoriteToy; - private int age; - public Cat(String name, String favoriteToy, int age) { - this.name = name; - this.favoriteToy = favoriteToy; - this.age = age; + public static final String CAT_SOUND = "meow"; + + public static String usualFood(){ + return "Tuna"; } + public Cat(String name, int age){ + super(name,age); + this.favoriteFood = usualFood(); + - public String getName() { - return name; } + public Cat(String name, int age,String favoriteToy) { + super(name,age); + this.favoriteToy = favoriteToy; + } + public Cat(String name, String favoriteFood, int age){ + super(name,age); + this.favoriteFood = favoriteFood; + - public void setName(String name) { - this.name = name; } - public String getFavoriteToy() { + + + public String getFavoriteFood(){ + return favoriteFood; + } + public String getFavoriteToy(){ return favoriteToy; } - public void setFavoriteToy(String favoriteToy) { - this.favoriteToy = favoriteToy; + + @Override + public String makeNoise(){ + return CAT_SOUND; } - public int getAge() { - return age; + + public void feed(String food) { + System.out.println(getName() + "eats " + food); + } + public void groom(){ + lickPaw(); + cleanFur(); } - public void setAge(int age) { - this.age = age; + private void cleanFur() { + System.out.println(getName() + "cleans fur"); } + + private void lickPaw() { + System.out.println(getName() + "licks paw"); + } + @Override + public String play(){ + return "plays with string"; + + } + } diff --git a/src/main/java/com/serenitydojo/Dog.java b/src/main/java/com/serenitydojo/Dog.java index 6775395..6acd19c 100644 --- a/src/main/java/com/serenitydojo/Dog.java +++ b/src/main/java/com/serenitydojo/Dog.java @@ -1,51 +1,35 @@ package com.serenitydojo; -public class Dog { - private String name; +public class Dog extends Pet{ + private String favoriteToy; - private int age; private boolean isFed = false; public static final String DOG_NOISE = "Woof"; public Dog(String name, String favoriteToy, int age) { - this.name = name; + super(name,age); this.favoriteToy = favoriteToy; - this.age = age; - } - - public String getName() { - return name; - } - public void setName(String name) { - this.name = name; } public String getFavoriteToy() { return favoriteToy; } - public void setFavoriteToy(String favoriteToy) { - this.favoriteToy = favoriteToy; - } - - public int getAge() { - return age; - } - - public void setAge(int age) { - this.age = age; - } - public boolean isFed() { return isFed; } // Exercise 4 + @Override public String makeNoise() {return DOG_NOISE;} public void feed() { this.isFed = true; } + @Override + public String play(){ + return "plays with bone"; + } } diff --git a/src/main/java/com/serenitydojo/Hampster.java b/src/main/java/com/serenitydojo/Hampster.java new file mode 100644 index 0000000..c4832fc --- /dev/null +++ b/src/main/java/com/serenitydojo/Hampster.java @@ -0,0 +1,27 @@ +package com.serenitydojo; + +public class Hampster extends Pet { + private String favoritegame; + + + public Hampster(String name,String favoritegame,int age){ + super(name,age); + this.favoritegame = favoritegame; + + } + public String getFavoritegame(){ + return favoritegame; + } + + @Override + public String makeNoise(){ + return "Squeaky"; + } + @Override + public String play(){ + return "runs in wheel"; + } + + + +} diff --git a/src/main/java/com/serenitydojo/Pet.java b/src/main/java/com/serenitydojo/Pet.java new file mode 100644 index 0000000..fffdae4 --- /dev/null +++ b/src/main/java/com/serenitydojo/Pet.java @@ -0,0 +1,28 @@ +package com.serenitydojo; +public abstract class Pet { + private String name; + private int age; + + public Pet(String name, int age){ + this.name = name; + this.age = age; + } + + + public String getName(){ + return name; + } + public int getAge(){ + return age; + } + public String gorForWalks(){ + return "walk walk walk"; + } + + public abstract String makeNoise(); + + public abstract String play(); + + + +} diff --git a/src/test/java/com/serenitydojo/WhenCreatingObjects.java b/src/test/java/com/serenitydojo/WhenCreatingObjects.java index 97f47b7..ad15a77 100644 --- a/src/test/java/com/serenitydojo/WhenCreatingObjects.java +++ b/src/test/java/com/serenitydojo/WhenCreatingObjects.java @@ -6,47 +6,89 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.IsEqual.equalTo; +import static com.serenitydojo.Cat.usualFood; + + public class WhenCreatingObjects { @Test - public void creating_a_dog() { - Dog fido = new Dog("Fido","Bone", 5); - Assert.assertEquals(fido.getName(), "Fido"); - Assert.assertEquals(fido.getFavoriteToy(), "Bone"); - Assert.assertEquals(fido.getAge(), 5); - } + public void creating_a_cat(){ + String name = "felix"; + String favoriteFood = "Tuna"; + int age = 5; - @Test - public void whenADogBarks() { - Dog fido = new Dog("Fido","Bone", 5); + Cat felix = new Cat("Felix",4); + System.out.println(felix.getName()); + System.out.println(felix.getFavoriteFood()); + System.out.println(felix.getAge()); + + Cat spot = new Cat("Spot","Salmon",3); + System.out.println(spot.getName()); + System.out.println(spot.getFavoriteFood()); + + Dog fido = new Dog("Fido","Bone",5); + fido.makeNoise(); + // Pet hamster = new Pet("Rusty"); - String dogSound = ""; - // TODO: implement a method in the Dog sound called makeNoise() that returns the sound a dog makes: "Woof", e.g. - dogSound = fido.makeNoise(); - Assert.assertEquals(dogSound, "Woof"); } @Test - public void whenADogGetsFed() { - Dog fido = new Dog("Fido","Bone", 5); + public void creating_a_dog(){ + String name = "Fido"; + String favoriteToy = "Bone"; + int age = 5; - // TODO: implement a method in the Dog sound called feed() that sets the isFed variable to true: - fido.feed(); + Dog fido = new Dog("Fido","Bone",5); + Assert.assertEquals(fido.getName(),"Fido"); + Assert.assertEquals(fido.getFavoriteToy(),"Bone"); + Assert.assertEquals(fido.getAge(),5); + + + + + } + @Test + public void cat_makes_noise(){ + Cat felix = new Cat("Felix",4); + Cat spot = new Cat("Spot","Salmon",3); - Assert.assertTrue(fido.isFed()); + System.out.println("Cats favorite food is " + usualFood()); + System.out.println("felix goes " + felix.makeNoise()); + spot.makeNoise(); + felix.feed("Tuna"); + felix.groom(); + } + public void creating_a_hampster(){ + Hampster rusty = new Hampster("Rusty","Wheel",1); } + @Test + public void dog_makes_noise() { + Dog fido = new Dog("Fido", "bone", 5); + System.out.println("Fido goes " + fido.makeNoise()); + } + @Test + public void pets_make_noise(){ + Pet felix = new Cat("Felix",4); + Pet fido = new Dog("Fido","Bone",5); + Pet rusty = new Hampster("Rusty","wheel",1); + System.out.println("felix goes " + felix.makeNoise()); + System.out.println("fido goes " + fido.makeNoise()); + System.out.println("rusty goes " + rusty.makeNoise()); + } @Test - public void whenAnimalsPlay() { -// TODO: Uncomment me -// -// Pet fido = new Dog("Fido","Bone", 5); -// Pet spot = new Cat("Spot","String", 5); -// Pet hazel = new Hamster("Hazel", 1, "Wheel"); -// -// assertThat(fido.play(), equalTo("plays with bone")); -// assertThat(spot.play(), equalTo("plays with string")); -// assertThat(hazel.play(), equalTo("runs in wheel")); + public void whenAnimalsPlay(){ + Pet fido = new Dog("Fido","Bone",5); + Pet spot = new Cat("Spot", 4); + Pet hazel = new Hampster("Hazel","Wheel",1); + + assertThat(fido.play(),equalTo("plays with bone")); + assertThat(spot.play(),equalTo("plays with string")); + assertThat(hazel.play(),equalTo("runs in wheel")); + } -} + + + +} \ No newline at end of file