diff --git a/.gitignore b/.gitignore index 95abee5d..6929df67 100644 --- a/.gitignore +++ b/.gitignore @@ -103,4 +103,8 @@ target/* .project .classpath -.settings \ No newline at end of file +.settings + +# other +.idea +.DS_STORE \ No newline at end of file diff --git a/pom.xml b/pom.xml index 69a3b878..ab263c7f 100644 --- a/pom.xml +++ b/pom.xml @@ -8,5 +8,19 @@ froilans-farm 1.0-SNAPSHOT + + 19 + 19 + 19 + - \ No newline at end of file + + + org.junit.jupiter + junit-jupiter-api + 5.9.3 + test + + + + diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/CropRow.java b/src/main/java/com/zipcodewilmington/froilansfarm/CropRow.java new file mode 100644 index 00000000..1311ef8a --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/CropRow.java @@ -0,0 +1,49 @@ +package com.zipcodewilmington.froilansfarm; + +import com.zipcodewilmington.froilansfarm.plants.Crop; + +import java.util.Arrays; +import java.util.LinkedList; +import java.util.List; + +public class CropRow { + + private final List row = new LinkedList<>(); + + public CropRow() {} + + public CropRow(Crop crop) { + this.row.add(crop); + } + + public CropRow(Crop[] crops) { + this.row.addAll(Arrays.asList(crops)); + } + + public CropRow(List crops) { + this.row.addAll(crops); + } + + public List getCrops() { + return this.row; + } + + public void store(Crop crop) { + this.row.add(crop); + } + + public void store(Crop[] crops) { + this.row.addAll(Arrays.asList(crops)); + } + + public void store(List crops) { + this.row.addAll(crops); + } + + public void fertilize() { + for (Crop crop : this.row) { + crop.fertilize(); + } + } + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/Farm.java b/src/main/java/com/zipcodewilmington/froilansfarm/Farm.java new file mode 100644 index 00000000..31824f48 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Farm.java @@ -0,0 +1,26 @@ +package com.zipcodewilmington.froilansfarm; + +import java.util.ArrayList; +import java.util.List; + +public class Farm { + + private List fields = new ArrayList<>(); + + public Farm(List fields) { + this.fields.addAll(fields); + } + + public Farm(Field field) { + this.fields.add(field); + } + + public List getFields() { + return this.fields; + } + + public void addFields(Field... fields) { + this.fields.addAll(List.of(fields)); + } + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/Farmer.java b/src/main/java/com/zipcodewilmington/froilansfarm/Farmer.java new file mode 100644 index 00000000..c3186b8d --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Farmer.java @@ -0,0 +1,68 @@ +package com.zipcodewilmington.froilansfarm; + +import com.zipcodewilmington.froilansfarm.animals.Horse; +import com.zipcodewilmington.froilansfarm.food.Corn; +import com.zipcodewilmington.froilansfarm.interfaces.Botanist; +import com.zipcodewilmington.froilansfarm.interfaces.Edible; +import com.zipcodewilmington.froilansfarm.interfaces.Rideable; +import com.zipcodewilmington.froilansfarm.interfaces.Rider; +import com.zipcodewilmington.froilansfarm.plants.Crop; + +public class Farmer extends Person implements Botanist, Rider { + + //new changes + private int cornCount; + private int tomatoCount; + private int eggCount; + + + + public Farmer(String name) { + super(name); + } + + @Override + public void plant(CropRow cropRow, Crop crop) { + cropRow.store(crop); + } + + @Override + public String makeNoise() { + System.out.println("howdy"); + return null; + } + + @Override + public void mount(Rideable rideable) { + } + + @Override + public void dismount(Rideable rideable) { + } + + @Override + public String eat(Edible edible) { + System.out.println("yum yum"); + return null; + } + + + //new changes + public void feedHorse(Horse horse, Corn corn) { + for (int i = 0; i < 3; i++){ + horse.eat(corn); + } + } + + public int getCornCount() { + return cornCount; + } + + public int getTomatoCount() { + return tomatoCount; + } + + public int getEggCount() { + return eggCount; + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/Field.java b/src/main/java/com/zipcodewilmington/froilansfarm/Field.java new file mode 100644 index 00000000..30a1692c --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Field.java @@ -0,0 +1,41 @@ +package com.zipcodewilmington.froilansfarm; + +import java.util.Arrays; +import java.util.LinkedList; +import java.util.List; + +public class Field { + + private final List cropRows = new LinkedList<>(); + + public Field() {} + + public Field(CropRow croprow) { + this.cropRows.add(croprow); + } + + public Field(CropRow[] cropRows) { + this.cropRows.addAll(Arrays.asList(cropRows)); + } + + public Field(List cropRows) { + this.cropRows.addAll(cropRows); + } + + public List getCropRows() { + return this.cropRows; + } + + public void store(CropRow cropRow) { + this.cropRows.add(cropRow); + } + + public void store(CropRow[] cropRows) { + this.cropRows.addAll(Arrays.asList(cropRows)); + } + + public void store(List cropRows) { + this.cropRows.addAll(cropRows); + } + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/MainApplication.java b/src/main/java/com/zipcodewilmington/froilansfarm/MainApplication.java index fd743ffc..27c35334 100644 --- a/src/main/java/com/zipcodewilmington/froilansfarm/MainApplication.java +++ b/src/main/java/com/zipcodewilmington/froilansfarm/MainApplication.java @@ -4,5 +4,7 @@ * Created by leon on 2/26/18. */ public class MainApplication { - + public static void main(String[] args) { + //TODO + } } diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/Person.java b/src/main/java/com/zipcodewilmington/froilansfarm/Person.java new file mode 100644 index 00000000..2f823ebb --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Person.java @@ -0,0 +1,14 @@ +package com.zipcodewilmington.froilansfarm; + +import com.zipcodewilmington.froilansfarm.interfaces.Eater; +import com.zipcodewilmington.froilansfarm.interfaces.NoiseMaker; + +public abstract class Person implements Eater, NoiseMaker { + + public String name; + + public Person(String name) { + this.name = name; + } + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/animals/Animal.java b/src/main/java/com/zipcodewilmington/froilansfarm/animals/Animal.java new file mode 100644 index 00000000..b8854a2d --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/animals/Animal.java @@ -0,0 +1,8 @@ +package com.zipcodewilmington.froilansfarm.animals; + +import com.zipcodewilmington.froilansfarm.interfaces.Eater; +import com.zipcodewilmington.froilansfarm.interfaces.NoiseMaker; + +public abstract class Animal implements Eater, NoiseMaker { + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/animals/Chicken.java b/src/main/java/com/zipcodewilmington/froilansfarm/animals/Chicken.java new file mode 100644 index 00000000..4a2be1f4 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/animals/Chicken.java @@ -0,0 +1,37 @@ +package com.zipcodewilmington.froilansfarm.animals; + +import com.zipcodewilmington.froilansfarm.food.EdibleEgg; +import com.zipcodewilmington.froilansfarm.interfaces.Edible; +import com.zipcodewilmington.froilansfarm.interfaces.Produce; + +public class Chicken extends Animal implements Produce { + + private String chickenPeck ="peck peck"; + private String chickenBuck ="buck buck buckawk"; + public boolean hasBeenFertilized; + + + + @Override + public EdibleEgg yield() { + if(hasBeenFertilized) { + return new EdibleEgg(); + } else { + return null; + } + } + + @Override + public String eat(Edible edible) { + System.out.println(chickenPeck); + return chickenPeck; + } + + + @Override + public String makeNoise() { + System.out.println(chickenBuck); + return chickenBuck; + } + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/animals/Horse.java b/src/main/java/com/zipcodewilmington/froilansfarm/animals/Horse.java new file mode 100644 index 00000000..5bd61db7 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/animals/Horse.java @@ -0,0 +1,22 @@ +package com.zipcodewilmington.froilansfarm.animals; + +import com.zipcodewilmington.froilansfarm.interfaces.Edible; +import com.zipcodewilmington.froilansfarm.interfaces.Rideable; + +public class Horse extends Animal implements Rideable { + + private String horseMunch ="munch munch"; + private String horseNeigh ="neigh"; + @Override + public String eat(Edible edible) { + System.out.println(horseMunch); + return horseMunch; + } + + @Override + public String makeNoise() { + System.out.println(horseNeigh); + return horseNeigh; + } + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/buildings/ChickenCoop.java b/src/main/java/com/zipcodewilmington/froilansfarm/buildings/ChickenCoop.java new file mode 100644 index 00000000..c3c9688b --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/buildings/ChickenCoop.java @@ -0,0 +1,11 @@ +package com.zipcodewilmington.froilansfarm.buildings; + +import com.zipcodewilmington.froilansfarm.animals.Chicken; + +import java.util.ArrayList; + +public class ChickenCoop { + + ArrayList chickenList = new ArrayList<>(); + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/buildings/FarmHouse.java b/src/main/java/com/zipcodewilmington/froilansfarm/buildings/FarmHouse.java new file mode 100644 index 00000000..f9e44c93 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/buildings/FarmHouse.java @@ -0,0 +1,11 @@ +package com.zipcodewilmington.froilansfarm.buildings; + +import com.zipcodewilmington.froilansfarm.Person; + +import java.util.ArrayList; + +public class FarmHouse { + + ArrayList peopleList = new ArrayList<>(); + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/buildings/Stable.java b/src/main/java/com/zipcodewilmington/froilansfarm/buildings/Stable.java new file mode 100644 index 00000000..d1ba0d32 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/buildings/Stable.java @@ -0,0 +1,17 @@ +package com.zipcodewilmington.froilansfarm.buildings; + +import com.zipcodewilmington.froilansfarm.animals.Horse; + +import java.util.ArrayList; +import java.util.List; + +public class Stable { + + private List horses = new ArrayList<>(); + + public boolean addHorse(Horse horse) { + horses.add(horse); + return true; + } + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/days/EveryMorning.java b/src/main/java/com/zipcodewilmington/froilansfarm/days/EveryMorning.java new file mode 100644 index 00000000..47db8dd0 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/days/EveryMorning.java @@ -0,0 +1,7 @@ +package com.zipcodewilmington.froilansfarm.days; + +public class EveryMorning { + public static void everyMorning() { + //TODO + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/days/Monday.java b/src/main/java/com/zipcodewilmington/froilansfarm/days/Monday.java new file mode 100644 index 00000000..2b85f1da --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/days/Monday.java @@ -0,0 +1,7 @@ +package com.zipcodewilmington.froilansfarm.days; + +public class Monday { + public static void monday() { + //TODO + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/days/Tuesday.java b/src/main/java/com/zipcodewilmington/froilansfarm/days/Tuesday.java new file mode 100644 index 00000000..c194e777 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/days/Tuesday.java @@ -0,0 +1,30 @@ +package com.zipcodewilmington.froilansfarm.days; + +import com.zipcodewilmington.froilansfarm.CropRow; +import com.zipcodewilmington.froilansfarm.Farm; +import com.zipcodewilmington.froilansfarm.Farmer; +import com.zipcodewilmington.froilansfarm.Field; +import com.zipcodewilmington.froilansfarm.interfaces.Edible; +import com.zipcodewilmington.froilansfarm.plants.Crop; +import com.zipcodewilmington.froilansfarm.vehicles.Tractor; + +import java.util.ArrayList; +import java.util.List; + +import static com.zipcodewilmington.froilansfarm.days.EveryMorning.everyMorning; + +public class Tuesday { + public static void tuesday(Farmer farmer, Tractor tractor, Farm farm) { + everyMorning(); + farmer.mount(tractor); + List yields = new ArrayList<>(); + for(Field field : farm.getFields()) { + for(CropRow cropRow : field.getCropRows()) { + for(Crop crop : cropRow.getCrops()) { + tractor.makeNoise(); + yields.add(tractor.harvest(crop)); + } + } + } + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/food/Corn.java b/src/main/java/com/zipcodewilmington/froilansfarm/food/Corn.java new file mode 100644 index 00000000..009bef63 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/food/Corn.java @@ -0,0 +1,7 @@ +package com.zipcodewilmington.froilansfarm.food; + +import com.zipcodewilmington.froilansfarm.interfaces.Edible; + +public class Corn implements Edible { + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/food/EdibleEgg.java b/src/main/java/com/zipcodewilmington/froilansfarm/food/EdibleEgg.java new file mode 100644 index 00000000..212780fb --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/food/EdibleEgg.java @@ -0,0 +1,7 @@ +package com.zipcodewilmington.froilansfarm.food; + +import com.zipcodewilmington.froilansfarm.interfaces.Edible; + +public class EdibleEgg implements Edible { + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/food/Tomato.java b/src/main/java/com/zipcodewilmington/froilansfarm/food/Tomato.java new file mode 100644 index 00000000..c2500232 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/food/Tomato.java @@ -0,0 +1,7 @@ +package com.zipcodewilmington.froilansfarm.food; + +import com.zipcodewilmington.froilansfarm.interfaces.Edible; + +public class Tomato implements Edible { + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/Botanist.java b/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/Botanist.java new file mode 100644 index 00000000..7956e5c4 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/Botanist.java @@ -0,0 +1,10 @@ +package com.zipcodewilmington.froilansfarm.interfaces; + +import com.zipcodewilmington.froilansfarm.CropRow; +import com.zipcodewilmington.froilansfarm.plants.Crop; + +public interface Botanist { + + void plant(CropRow cropRow, Crop crop); + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/Eater.java b/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/Eater.java new file mode 100644 index 00000000..fac3989e --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/Eater.java @@ -0,0 +1,7 @@ +package com.zipcodewilmington.froilansfarm.interfaces; + +public interface Eater { + + String eat(Edible edible); + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/Edible.java b/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/Edible.java new file mode 100644 index 00000000..96c36393 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/Edible.java @@ -0,0 +1,5 @@ +package com.zipcodewilmington.froilansfarm.interfaces; + +public interface Edible { + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/NoiseMaker.java b/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/NoiseMaker.java new file mode 100644 index 00000000..82cb0f3b --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/NoiseMaker.java @@ -0,0 +1,7 @@ +package com.zipcodewilmington.froilansfarm.interfaces; + +public interface NoiseMaker { + + String makeNoise(); + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/Produce.java b/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/Produce.java new file mode 100644 index 00000000..2389c614 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/Produce.java @@ -0,0 +1,9 @@ +package com.zipcodewilmington.froilansfarm.interfaces; + +import com.zipcodewilmington.froilansfarm.food.EdibleEgg; + +public interface Produce { + + EdibleEgg yield(); + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/Rideable.java b/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/Rideable.java new file mode 100644 index 00000000..e0428efd --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/Rideable.java @@ -0,0 +1,5 @@ +package com.zipcodewilmington.froilansfarm.interfaces; + +public interface Rideable { + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/Rider.java b/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/Rider.java new file mode 100644 index 00000000..fc6f6588 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/Rider.java @@ -0,0 +1,9 @@ +package com.zipcodewilmington.froilansfarm.interfaces; + +public interface Rider { + + void mount(Rideable rideable); + + void dismount(Rideable rideable); + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/plants/Cornstalk.java b/src/main/java/com/zipcodewilmington/froilansfarm/plants/Cornstalk.java new file mode 100644 index 00000000..9de454fd --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/plants/Cornstalk.java @@ -0,0 +1,21 @@ +package com.zipcodewilmington.froilansfarm.plants; + +import com.zipcodewilmington.froilansfarm.food.Corn; +import com.zipcodewilmington.froilansfarm.food.EdibleEgg; + + +public class Cornstalk extends Crop { + + @Override + public EdibleEgg yield() { + if(isFertilized() && !isHarvested()) { + this.harvest(); + return new Corn(); + } + else { + this.harvest(); + return null; + } + } + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/plants/Crop.java b/src/main/java/com/zipcodewilmington/froilansfarm/plants/Crop.java new file mode 100644 index 00000000..bc772d25 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/plants/Crop.java @@ -0,0 +1,31 @@ +package com.zipcodewilmington.froilansfarm.plants; + +import com.zipcodewilmington.froilansfarm.interfaces.Produce; + +public abstract class Crop implements Produce { + + private boolean harvested; + private boolean fertilized; + + public Crop() { + this.harvested = false; + this.fertilized = false; + } + + public void fertilize() { + this.fertilized = true; + } + + public void harvest() { + this.harvested = true; + } + + public boolean isFertilized() { + return fertilized; + } + + public boolean isHarvested() { + return harvested; + } + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/plants/TomatoPlant.java b/src/main/java/com/zipcodewilmington/froilansfarm/plants/TomatoPlant.java new file mode 100644 index 00000000..44ea11de --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/plants/TomatoPlant.java @@ -0,0 +1,20 @@ +package com.zipcodewilmington.froilansfarm.plants; + +import com.zipcodewilmington.froilansfarm.food.EdibleEgg; +import com.zipcodewilmington.froilansfarm.food.Tomato; + +public class TomatoPlant extends Crop { + + @Override + public EdibleEgg yield() { + if(isFertilized() && !isHarvested()) { + this.harvest(); + return new Tomato(); + } + else { + this.harvest(); + return null; + } + } + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/vehicles/Aircraft.java b/src/main/java/com/zipcodewilmington/froilansfarm/vehicles/Aircraft.java new file mode 100644 index 00000000..cf1e13af --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/vehicles/Aircraft.java @@ -0,0 +1,9 @@ +package com.zipcodewilmington.froilansfarm.vehicles; + +import com.zipcodewilmington.froilansfarm.interfaces.Rideable; + +public class Aircraft implements Rideable { + + public void fly() {} + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/vehicles/CropDuster.java b/src/main/java/com/zipcodewilmington/froilansfarm/vehicles/CropDuster.java new file mode 100644 index 00000000..2edc4be2 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/vehicles/CropDuster.java @@ -0,0 +1,8 @@ +package com.zipcodewilmington.froilansfarm.vehicles; + +public class CropDuster extends Aircraft { + + //TODO + public void fertilize(/*CropRow cropRow*/) {} + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/vehicles/FarmVehicle.java b/src/main/java/com/zipcodewilmington/froilansfarm/vehicles/FarmVehicle.java new file mode 100644 index 00000000..c7951f8b --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/vehicles/FarmVehicle.java @@ -0,0 +1,4 @@ +package com.zipcodewilmington.froilansfarm.vehicles; + +public class FarmVehicle extends Vehicle { +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/vehicles/Tractor.java b/src/main/java/com/zipcodewilmington/froilansfarm/vehicles/Tractor.java new file mode 100644 index 00000000..4f46b5b3 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/vehicles/Tractor.java @@ -0,0 +1,12 @@ +package com.zipcodewilmington.froilansfarm.vehicles; + +import com.zipcodewilmington.froilansfarm.interfaces.Edible; +import com.zipcodewilmington.froilansfarm.plants.Crop; + +public class Tractor extends FarmVehicle { + + public Edible harvest(Crop crop) { + return crop.yield(); + } + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/vehicles/Vehicle.java b/src/main/java/com/zipcodewilmington/froilansfarm/vehicles/Vehicle.java new file mode 100644 index 00000000..b59ccd5b --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/vehicles/Vehicle.java @@ -0,0 +1,14 @@ +package com.zipcodewilmington.froilansfarm.vehicles; + +import com.zipcodewilmington.froilansfarm.interfaces.NoiseMaker; +import com.zipcodewilmington.froilansfarm.interfaces.Rideable; + +public class Vehicle implements Rideable, NoiseMaker { + + @Override + public String makeNoise(){ + System.out.println("Vroom Vroom"); + return null; + } + +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/EdibleEggTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/EdibleEggTest.java new file mode 100644 index 00000000..000b3e17 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/EdibleEggTest.java @@ -0,0 +1,7 @@ +package com.zipcodewilmington.froilansfarm; + +import org.junit.jupiter.api.Test; + +class EdibleEggTest { + +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/FarmTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/FarmTest.java new file mode 100644 index 00000000..2dcc5708 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/FarmTest.java @@ -0,0 +1,7 @@ +package com.zipcodewilmington.froilansfarm; + +import org.junit.jupiter.api.Test; + +class FarmTest { + +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/FarmerTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/FarmerTest.java new file mode 100644 index 00000000..51a76da8 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/FarmerTest.java @@ -0,0 +1,32 @@ +package com.zipcodewilmington.froilansfarm; + +import org.junit.jupiter.api.Test; + +class FarmerTest { + + @Test + void plant() { + //TODO + } + + @Test + void makeNoise() { + //TODO + } + + @Test + void mount() { + //TODO + } + + @Test + void dismount() { + //TODO + } + + @Test + void eat() { + //TODO + } + +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/animals/AnimalTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/animals/AnimalTest.java new file mode 100644 index 00000000..8577486b --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/animals/AnimalTest.java @@ -0,0 +1,7 @@ +package com.zipcodewilmington.froilansfarm.animals; + +import org.junit.jupiter.api.Test; + +class AnimalTest { + +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/animals/ChickenTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/animals/ChickenTest.java new file mode 100644 index 00000000..42e55be4 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/animals/ChickenTest.java @@ -0,0 +1,68 @@ +package com.zipcodewilmington.froilansfarm.animals; + +import com.zipcodewilmington.froilansfarm.food.Corn; +import com.zipcodewilmington.froilansfarm.food.EdibleEgg; +import com.zipcodewilmington.froilansfarm.interfaces.Edible; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +public class ChickenTest { + + @Test + void isChickenFertilized(){ + //TODO + + // GIVEN + Chicken chicken = new Chicken(); + // WHEN + boolean isFertilized = chicken.hasBeenFertilized; + // THEN + assertEquals(false, isFertilized); + } + + @Test + void isYielded(){ + //TODO + + // GIVEN + Chicken chicken = new Chicken(); + EdibleEgg egg1 = new EdibleEgg(); + // WHEN + Edible e = chicken.yield(); + // THEN + assertEquals(false, e); + } + + + @Test + void printsCorrectStringWhenChickenEats() { + //TODO + + // GIVEN + Chicken chicken = new Chicken(); + + // WHEN + String consume = chicken.eat(new Corn()); + + // THEN + assertEquals("peck peck", consume); + } + + @Test + void printsCorrectStringWhenChickenMakesNoise() { + //TODO + + // GIVEN + Chicken chicken = new Chicken(); + + // WHEN + String noise = chicken.makeNoise(); + + // THEN + assertEquals("buck buck buckawk", noise); + + } +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/animals/HorseTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/animals/HorseTest.java new file mode 100644 index 00000000..00506dc5 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/animals/HorseTest.java @@ -0,0 +1,39 @@ +package com.zipcodewilmington.froilansfarm.animals; + +import com.zipcodewilmington.froilansfarm.food.Corn; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +class HorseTest { + + @Test + void printsCorrectStringWhenHorseEats() { + //TODO + + // GIVEN + Horse horse = new Horse(); + + // WHEN + + String consume = horse.eat(new Corn()); + + // THEN + assertEquals("munch munch", consume); + } + + @Test + void printsCorrectStringWhenHorseMakesNoise() { + //TODO + + // GIVEN + Horse horse = new Horse(); + + // WHEN + String noise = horse.makeNoise(); + + // THEN + assertEquals("neigh", noise); + } + +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/buildings/ChickenCoopTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/buildings/ChickenCoopTest.java new file mode 100644 index 00000000..cf323b83 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/buildings/ChickenCoopTest.java @@ -0,0 +1,7 @@ +package com.zipcodewilmington.froilansfarm.buildings; + +import org.junit.jupiter.api.Test; + +class ChickenCoopTest { + +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/buildings/FarmHouseTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/buildings/FarmHouseTest.java new file mode 100644 index 00000000..fbaaaab6 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/buildings/FarmHouseTest.java @@ -0,0 +1,7 @@ +package com.zipcodewilmington.froilansfarm.buildings; + +import org.junit.jupiter.api.Test; + +class FarmHouseTest { + +} \ No newline at end of file diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/buildings/StableTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/buildings/StableTest.java new file mode 100644 index 00000000..7001a6f6 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/buildings/StableTest.java @@ -0,0 +1,7 @@ +package com.zipcodewilmington.froilansfarm.buildings; + +import org.junit.jupiter.api.Test; + +class StableTest { + +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/days/EveryMorningTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/days/EveryMorningTest.java new file mode 100644 index 00000000..e5ddd14c --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/days/EveryMorningTest.java @@ -0,0 +1,101 @@ +package com.zipcodewilmington.froilansfarm.days; + +import com.zipcodewilmington.froilansfarm.Farmer; +import com.zipcodewilmington.froilansfarm.animals.Horse; +import com.zipcodewilmington.froilansfarm.buildings.Stable; +import com.zipcodewilmington.froilansfarm.food.Corn; +import com.zipcodewilmington.froilansfarm.food.EdibleEgg; +import com.zipcodewilmington.froilansfarm.food.Tomato; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +class EveryMorningTest { + + + // * Every morning, `Froilan` and `Froilanda` begin their morning by + // * Riding each `Horse` in each `Stable`. + // * Feeding each `Horse` 3 ear of `Corn`. + // * For breakfast, + // * `Froilan` eats 1 `EarCorn`, 2 `Tomoato`, and 5 `Egg`. + // * `Froilanda` eats 2 `EarCorn`, 1 `Tomoato`, and 2 `Egg`. + + @Test + void everyMorning() { + //TODO + //GIVEN + Farmer farmer = new Farmer("Froilan"); + Farmer farmer2 = new Farmer("Froilanda"); + + Horse horse1 = new Horse(); + Horse horse2 = new Horse(); + + Stable stable1 = new Stable(); + Stable stable2 = new Stable(); + + Corn corn1 = new Corn(); + Corn corn2 = new Corn(); + Corn corn3 = new Corn(); + Corn corn4 = new Corn(); + Corn corn5 = new Corn(); + Corn corn6 = new Corn(); + Corn corn7 = new Corn(); + Corn corn8 = new Corn(); + Corn corn9 = new Corn(); + + Tomato tomato1 = new Tomato(); + Tomato tomato2 = new Tomato(); + Tomato tomato3 = new Tomato(); + + EdibleEgg egg1 = new EdibleEgg(); + EdibleEgg egg2 = new EdibleEgg(); + EdibleEgg egg3 = new EdibleEgg(); + EdibleEgg egg4 = new EdibleEgg(); + EdibleEgg egg5 = new EdibleEgg(); + EdibleEgg egg6 = new EdibleEgg(); + EdibleEgg egg7 = new EdibleEgg(); + + boolean inStable1 = stable1.addHorse(horse1); + boolean inStable2 = stable2.addHorse(horse2); + assertTrue(inStable1); + assertTrue(inStable2); + + //WHEN + farmer.mount(horse1); + farmer2.mount(horse2); + + farmer.feedHorse(horse1, corn1); + farmer.feedHorse(horse2, corn2); + farmer.feedHorse(horse1, corn3); + farmer.feedHorse(horse2, corn4); + farmer.feedHorse(horse1, corn5); + farmer.feedHorse(horse2, corn6); + + farmer.eat(corn1); + farmer.eat(tomato1); + farmer.eat(tomato2); + farmer.eat(egg1); + farmer.eat(egg2); + farmer.eat(egg3); + farmer.eat(egg4); + farmer.eat(egg5); + + farmer2.eat(corn2); + farmer2.eat(corn3); + farmer2.eat(tomato3); + farmer2.eat(egg6); + farmer2.eat(egg7); + + //THEN + assertEquals(1, farmer.getCornCount()); + assertEquals(2, farmer.getTomatoCount()); + assertEquals(5, farmer.getEggCount()); + assertEquals(2, farmer2.getCornCount()); + assertEquals(1, farmer2.getTomatoCount()); + assertEquals(2, farmer2.getEggCount()); + + + } + +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/days/MondayTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/days/MondayTest.java new file mode 100644 index 00000000..4e5ea6ec --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/days/MondayTest.java @@ -0,0 +1,24 @@ +package com.zipcodewilmington.froilansfarm.days; + +import com.zipcodewilmington.froilansfarm.Farmer; +import com.zipcodewilmington.froilansfarm.vehicles.CropDuster; +import com.zipcodewilmington.froilansfarm.vehicles.Vehicle; +import org.junit.jupiter.api.Test; + +class MondayTest { + + //On `Monday`, his sister, `Froilanda` uses the `CropDuster` to `fly` over the `Field` and `fertilize` each of the `CropRow` + @Test + void mondayTest() { + //TODO + Farmer farmer1 = new Farmer("Froilanda"); + CropDuster cropDuster1 = new CropDuster(); + + //fly method + + //fertilize(cropRow crop) method + + + } + +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/days/SundayTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/days/SundayTest.java new file mode 100644 index 00000000..4148cd8e --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/days/SundayTest.java @@ -0,0 +1,17 @@ +package com.zipcodewilmington.froilansfarm.days; + +import com.zipcodewilmington.froilansfarm.Farmer; +import org.junit.jupiter.api.Test; + +public class SundayTest { + + //`Sunday`, `Froilan` plants 3 different type of `Crop` in his first, second, and third `CropRow`. + @Test + void sundayTest(){ + //TODO + Farmer farmer1 = new Farmer("Froilan"); + + + + } +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/days/TuesdayTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/days/TuesdayTest.java new file mode 100644 index 00000000..98b40118 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/days/TuesdayTest.java @@ -0,0 +1,62 @@ +package com.zipcodewilmington.froilansfarm.days; + +import com.zipcodewilmington.froilansfarm.CropRow; +import com.zipcodewilmington.froilansfarm.Farm; +import com.zipcodewilmington.froilansfarm.Farmer; +import com.zipcodewilmington.froilansfarm.Field; +import com.zipcodewilmington.froilansfarm.plants.Cornstalk; +import com.zipcodewilmington.froilansfarm.plants.Crop; +import com.zipcodewilmington.froilansfarm.plants.TomatoPlant; +import com.zipcodewilmington.froilansfarm.vehicles.Tractor; +import org.junit.jupiter.api.Test; + +import java.util.Arrays; +import java.util.List; + +import static com.zipcodewilmington.froilansfarm.days.Tuesday.tuesday; +import static org.junit.jupiter.api.Assertions.assertTrue; + +class TuesdayTest { + + @Test + void tuesdayTest() { + //GIVEN + Farmer farmer = new Farmer("Froilan"); + Tractor tractor = new Tractor(); + Crop corn1 = new Cornstalk(); + corn1.fertilize(); + Crop corn2 = new Cornstalk(); + corn2.fertilize(); + Crop corn3 = new Cornstalk(); + corn3.fertilize(); + Crop corn4 = new Cornstalk(); + Crop tomato1 = new TomatoPlant(); + Crop tomato2 = new TomatoPlant(); + tomato2.fertilize(); + Crop tomato3 = new TomatoPlant(); + tomato3.fertilize(); + Crop tomato4 = new TomatoPlant(); + tomato4.fertilize(); + CropRow cropRow1 = new CropRow(Arrays.asList(corn1, corn2)); + CropRow cropRow2 = new CropRow(Arrays.asList(corn3, corn4)); + CropRow cropRow3 = new CropRow(Arrays.asList(tomato1, tomato2)); + CropRow cropRow4 = new CropRow(Arrays.asList(tomato3, tomato4)); + Field field1 = new Field(Arrays.asList(cropRow1, cropRow2)); + Field field2 = new Field(Arrays.asList(cropRow3, cropRow4)); + Farm farm = new Farm(List.of(field1, field2)); + + //WHEN + tuesday(farmer, tractor, farm); + + //THEN + assertTrue(corn1.isHarvested()); + assertTrue(corn2.isHarvested()); + assertTrue(corn3.isHarvested()); + assertTrue(corn4.isHarvested()); + assertTrue(tomato1.isHarvested()); + assertTrue(tomato2.isHarvested()); + assertTrue(tomato3.isHarvested()); + assertTrue(tomato4.isHarvested()); + } + +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/vehicles/AircraftTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/vehicles/AircraftTest.java new file mode 100644 index 00000000..217ac499 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/vehicles/AircraftTest.java @@ -0,0 +1,12 @@ +package com.zipcodewilmington.froilansfarm.vehicles; + +import org.junit.jupiter.api.Test; + +class AircraftTest { + + @Test + void fly() { + //TODO + } + +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/vehicles/CropDusterTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/vehicles/CropDusterTest.java new file mode 100644 index 00000000..923470aa --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/vehicles/CropDusterTest.java @@ -0,0 +1,12 @@ +package com.zipcodewilmington.froilansfarm.vehicles; + +import org.junit.jupiter.api.Test; + +class CropDusterTest { + + @Test + void fertilize() { + //TODO + } + +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/vehicles/FarmVehicleTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/vehicles/FarmVehicleTest.java new file mode 100644 index 00000000..fe4e1b6a --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/vehicles/FarmVehicleTest.java @@ -0,0 +1,7 @@ +package com.zipcodewilmington.froilansfarm.vehicles; + +import org.junit.jupiter.api.Test; + +class FarmVehicleTest { + +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/vehicles/TractorTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/vehicles/TractorTest.java new file mode 100644 index 00000000..da267c39 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/vehicles/TractorTest.java @@ -0,0 +1,12 @@ +package com.zipcodewilmington.froilansfarm.vehicles; + +import org.junit.jupiter.api.Test; + +class TractorTest { + + @Test + void harvest() { + //TODO + } + +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/vehicles/VehicleTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/vehicles/VehicleTest.java new file mode 100644 index 00000000..fca85595 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/vehicles/VehicleTest.java @@ -0,0 +1,12 @@ +package com.zipcodewilmington.froilansfarm.vehicles; + +import org.junit.jupiter.api.Test; + +class VehicleTest { + + @Test + void makeNoise() { + //TODO + } + +}