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
Empty file added .github/.keep
Empty file.
29 changes: 29 additions & 0 deletions .github/workflows/classroom.yml
Original file line number Diff line number Diff line change
@@ -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
65 changes: 47 additions & 18 deletions src/main/java/com/serenitydojo/Cat.java
Original file line number Diff line number Diff line change
@@ -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";

}

}
32 changes: 8 additions & 24 deletions src/main/java/com/serenitydojo/Dog.java
Original file line number Diff line number Diff line change
@@ -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";
}
}
27 changes: 27 additions & 0 deletions src/main/java/com/serenitydojo/Hampster.java
Original file line number Diff line number Diff line change
@@ -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";
}



}
28 changes: 28 additions & 0 deletions src/main/java/com/serenitydojo/Pet.java
Original file line number Diff line number Diff line change
@@ -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();



}
100 changes: 71 additions & 29 deletions src/test/java/com/serenitydojo/WhenCreatingObjects.java
Original file line number Diff line number Diff line change
Expand Up @@ -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"));

}
}



}