diff --git a/pom.xml b/pom.xml index 69a3b878..29d1f451 100644 --- a/pom.xml +++ b/pom.xml @@ -2,11 +2,53 @@ - 4.0.0 +4.0.0 + + +com.zipcodewilmington +froilans-farm + +1.0-SNAPSHOT + + + + org.apache.maven.plugins + maven-compiler-plugin + + 8 + 8 + + + + + + + + + + junit + junit + 4.13.1 + test + + + org.apache.commons + commons-lang3 + 3.12.0 + + + org.apache.commons + commons-math3 + 3.6.1 + + + org.junit.jupiter + junit-jupiter + RELEASE + test + + - com.zipcodewilmington - froilans-farm - 1.0-SNAPSHOT \ No newline at end of file diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/Froilan.java b/src/main/java/com/zipcodewilmington/froilansfarm/Froilan.java new file mode 100644 index 00000000..08c964d8 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Froilan.java @@ -0,0 +1,29 @@ +package com.zipcodewilmington.froilansfarm; + + + + + + +import com.zipcodewilmington.froilansfarm.animals.Chicken; +import com.zipcodewilmington.froilansfarm.animals.Horse; +import com.zipcodewilmington.froilansfarm.animals.person.Farmer; +import com.zipcodewilmington.froilansfarm.crops.CornStalk; +import com.zipcodewilmington.froilansfarm.crops.Crop; +import com.zipcodewilmington.froilansfarm.crops.PotatoRoot; +import com.zipcodewilmington.froilansfarm.crops.TomatoPlant; +import com.zipcodewilmington.froilansfarm.farm.*; +import com.zipcodewilmington.froilansfarm.vehicle.CropDuster; +//import com.zipcodewilmington.froilansfarm.vehicle.Tractor; + +import java.util.ArrayList; +import java.util.Arrays; + +public class Froilan extends Farmer { + + Farm farm = FroilansFarm.getInstance(); + + public Farm getFarm() { + return farm; + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/Froilanda.java b/src/main/java/com/zipcodewilmington/froilansfarm/Froilanda.java new file mode 100644 index 00000000..5fd272f0 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Froilanda.java @@ -0,0 +1,15 @@ +package com.zipcodewilmington.froilansfarm; + +import com.zipcodewilmington.froilansfarm.animals.person.Person; +import com.zipcodewilmington.froilansfarm.animals.person.Pilot; +import com.zipcodewilmington.froilansfarm.crops.Edible; +import com.zipcodewilmington.froilansfarm.farm.Farm; + +public class Froilanda extends Person implements Pilot { + + Farm farm = FroilansFarm.getInstance(); + + public Farm getFarm() { + return farm; + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/FroilansFarm.java b/src/main/java/com/zipcodewilmington/froilansfarm/FroilansFarm.java new file mode 100644 index 00000000..4f3eca92 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/FroilansFarm.java @@ -0,0 +1,51 @@ +package com.zipcodewilmington.froilansfarm; + +import com.zipcodewilmington.froilansfarm.animals.Chicken; +import com.zipcodewilmington.froilansfarm.animals.Horse; +import com.zipcodewilmington.froilansfarm.crops.CornStalk; +import com.zipcodewilmington.froilansfarm.crops.PotatoRoot; +import com.zipcodewilmington.froilansfarm.crops.TomatoPlant; +import com.zipcodewilmington.froilansfarm.farm.*; +import com.zipcodewilmington.froilansfarm.vehicle.CropDuster; +import com.zipcodewilmington.froilansfarm.vehicle.Tractor; + +public class FroilansFarm { + + private static Farm farm; + + private FroilansFarm() { + } + + public static Farm getInstance() { + if (farm == null) { + farm = buildFarm(); + return farm; + } + return farm; + } + + private static Farm buildFarm() { + FarmBuilder builder = new FarmBuilder(); + Farm farm = builder + .setFarmhouses( + new FarmHouse()) + .setFields( + new Field(new CropRow(), + new CropRow(), + new CropRow(), + new CropRow(), + new CropRow())) + .setStables( + new Stable(new Horse(), new Horse(), new Horse()), + new Stable(new Horse(), new Horse(), new Horse(), new Horse()), + new Stable(new Horse(), new Horse(), new Horse())) + .setChickenCoops( + new ChickenCoop(new Chicken(), new Chicken(), new Chicken(), new Chicken()), + new ChickenCoop(new Chicken(), new Chicken(), new Chicken(), new Chicken()), + new ChickenCoop(new Chicken(), new Chicken(), new Chicken(), new Chicken()), + new ChickenCoop(new Chicken(), new Chicken(), new Chicken())) + .setVehicles(new Tractor(5), new CropDuster()) + .build(); + return farm; + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/NoiseMaker.java b/src/main/java/com/zipcodewilmington/froilansfarm/NoiseMaker.java new file mode 100644 index 00000000..8db71148 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/NoiseMaker.java @@ -0,0 +1,6 @@ +package com.zipcodewilmington.froilansfarm; + +public interface NoiseMaker { + String makeNoise(); + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/Rideable.java b/src/main/java/com/zipcodewilmington/froilansfarm/Rideable.java new file mode 100644 index 00000000..4b3071d1 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Rideable.java @@ -0,0 +1,10 @@ +package com.zipcodewilmington.froilansfarm; + +import com.zipcodewilmington.froilansfarm.animals.person.Rider; + +public interface Rideable { + + boolean getIsBeingRidden(); + + void setIsBeingRidden(boolean isBeingRidden); +} 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..a6d50a73 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/animals/Animal.java @@ -0,0 +1,7 @@ +package com.zipcodewilmington.froilansfarm.animals; + +import com.zipcodewilmington.froilansfarm.NoiseMaker; + +public abstract class Animal implements NoiseMaker, Eater { + +} 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..3b9d2fc1 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/animals/Chicken.java @@ -0,0 +1,23 @@ +package com.zipcodewilmington.froilansfarm.animals; + + +import com.zipcodewilmington.froilansfarm.crops.Edible; +import com.zipcodewilmington.froilansfarm.crops.Egg; +import com.zipcodewilmington.froilansfarm.farm.FarmStorage; +//import com.zipcodewilmington.froilansfarm.farm.Produce; + +public class Chicken extends Animal { + + public String makeNoise() { + return "cluck!" ; + } + + public void yield(Egg... egg) { + FarmStorage storage = FarmStorage.getInstance(); + for (Egg eggi : egg) { + if (!eggi.getHasBeenFertilized()) { + storage.add(eggi); + } + } + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/animals/Eater.java b/src/main/java/com/zipcodewilmington/froilansfarm/animals/Eater.java new file mode 100644 index 00000000..797e5d68 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/animals/Eater.java @@ -0,0 +1,12 @@ +package com.zipcodewilmington.froilansfarm.animals; + +import com.zipcodewilmington.froilansfarm.crops.Edible; +import com.zipcodewilmington.froilansfarm.farm.FarmStorage; + +public interface Eater { + + default public void eat(SomeEdible food) { + FarmStorage storage = FarmStorage.getInstance(); + storage.remove(food); + } +} 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..cf779223 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/animals/Horse.java @@ -0,0 +1,28 @@ +package com.zipcodewilmington.froilansfarm.animals; + + +import com.zipcodewilmington.froilansfarm.Rideable; +import com.zipcodewilmington.froilansfarm.crops.Edible; + +public class Horse extends Animal implements Rideable { + + private boolean isBeingRidden = false; + + public String makeNoise() { + return "neigh!"; + } + + public void move() { + + } + + @Override + public boolean getIsBeingRidden() { + return isBeingRidden; + } + + @Override + public void setIsBeingRidden(boolean isBeingRidden) { + this.isBeingRidden = isBeingRidden; + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/animals/person/Botanist.java b/src/main/java/com/zipcodewilmington/froilansfarm/animals/person/Botanist.java new file mode 100644 index 00000000..c81025b0 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/animals/person/Botanist.java @@ -0,0 +1,13 @@ +package com.zipcodewilmington.froilansfarm.animals.person; + +import com.zipcodewilmington.froilansfarm.crops.Crop; +import com.zipcodewilmington.froilansfarm.crops.Edible; +import com.zipcodewilmington.froilansfarm.crops.Egg; +import com.zipcodewilmington.froilansfarm.farm.CropRow; +import com.zipcodewilmington.froilansfarm.farm.FarmStorage; + +public interface Botanist { + default void plant(Crop crop, CropRow row) { + row.addCropsToRow(crop); + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/animals/person/Farmer.java b/src/main/java/com/zipcodewilmington/froilansfarm/animals/person/Farmer.java new file mode 100644 index 00000000..e5cd05c8 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/animals/person/Farmer.java @@ -0,0 +1,39 @@ +package com.zipcodewilmington.froilansfarm.animals.person; + +import com.zipcodewilmington.froilansfarm.Rideable; +import com.zipcodewilmington.froilansfarm.crops.Crop; +import com.zipcodewilmington.froilansfarm.crops.Edible; +import com.zipcodewilmington.froilansfarm.farm.CropRow; +import com.zipcodewilmington.froilansfarm.farm.FarmStorage; + +public class Farmer extends Person implements Rider, Botanist { +// private String name; + public Farmer(){ + + } + + public Farmer(String name) { + super(name); + } + + public void mount(SomeRide ride) { + ride.setIsBeingRidden(true); + } + + @Override + public void dismount(SomeRide ride) { + ride.setIsBeingRidden(false); + } + + public String makeNoise(){ + return "YeeHaw!"; + } + + + public void storeCrop(SomeEdible... someEdibles) { + FarmStorage storage = FarmStorage.getInstance(); + for (SomeEdible food : someEdibles) { + storage.add(food); + } + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/animals/person/Person.java b/src/main/java/com/zipcodewilmington/froilansfarm/animals/person/Person.java new file mode 100644 index 00000000..1a2f6634 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/animals/person/Person.java @@ -0,0 +1,30 @@ +package com.zipcodewilmington.froilansfarm.animals.person; + +import com.zipcodewilmington.froilansfarm.animals.Animal; +import com.zipcodewilmington.froilansfarm.crops.Edible; +import com.zipcodewilmington.froilansfarm.farm.FarmStorage; + +public class Person extends Animal { + + private String name; + + public Person() { + } + + public Person (String name){ + this.name = name; + } + + public String makeNoise() { + + return null; + } + + public void setName(String name){ + this.name = name; + } + + public String getName() { + return name; + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/animals/person/Pilot.java b/src/main/java/com/zipcodewilmington/froilansfarm/animals/person/Pilot.java new file mode 100644 index 00000000..f69b7f30 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/animals/person/Pilot.java @@ -0,0 +1,4 @@ +package com.zipcodewilmington.froilansfarm.animals.person; + +public interface Pilot { +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/animals/person/Rider.java b/src/main/java/com/zipcodewilmington/froilansfarm/animals/person/Rider.java new file mode 100644 index 00000000..ad85a088 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/animals/person/Rider.java @@ -0,0 +1,11 @@ +package com.zipcodewilmington.froilansfarm.animals.person; + +import com.zipcodewilmington.froilansfarm.Rideable; + +public interface Rider { + + void mount(SomeRide ride); + + void dismount(SomeRide ride); + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/crops/CornStalk.java b/src/main/java/com/zipcodewilmington/froilansfarm/crops/CornStalk.java new file mode 100644 index 00000000..f8d3cf84 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/crops/CornStalk.java @@ -0,0 +1,13 @@ +package com.zipcodewilmington.froilansfarm.crops; + +public class CornStalk extends Crop{ + + public CornStalk(boolean hasBeenHarvested, boolean hasBeenFertilized) { + super(hasBeenHarvested, hasBeenFertilized); + } + + @Override + public EarCorn getEdible(EarCorn crop) { + return super.getEdible(crop); + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/crops/Crop.java b/src/main/java/com/zipcodewilmington/froilansfarm/crops/Crop.java new file mode 100644 index 00000000..0d9707c6 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/crops/Crop.java @@ -0,0 +1,45 @@ +package com.zipcodewilmington.froilansfarm.crops; + +import com.zipcodewilmington.froilansfarm.farm.Produce; + +public abstract class Crop implements Produce { + + private boolean hasBeenHarvested; + + private boolean hasBeenFertilized; + + public Crop(boolean hasBeenHarvested, boolean hasBeenFertilized) { + this.hasBeenHarvested = hasBeenHarvested; + this.hasBeenFertilized = hasBeenFertilized; + } + + public boolean hasBeenFertilized() { + + return hasBeenFertilized; + } + + public boolean hasBeenHarvested() { + return hasBeenHarvested; + } + + public void setHasBeenHarvested(boolean hasBeenHarvested) { + this.hasBeenHarvested = hasBeenHarvested; + } + + public void setHasBeenFertilized(boolean hasBeenFertilized) { + this.hasBeenFertilized = hasBeenFertilized; + } + + public someType getEdible(someType crop) { + return crop; + } + + public someType yield(someType... crops) { + for (someType crop : crops) { + if (hasBeenFertilized() && hasBeenHarvested()) { + return getEdible(crop); + } + } + return null; + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/crops/EarCorn.java b/src/main/java/com/zipcodewilmington/froilansfarm/crops/EarCorn.java new file mode 100644 index 00000000..40515595 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/crops/EarCorn.java @@ -0,0 +1,19 @@ +package com.zipcodewilmington.froilansfarm.crops; + +import java.util.ArrayList; +import java.util.List; + +public class EarCorn implements Edible{ + public boolean IsEdible() { + return true; + } + + @Override + public List createFood(int numberOfCrops) { + List list = new ArrayList<>(); + for (int i = 0; i < numberOfCrops; i++) { + list.add(new EarCorn()); + } + return list; + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/crops/Edible.java b/src/main/java/com/zipcodewilmington/froilansfarm/crops/Edible.java new file mode 100644 index 00000000..0801ddf2 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/crops/Edible.java @@ -0,0 +1,13 @@ +package com.zipcodewilmington.froilansfarm.crops; + +import java.util.List; + +public interface Edible { + + boolean IsEdible(); //check if food is edible or not + + List createFood(int numberOfCrops); + + + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/crops/Egg.java b/src/main/java/com/zipcodewilmington/froilansfarm/crops/Egg.java new file mode 100644 index 00000000..23fe6e0f --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/crops/Egg.java @@ -0,0 +1,35 @@ +package com.zipcodewilmington.froilansfarm.crops; + +import java.util.ArrayList; +import java.util.List; + +public class Egg implements Edible{ + + private boolean hasBeenFertilized = false; + + public boolean IsEdible() { + return true; + } + + @Override + public List createFood(int numberOfCrops) { + List list = new ArrayList<>(); + for (int i = 0; i < numberOfCrops; i++) { + list.add(new Egg()); + } + return list; + } + + public boolean isInedibleEgg() { + return false; + } + + public boolean getHasBeenFertilized() { + return hasBeenFertilized; + } + + public void setHasBeenFertilized(boolean hasBeenFertilized) { + this.hasBeenFertilized = hasBeenFertilized; + } + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/crops/Potato.java b/src/main/java/com/zipcodewilmington/froilansfarm/crops/Potato.java new file mode 100644 index 00000000..84794fda --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/crops/Potato.java @@ -0,0 +1,19 @@ +package com.zipcodewilmington.froilansfarm.crops; + +import java.util.ArrayList; +import java.util.List; + +public class Potato implements Edible { + public boolean IsEdible() { + return true; + } + + @Override + public List createFood(int numberOfCrops) { + List list = new ArrayList<>(); + for (int i = 0; i < numberOfCrops; i++) { + list.add(new Potato()); + } + return list; + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/crops/PotatoRoot.java b/src/main/java/com/zipcodewilmington/froilansfarm/crops/PotatoRoot.java new file mode 100644 index 00000000..4668a165 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/crops/PotatoRoot.java @@ -0,0 +1,13 @@ +package com.zipcodewilmington.froilansfarm.crops; + +public class PotatoRoot extends Crop { + + public PotatoRoot(boolean hasBeenHarvested, boolean hasBeenFertilized) { + super(hasBeenHarvested, hasBeenFertilized); + } + + @Override + public Potato getEdible(Potato crop) { + return super.getEdible(crop); + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/crops/Tomato.java b/src/main/java/com/zipcodewilmington/froilansfarm/crops/Tomato.java new file mode 100644 index 00000000..bc228b80 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/crops/Tomato.java @@ -0,0 +1,19 @@ +package com.zipcodewilmington.froilansfarm.crops; + +import java.util.ArrayList; +import java.util.List; + +public class Tomato implements Edible{ + public boolean IsEdible() { + return true; + } + + @Override + public List createFood(int numberOfCrops) { + List list = new ArrayList<>(); + for (int i = 0; i < numberOfCrops; i++) { + list.add(new Tomato()); + } + return list; + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/crops/TomatoPlant.java b/src/main/java/com/zipcodewilmington/froilansfarm/crops/TomatoPlant.java new file mode 100644 index 00000000..afa8429e --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/crops/TomatoPlant.java @@ -0,0 +1,14 @@ +package com.zipcodewilmington.froilansfarm.crops; + +public class TomatoPlant extends Crop{ + + public TomatoPlant(boolean hasBeenHarvested, boolean hasBeenFertilized) { + super(hasBeenHarvested, hasBeenFertilized); + } + + @Override + public Tomato getEdible(Tomato crop) { + return super.getEdible(crop); + } + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/farm/ChickenCoop.java b/src/main/java/com/zipcodewilmington/froilansfarm/farm/ChickenCoop.java new file mode 100644 index 00000000..0495d682 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/farm/ChickenCoop.java @@ -0,0 +1,15 @@ +package com.zipcodewilmington.froilansfarm.farm; + +import com.zipcodewilmington.froilansfarm.animals.Chicken; + +import java.util.*; + +public class ChickenCoop extends Shelter { + + public ChickenCoop() { + } + + public ChickenCoop(Chicken... chickens) { + super.setAnimals(new ArrayList<>(Arrays.asList(chickens))); + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/farm/CropRow.java b/src/main/java/com/zipcodewilmington/froilansfarm/farm/CropRow.java new file mode 100644 index 00000000..a3e1a183 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/farm/CropRow.java @@ -0,0 +1,36 @@ +package com.zipcodewilmington.froilansfarm.farm; + +import com.zipcodewilmington.froilansfarm.crops.Crop; +import com.zipcodewilmington.froilansfarm.crops.Edible; + +import java.util.ArrayList; +import java.util.List; + +public class CropRow { + + private List cropsInRow = new ArrayList<>(); + + public CropRow() { + + } + + public CropRow(SomeCrop someCrop) { + for (int i = 0; i < 15; i++) { + cropsInRow.add(someCrop); + } + } + + public void addCropsToRow(SomeCrop someCrop) { + for (int i = 0; i < 15; i++) { + cropsInRow.add(someCrop); + } + } + + public List getCropsInRow() { + return cropsInRow; + } + + public Integer getNumberOfCropsInRow() { + return cropsInRow.size(); + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/farm/Farm.java b/src/main/java/com/zipcodewilmington/froilansfarm/farm/Farm.java new file mode 100644 index 00000000..59ecbdb0 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/farm/Farm.java @@ -0,0 +1,44 @@ +package com.zipcodewilmington.froilansfarm.farm; + +import com.zipcodewilmington.froilansfarm.vehicle.Vehicle; + +import java.util.List; + +public class Farm { + + List farmhouses; + List stables; + List chickenCoops; + List fields; + List vehicles; + + public Farm(List farmhouses, List stables, List chickenCoops, List fields, List vehicles) { + this.farmhouses = farmhouses; + this.stables = stables; + this.chickenCoops = chickenCoops; + this.fields = fields; + this.vehicles = vehicles; + } + + public List getFarmhouses() { + return farmhouses; + } + + public List getStables() { + return stables; + } + + public List getChickenCoops() { + return chickenCoops; + } + + public List getFields() { + return fields; + } + + public List getVehicles() { + return vehicles; + } + +} + diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/farm/FarmBuilder.java b/src/main/java/com/zipcodewilmington/froilansfarm/farm/FarmBuilder.java new file mode 100644 index 00000000..bd3579c7 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/farm/FarmBuilder.java @@ -0,0 +1,43 @@ +package com.zipcodewilmington.froilansfarm.farm; + +import com.zipcodewilmington.froilansfarm.vehicle.Vehicle; + +import java.util.*; + +public class FarmBuilder { + + private List farmhouses; + private List stables; + private List chickenCoops; + private List fields; + private List vehicles; + + public FarmBuilder setFarmhouses(FarmHouse farmhouses) { + this.farmhouses = new ArrayList<>(Arrays.asList(farmhouses)); + return this; + } + + public FarmBuilder setStables(Stable... stables) { + this.stables = new ArrayList<>(Arrays.asList(stables)); + return this; + } + + public FarmBuilder setChickenCoops(ChickenCoop... chickenCoops) { + this.chickenCoops = new ArrayList<>(Arrays.asList(chickenCoops)); + return this; + } + + public FarmBuilder setFields(Field... fields) { + this.fields = new ArrayList<>(Arrays.asList(fields)); + return this; + } + + public FarmBuilder setVehicles(Vehicle... vehicles) { + this.vehicles = new ArrayList<>(Arrays.asList(vehicles)); + return this; + } + + public Farm build() { + return new Farm(farmhouses, stables, chickenCoops, fields, vehicles); + } +} \ No newline at end of file diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/farm/FarmHouse.java b/src/main/java/com/zipcodewilmington/froilansfarm/farm/FarmHouse.java new file mode 100644 index 00000000..c83c655d --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/farm/FarmHouse.java @@ -0,0 +1,15 @@ +package com.zipcodewilmington.froilansfarm.farm; + +import com.zipcodewilmington.froilansfarm.animals.person.Person; + +import java.util.*; + +public class FarmHouse extends Shelter { + + public FarmHouse() { + } + + public FarmHouse(Person... people) { + super.setAnimals(new ArrayList<>(Arrays.asList(people))); + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/farm/FarmStorage.java b/src/main/java/com/zipcodewilmington/froilansfarm/farm/FarmStorage.java new file mode 100644 index 00000000..2be9698a --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/farm/FarmStorage.java @@ -0,0 +1,68 @@ +package com.zipcodewilmington.froilansfarm.farm; + +import com.zipcodewilmington.froilansfarm.crops.*; + +import java.util.*; + +public class FarmStorage { + + private static FarmStorage farmStorage; + + private List list = new ArrayList<>(); + private Map, List> map = constructMap(); + + + + private FarmStorage() { + } + + public static FarmStorage getInstance() { + if (farmStorage == null) { + farmStorage = new FarmStorage(); + return farmStorage; + } + return farmStorage; + } + + public void add(SomeEdible foodItem) { + List list = (List) map.get(foodItem.getClass()); + list.add(foodItem); + } + + public void remove(SomeEdible foodItem) { + List list = (List) map.get(foodItem.getClass()); + list.remove(foodItem); + } + + private void populateMap() { + Tomato tomato = new Tomato(); + Potato potato = new Potato(); + Egg egg = new Egg(); + EarCorn earCorn = new EarCorn(); + map.put(tomato.getClass(), tomato.createFood(20)); + map.put(potato.getClass(), potato.createFood(20)); + map.put(egg.getClass(), egg.createFood(20)); + map.put(earCorn.getClass(), earCorn.createFood(20)); + } + + + private Map, List> constructMap() { + map = new HashMap<>(); + populateMap(); + return map; + } + + public Map, List> getMap() { + return map; + } + + public SomeEdible getFoodItem(SomeEdible someEdible) { + List edibleList = map.get(someEdible.getClass()); + return (SomeEdible)edibleList.get(0); +// switch (nameOfFood) { +// case "tomato": +// List list = map.get(new Tomato().getClass()); +// return (SomeEdible)list.get(0); +// } + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/farm/Field.java b/src/main/java/com/zipcodewilmington/froilansfarm/farm/Field.java new file mode 100644 index 00000000..4191916e --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/farm/Field.java @@ -0,0 +1,18 @@ +package com.zipcodewilmington.froilansfarm.farm; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class Field { + + private List rowsInField; + + public Field(CropRow... cropRows) { // 5, + rowsInField = new ArrayList<>(Arrays.asList(cropRows)); + } + + public List getRowsInField() { + return rowsInField; + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/farm/Produce.java b/src/main/java/com/zipcodewilmington/froilansfarm/farm/Produce.java new file mode 100644 index 00000000..6b8b1685 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/farm/Produce.java @@ -0,0 +1,10 @@ +package com.zipcodewilmington.froilansfarm.farm; + +import com.zipcodewilmington.froilansfarm.crops.Edible; + +public interface Produce { + + //someType yield(); + + boolean hasBeenFertilized(); +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/farm/Shelter.java b/src/main/java/com/zipcodewilmington/froilansfarm/farm/Shelter.java new file mode 100644 index 00000000..4c1a63de --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/farm/Shelter.java @@ -0,0 +1,30 @@ +package com.zipcodewilmington.froilansfarm.farm; + +import com.zipcodewilmington.froilansfarm.animals.Animal; + +import java.util.*; + +public abstract class Shelter { + + private List animals = new ArrayList(); + + public void add(SomeType animal) { + animals.add(animal); + } + + public void remove(SomeType animal) { + animals.remove(animal); + } + + public Integer getNumberOfAnimals() { + return animals.size(); + } + + public List getAnimals() { + return animals; + } + + public void setAnimals(List animals) { + this.animals = animals; + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/farm/Stable.java b/src/main/java/com/zipcodewilmington/froilansfarm/farm/Stable.java new file mode 100644 index 00000000..dbac1df5 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/farm/Stable.java @@ -0,0 +1,15 @@ +package com.zipcodewilmington.froilansfarm.farm; + +import com.zipcodewilmington.froilansfarm.animals.Horse; + +import java.util.*; + +public class Stable extends Shelter { + + public Stable() { + } + + public Stable(Horse... horses) { + super.setAnimals(new ArrayList<>(Arrays.asList(horses))); + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/vehicle/Aircraft.java b/src/main/java/com/zipcodewilmington/froilansfarm/vehicle/Aircraft.java new file mode 100644 index 00000000..77f60779 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/vehicle/Aircraft.java @@ -0,0 +1,7 @@ +package com.zipcodewilmington.froilansfarm.vehicle; + +public interface Aircraft { + + + public boolean fly(); +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/vehicle/CropDuster.java b/src/main/java/com/zipcodewilmington/froilansfarm/vehicle/CropDuster.java new file mode 100644 index 00000000..31c03d43 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/vehicle/CropDuster.java @@ -0,0 +1,30 @@ +package com.zipcodewilmington.froilansfarm.vehicle; + +import com.zipcodewilmington.froilansfarm.crops.Crop; +import com.zipcodewilmington.froilansfarm.farm.CropRow; +import com.zipcodewilmington.froilansfarm.farm.Farm; + +import java.util.List; + +public class CropDuster extends Vehicle implements FarmVehicle, Aircraft { + + + + public void fertilize(CropRow row){ + List crops = row.getCropsInRow(); + for (SomeCrop crop : crops) { + crop.setHasBeenFertilized(true); + } + } + + @Override + public String makeNoise() { + return "Buzzzzz!"; + } + + + @Override + public boolean fly() { + return false; + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/vehicle/FarmVehicle.java b/src/main/java/com/zipcodewilmington/froilansfarm/vehicle/FarmVehicle.java new file mode 100644 index 00000000..96d66cdf --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/vehicle/FarmVehicle.java @@ -0,0 +1,17 @@ +package com.zipcodewilmington.froilansfarm.vehicle; + +import com.zipcodewilmington.froilansfarm.farm.Farm; + +public interface FarmVehicle { + + default public boolean operate(Farm farm) { + if (farm != null) { + return true; + } + return false; + } + + +} + +//in test class use tractor diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/vehicle/Tractor.java b/src/main/java/com/zipcodewilmington/froilansfarm/vehicle/Tractor.java new file mode 100644 index 00000000..2c314efb --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/vehicle/Tractor.java @@ -0,0 +1,35 @@ +package com.zipcodewilmington.froilansfarm.vehicle; + + +import com.zipcodewilmington.froilansfarm.crops.Crop; +import com.zipcodewilmington.froilansfarm.farm.CropRow; +import com.zipcodewilmington.froilansfarm.farm.Farm; +import com.zipcodewilmington.froilansfarm.farm.FarmStorage; + +import java.util.ArrayList; +import java.util.List; + +public class Tractor extends Vehicle implements FarmVehicle { + + + + private int crop; + + public Tractor(int crop) { + + this.crop = crop; + } + + public void harvest(CropRow cropRow){ + List list = cropRow.getCropsInRow(); + for (SomeCrop crop : list) { + crop.setHasBeenHarvested(true); + } + + } + + @Override + public String makeNoise () { + return null; + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/vehicle/Vehicle.java b/src/main/java/com/zipcodewilmington/froilansfarm/vehicle/Vehicle.java new file mode 100644 index 00000000..ec82b525 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/vehicle/Vehicle.java @@ -0,0 +1,24 @@ +package com.zipcodewilmington.froilansfarm.vehicle; + +import com.zipcodewilmington.froilansfarm.NoiseMaker; +import com.zipcodewilmington.froilansfarm.Rideable; + +public abstract class Vehicle implements NoiseMaker, Rideable { + + public boolean isBeingRidden = false; + + @Override + public String makeNoise() { + return "Honk!"; + } + + @Override + public boolean getIsBeingRidden() { + return isBeingRidden; + } + + @Override + public void setIsBeingRidden(boolean isBeingRidden) { + this.isBeingRidden = isBeingRidden; + } +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/MainApplicationTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/MainApplicationTest.java index 1a971b7f..bd91c41b 100644 --- a/src/test/java/com/zipcodewilmington/froilansfarm/MainApplicationTest.java +++ b/src/test/java/com/zipcodewilmington/froilansfarm/MainApplicationTest.java @@ -1,7 +1,22 @@ package com.zipcodewilmington.froilansfarm; + +import com.zipcodewilmington.froilansfarm.crops.Tomato; +import com.zipcodewilmington.froilansfarm.farm.FarmStorage; +import org.junit.Test; + /** * Created by leon on 2/26/18. */ public class MainApplicationTest { + + @Test + public void test() { + FarmStorage storage = FarmStorage.getInstance(); + Froilan froilan = new Froilan(); + System.out.println(storage.getMap().get(new Tomato().getClass())); + froilan.eat(storage.getFoodItem(new Tomato())); + System.out.println(storage.getMap().get(new Tomato().getClass())); + } + } diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/animal/ChickenTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/animal/ChickenTest.java new file mode 100644 index 00000000..6946e9df --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/animal/ChickenTest.java @@ -0,0 +1,28 @@ +package com.zipcodewilmington.froilansfarm.animal; + +import com.zipcodewilmington.froilansfarm.animals.Chicken; +import com.zipcodewilmington.froilansfarm.farm.FarmStorage; +import org.junit.Test; +import org.junit.jupiter.api.Assertions; + +public class ChickenTest { + Chicken chicken = new Chicken(); + + @Test + public void testMakeNoise() { + String expected = "cluck!"; + String actual = chicken.makeNoise(); + Assertions.assertEquals(expected, actual); + } + + @Test + public void testYield() { + // Given + //FarmStorage store = FarmStorage.getInstance(); + + // When + + // Then + } + +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/animal/HorseTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/animal/HorseTest.java new file mode 100644 index 00000000..bc1fe34c --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/animal/HorseTest.java @@ -0,0 +1,27 @@ +package com.zipcodewilmington.froilansfarm.animal; + +import com.zipcodewilmington.froilansfarm.animals.Horse; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class HorseTest { + + Horse horse = new Horse(); + + @Test + void testMakeNoise() { + String expected = "neigh!"; + String actual = horse.makeNoise(); + Assertions.assertEquals(expected, actual); + } + + @Test + void move() { + } + + @Test + void eat() { + } +} \ No newline at end of file diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/animal/person/FarmerTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/animal/person/FarmerTest.java new file mode 100644 index 00000000..f94a1ac5 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/animal/person/FarmerTest.java @@ -0,0 +1,40 @@ +package com.zipcodewilmington.froilansfarm.animal.person; + +import com.zipcodewilmington.froilansfarm.animals.person.Botanist; +import com.zipcodewilmington.froilansfarm.animals.person.Farmer; +import com.zipcodewilmington.froilansfarm.animals.person.Person; +import com.zipcodewilmington.froilansfarm.animals.person.Rider; + +import org.junit.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; + +public class FarmerTest { + private Farmer farmer = new Farmer(); + + @BeforeEach + void setUp() { + this.farmer = new Farmer(); + } + + @Test + public void testInstanceOf(){ + + Assertions.assertTrue(farmer instanceof Person); + Assertions.assertTrue(farmer instanceof Rider); + Assertions.assertTrue(farmer instanceof Botanist); + } + + @Test + public void testMakeNoise(){ + //given + String expected = "YeeHaw!"; + + //When + String actual = farmer.makeNoise(); + + //then + Assertions.assertEquals(expected, actual); + } + +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/animal/person/FroilandTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/animal/person/FroilandTest.java new file mode 100644 index 00000000..b72e37ab --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/animal/person/FroilandTest.java @@ -0,0 +1,4 @@ +package com.zipcodewilmington.froilansfarm.animal.person; + +public class FroilandTest { +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/animal/person/FroilandaTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/animal/person/FroilandaTest.java new file mode 100644 index 00000000..52ef1318 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/animal/person/FroilandaTest.java @@ -0,0 +1,4 @@ +//package com.zipcodewilmington.froilansfarm.animal.person; +// +//public class FroilandaTest { +//} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/animal/person/PersonTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/animal/person/PersonTest.java new file mode 100644 index 00000000..8ad791af --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/animal/person/PersonTest.java @@ -0,0 +1,43 @@ +package com.zipcodewilmington.froilansfarm.animal.person; + +import com.zipcodewilmington.froilansfarm.animals.person.Person; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +public class PersonTest { + + private Person person = new Person(); + +// @BeforeEach +// void setUp() { +// this.person = new Person(); +// } + + @Test + public void testConstructor(){ + String actualName = person.getName(); + String expectedName = null; + Assertions.assertEquals(expectedName, actualName); + } + + @Test + public void testSetName(){ + String expectedName = "Froilan"; + person.setName(expectedName); + String actualName = person.getName(); + Assertions.assertEquals(expectedName, actualName); + } + + @Test + void makeNoise() { + } + + @Test + void eat() { + } + + @Test + void getName() { + } +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/cropsTest/AbstractCropTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/cropsTest/AbstractCropTest.java new file mode 100644 index 00000000..2db23037 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/cropsTest/AbstractCropTest.java @@ -0,0 +1,24 @@ +package com.zipcodewilmington.froilansfarm.cropsTest; + +import com.zipcodewilmington.froilansfarm.crops.CornStalk; +import com.zipcodewilmington.froilansfarm.crops.Crop; +import com.zipcodewilmington.froilansfarm.crops.EarCorn; +import com.zipcodewilmington.froilansfarm.crops.Edible; +import org.junit.Assert; +import org.junit.Test; + +public class AbstractCropTest { + @Test + public void testGetEdible() { + + // Given + CornStalk cornStalk = new CornStalk(true, true); + + // When + EarCorn earCorn = cornStalk.getEdible(new EarCorn()); + + // Then + Assert.assertNotNull(earCorn); + } + +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/cropsTest/CornStalkTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/cropsTest/CornStalkTest.java new file mode 100644 index 00000000..c3b8beaa --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/cropsTest/CornStalkTest.java @@ -0,0 +1,24 @@ +package com.zipcodewilmington.froilansfarm.cropsTest; + +import com.zipcodewilmington.froilansfarm.crops.CornStalk; +import com.zipcodewilmington.froilansfarm.crops.EarCorn; +import org.junit.Assert; +import org.junit.Test; + +public class CornStalkTest { + + @Test + public void testGetEdible() { + + // Given + CornStalk cornStalk = new CornStalk(true, true); + + // When + EarCorn earCorn = cornStalk.getEdible(new EarCorn()); + + // Then + Assert.assertNotNull(earCorn); + + } + +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/cropsTest/PotatoRootTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/cropsTest/PotatoRootTest.java new file mode 100644 index 00000000..3601b3f9 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/cropsTest/PotatoRootTest.java @@ -0,0 +1,23 @@ +package com.zipcodewilmington.froilansfarm.cropsTest; + +import com.zipcodewilmington.froilansfarm.crops.Potato; +import com.zipcodewilmington.froilansfarm.crops.PotatoRoot; +import org.junit.Assert; +import org.junit.Test; + +public class PotatoRootTest { + + @Test + public void testGetEdible() { + + // Given + PotatoRoot potatoRoot = new PotatoRoot(true, true); + + // When + Potato potato = potatoRoot.getEdible(new Potato()); + + // Then + Assert.assertNotNull(potato); + + } +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/cropsTest/TomatoPlantTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/cropsTest/TomatoPlantTest.java new file mode 100644 index 00000000..2a0beebe --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/cropsTest/TomatoPlantTest.java @@ -0,0 +1,23 @@ +package com.zipcodewilmington.froilansfarm.cropsTest; + +import com.zipcodewilmington.froilansfarm.crops.Tomato; +import com.zipcodewilmington.froilansfarm.crops.TomatoPlant; +import org.junit.Assert; +import org.junit.Test; + +public class TomatoPlantTest { + + @Test + public void testGetEdible() { + + // Given + TomatoPlant tomatoPlant = new TomatoPlant(true, true); + + // When + Tomato tomato = tomatoPlant.getEdible(new Tomato()); + + // Then + Assert.assertNotNull(tomato); + + } +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/edible/EarCornTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/edible/EarCornTest.java new file mode 100644 index 00000000..9261e69b --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/edible/EarCornTest.java @@ -0,0 +1,20 @@ +package com.zipcodewilmington.froilansfarm.edible; + +import com.zipcodewilmington.froilansfarm.crops.EarCorn; +import org.junit.Assert; +import org.junit.Test; + + +public class EarCornTest { + + @Test + public void earCornIsEdibleTest() { + EarCorn edibleEarCorn = new EarCorn(); + + boolean expected = true; + boolean actual = edibleEarCorn.IsEdible(); + + Assert.assertEquals(expected, actual); + } + +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/edible/EdibleTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/edible/EdibleTest.java new file mode 100644 index 00000000..7aaabd48 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/edible/EdibleTest.java @@ -0,0 +1,25 @@ +package com.zipcodewilmington.froilansfarm.edible; + +//import com.sun.org.apache.xpath.internal.operations.Bool; +import com.zipcodewilmington.froilansfarm.crops.Egg; +import com.zipcodewilmington.froilansfarm.crops.Potato; +import com.zipcodewilmington.froilansfarm.crops.Tomato; +import com.zipcodewilmington.froilansfarm.crops.TomatoPlant; +import org.junit.Test; + +public class EdibleTest { + + @Test + public void EdibleFoodTest() { + Egg edibleEgg = new Egg(); + Egg inedibleEgg = new Egg(); + inedibleEgg.isInedibleEgg(); + + Boolean expected = true; + Boolean actual = edibleEgg.IsEdible(); + + inedibleEgg.isInedibleEgg(); + Boolean expected2 = false; + Boolean actual2 = inedibleEgg.isInedibleEgg(); + } +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/edible/EggTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/edible/EggTest.java new file mode 100644 index 00000000..46942385 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/edible/EggTest.java @@ -0,0 +1,31 @@ +package com.zipcodewilmington.froilansfarm.edible; + +import com.sun.org.apache.xpath.internal.operations.Bool; +import com.zipcodewilmington.froilansfarm.crops.Egg; +import org.junit.Assert; +import org.junit.Test; + +public class EggTest { + + @Test + public void EggIsEdibleTest(){ + Egg edibleEgg = new Egg(); + + Boolean expected = true; + Boolean actual = edibleEgg.IsEdible(); + + Assert.assertEquals(expected, actual); + } + + @Test + public void hasBeenFertilizedTest() { + // Given + //Egg fertilizedEgg = new Egg(); + + // When + //boolean setEgg = fertilizedEgg.IsEdible(); + + // Then + //Assert.assertTrue(setEgg); + } +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/edible/PotatoTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/edible/PotatoTest.java new file mode 100644 index 00000000..5fdf344f --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/edible/PotatoTest.java @@ -0,0 +1,19 @@ +package com.zipcodewilmington.froilansfarm.edible; + +import com.zipcodewilmington.froilansfarm.crops.Potato; +import org.junit.Assert; +import org.junit.Test; + +public class PotatoTest { + + @Test + public void PotatoIsEdibleTest() { + Potato ediblePotato = new Potato(); + + Boolean expected = true; + Boolean actual = ediblePotato.IsEdible(); + + Assert.assertEquals(expected, actual); + } + +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/edible/TomatoTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/edible/TomatoTest.java new file mode 100644 index 00000000..30103669 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/edible/TomatoTest.java @@ -0,0 +1,18 @@ +package com.zipcodewilmington.froilansfarm.edible; + +import com.zipcodewilmington.froilansfarm.crops.EarCorn; +import com.zipcodewilmington.froilansfarm.crops.Tomato; +import org.junit.Assert; +import org.junit.Test; + +public class TomatoTest { + @Test + public void TomatoIsEdibleTest() { + Tomato edibleTomato = new Tomato(); + + boolean expected = true; + boolean actual = edibleTomato.IsEdible(); + + Assert.assertEquals(expected, actual); + } +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/farm/CropRowTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/farm/CropRowTest.java new file mode 100644 index 00000000..0f87097b --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/farm/CropRowTest.java @@ -0,0 +1,28 @@ +package com.zipcodewilmington.froilansfarm.farm; + +import com.zipcodewilmington.froilansfarm.crops.EarCorn; +import com.zipcodewilmington.froilansfarm.crops.Potato; +import com.zipcodewilmington.froilansfarm.crops.Tomato; +import com.zipcodewilmington.froilansfarm.crops.TomatoPlant; +import org.junit.Assert; +import org.junit.Test; + +import java.util.Arrays; +import java.util.List; + +public class CropRowTest { + + @Test + public void constructorTest() { + // Given + TomatoPlant tomato = new TomatoPlant(true, true); + CropRow cropRow = new CropRow(tomato); + Integer expectedNumberOfCrops = 15; + + // When + Integer actualNumberOfCrops = cropRow.getNumberOfCropsInRow(); + + // Then + Assert.assertEquals(expectedNumberOfCrops, actualNumberOfCrops); + } +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/farm/FarmTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/farm/FarmTest.java new file mode 100644 index 00000000..b4f0d9ee --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/farm/FarmTest.java @@ -0,0 +1,35 @@ +package com.zipcodewilmington.froilansfarm.farm; + +import com.zipcodewilmington.froilansfarm.vehicle.Vehicle; +import org.junit.Assert; +import org.junit.Test; + +import java.util.*; + +public class FarmTest { + +// @Test +// public void constructorTest() { +// // Given +// List expectedFarmhouses = new ArrayList<>(Arrays.asList(new FarmHouse())); +// List expectedStables = new ArrayList<>(Arrays.asList(new Stable())); +// List expectedChickenCoops = new ArrayList<>(Arrays.asList(new ChickenCoop())); +// List expectedFields = new ArrayList<>(Arrays.asList(new Field())); +// List expectedVehicles = new ArrayList<>(Arrays.asList(new Vehicle())); +// +// // When +// Farm farm = new FarmBuilder().setFarmhouses(expectedFarmhouses).setStables(expectedStables).setChickenCoops(expectedChickenCoops).setFields(expectedFields).setVehicles(expectedVehicles).build(); +// List actualFarmhouses = farm.getFarmhouses(); +// List actualStables = farm.getStables(); +// List actualChickenCoops = farm.getChickenCoops(); +// List actualFields = farm.getFields(); +// List actualVehicles = farm.getVehicles(); +// +// // Then +// Assert.assertEquals(expectedFarmhouses, actualFarmhouses); +// Assert.assertEquals(expectedStables, actualStables); +// Assert.assertEquals(expectedChickenCoops, actualChickenCoops); +// Assert.assertEquals(expectedFields, actualFields); +// Assert.assertEquals(expectedVehicles, actualVehicles); +// } +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/farm/FieldTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/farm/FieldTest.java new file mode 100644 index 00000000..a0ff3de5 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/farm/FieldTest.java @@ -0,0 +1,29 @@ +package com.zipcodewilmington.froilansfarm.farm; + +import com.zipcodewilmington.froilansfarm.animals.Chicken; +import com.zipcodewilmington.froilansfarm.crops.*; +import org.junit.Assert; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class FieldTest { + + @Test + public void constructorTest() { + // Given + CropRow cropRow1 = new CropRow(new TomatoPlant(true, true)); + CropRow cropRow2 = new CropRow(new PotatoRoot(true, true)); + CropRow cropRow3 = new CropRow(new CornStalk(true, true)); + List expectedCropRows = Arrays.asList(cropRow1, cropRow2, cropRow3); + + // When + Field field = new Field(cropRow1, cropRow2, cropRow3); + List actualCropRows = field.getRowsInField(); + + // Then + Assert.assertEquals(expectedCropRows, actualCropRows); + } +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/farm/ShelterTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/farm/ShelterTest.java new file mode 100644 index 00000000..bdff5c73 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/farm/ShelterTest.java @@ -0,0 +1,105 @@ +package com.zipcodewilmington.froilansfarm.farm; + +import com.zipcodewilmington.froilansfarm.Froilan; +import com.zipcodewilmington.froilansfarm.FroilansFarm; +import com.zipcodewilmington.froilansfarm.animals.Chicken; +import com.zipcodewilmington.froilansfarm.animals.Horse; +import com.zipcodewilmington.froilansfarm.animals.person.Person; +import com.zipcodewilmington.froilansfarm.vehicle.Vehicle; +import org.junit.Assert; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class ShelterTest { + + @Test + public void chickenCoopConstructorTest() { + // Given + Chicken[] chickens = new Chicken[] {new Chicken(), new Chicken(), new Chicken(), new Chicken()}; + ChickenCoop chickenCoop = new ChickenCoop(chickens); + List expectedChickens = new ArrayList<>(Arrays.asList(chickens)); + + + // When + List actualChickens = chickenCoop.getAnimals(); + + // Then + Assert.assertEquals(expectedChickens, actualChickens); + } + + @Test + public void stableConstructorTest() { + // Given + Horse[] horses = new Horse[] {new Horse(), new Horse(), new Horse(), new Horse()}; + Stable stable = new Stable(horses); + List expectedHorses = new ArrayList<>(Arrays.asList(horses)); + + + // When + List actualHorses = stable.getAnimals(); + + // Then + Assert.assertEquals(expectedHorses, actualHorses); + } + + @Test + public void farmHouseConstructorTest() { + // Given + Person[] people = new Person[] {new Person(), new Person(), new Person(), new Person()}; + FarmHouse farmHouse = new FarmHouse(people); + List expectedPeople = new ArrayList<>(Arrays.asList(people)); + + + // When + List actualPeople = farmHouse.getAnimals(); + + // Then + Assert.assertEquals(expectedPeople, actualPeople); + } + + @Test + public void addTest() { + // Given + Person expectedPerson = new Person(); + FarmHouse farmHouse = new FarmHouse(); + + + // When + farmHouse.add(expectedPerson); + List people = farmHouse.getAnimals(); + Person actualPerson = people.get(0); + + // Then + Assert.assertEquals(expectedPerson, actualPerson); + } + + @Test + public void removeTest() { + // Given + Person person1 = new Person(); + Person person2 = new Person(); + FarmHouse farmHouse = new FarmHouse(person1, person2); + Integer expectedNumberOfPeople = 1; + + + // When + farmHouse.remove(person1); + Integer actualNumberOfPeople = farmHouse.getNumberOfAnimals(); + + // Then + Assert.assertEquals(expectedNumberOfPeople, actualNumberOfPeople); + } + + @Test + public void test() { +// FroilansFarm farm = FroilansFarm.INSTANCE; +// System.out.println(farm); + Froilan froilan = new Froilan(); + Farm farm = froilan.getFarm(); + System.out.println(farm); + + } +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/farm/StorageTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/farm/StorageTest.java new file mode 100644 index 00000000..fd2e6ce2 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/farm/StorageTest.java @@ -0,0 +1,26 @@ +package com.zipcodewilmington.froilansfarm.farm; + +import com.zipcodewilmington.froilansfarm.crops.Tomato; +import org.junit.Assert; +import org.junit.Test; + +import java.util.List; +import java.util.Map; + +public class StorageTest { + + @Test + public void addTest() { + // Given + FarmStorage storage = FarmStorage.getInstance(); + Map> map = storage.getMap(); + + // When + + + // Then + for (Map.Entry entry : map.entrySet()) { + System.out.println(entry.getKey().toString()); + } + } +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/vehicle/AircraftTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/vehicle/AircraftTest.java new file mode 100644 index 00000000..b70b4fd9 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/vehicle/AircraftTest.java @@ -0,0 +1,23 @@ +package com.zipcodewilmington.froilansfarm.vehicle; + +import org.junit.Assert; +import org.junit.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class AircraftTest { + + + void flyTest() { + + + + + + + + + + + } +} \ No newline at end of file diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/vehicle/CropDusterTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/vehicle/CropDusterTest.java new file mode 100644 index 00000000..bee9eabe --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/vehicle/CropDusterTest.java @@ -0,0 +1,28 @@ +package com.zipcodewilmington.froilansfarm.vehicle; + +import com.zipcodewilmington.froilansfarm.crops.Tomato; +import com.zipcodewilmington.froilansfarm.crops.TomatoPlant; +import com.zipcodewilmington.froilansfarm.farm.CropRow; +import org.junit.Assert; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class CropDusterTest { + + @Test + void fertilize() { + CropDuster cropDus = new CropDuster(); + + boolean expected = true; + cropDus.fertilize(new CropRow(new TomatoPlant(true, true))); + + Assert.assertTrue(expected); + + + } + + @Test + void operate() { + } +} \ No newline at end of file diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/vehicle/FarmVehicleTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/vehicle/FarmVehicleTest.java new file mode 100644 index 00000000..941e68a7 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/vehicle/FarmVehicleTest.java @@ -0,0 +1,13 @@ +package com.zipcodewilmington.froilansfarm.vehicle; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +abstract class FarmVehicleTest { + + + + + +} \ No newline at end of file diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/vehicle/TractorTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/vehicle/TractorTest.java new file mode 100644 index 00000000..1c081e62 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/vehicle/TractorTest.java @@ -0,0 +1,28 @@ +package com.zipcodewilmington.froilansfarm.vehicle; + +//import com.sun.scenario.effect.Crop; + +import com.zipcodewilmington.froilansfarm.crops.Egg; +import com.zipcodewilmington.froilansfarm.crops.Potato; +import com.zipcodewilmington.froilansfarm.crops.Tomato; +import org.junit.Assert; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class TractorTest { + + + +// @Test +// void harvest() { +// Tractor t = new Tractor(4); +// +// boolean expected = true; +// boolean actual = t.harvest(4); +// +// Assert.assertEquals(expected,actual); +// +// } + +} \ No newline at end of file