diff --git a/pom.xml b/pom.xml index 69a3b878..747602e5 100644 --- a/pom.xml +++ b/pom.xml @@ -7,6 +7,32 @@ com.zipcodewilmington froilans-farm 1.0-SNAPSHOT + + + + org.apache.maven.plugins + maven-compiler-plugin + + 8 + 8 + + + + + + + junit + junit + 4.12 + test + + + junit + junit + 4.13.1 + test + + \ No newline at end of file diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/Botanist.java b/src/main/java/com/zipcodewilmington/froilansfarm/Botanist.java new file mode 100644 index 00000000..0620f731 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Botanist.java @@ -0,0 +1,10 @@ +package com.zipcodewilmington.froilansfarm; + +import com.zipcodewilmington.froilansfarm.Food.Crop; +import com.zipcodewilmington.froilansfarm.Food.CropRow; + +public interface Botanist { + + void plant(Crop crop, CropRow cropRow); + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/Eater.java b/src/main/java/com/zipcodewilmington/froilansfarm/Eater.java new file mode 100644 index 00000000..c89071f0 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Eater.java @@ -0,0 +1,7 @@ +package com.zipcodewilmington.froilansfarm; + +import com.zipcodewilmington.froilansfarm.Edible; + +public interface Eater < T extends Edible > { + void eat(T edible); +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/Edible.java b/src/main/java/com/zipcodewilmington/froilansfarm/Edible.java new file mode 100644 index 00000000..ac82f7ad --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Edible.java @@ -0,0 +1,5 @@ +package com.zipcodewilmington.froilansfarm; + +public interface Edible { + +} 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..442822fc --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Farm.java @@ -0,0 +1,115 @@ +package com.zipcodewilmington.froilansfarm; + +import com.zipcodewilmington.froilansfarm.Food.CarrotFlower; +import com.zipcodewilmington.froilansfarm.Food.CornStalk; +import com.zipcodewilmington.froilansfarm.Food.CropRow; +import com.zipcodewilmington.froilansfarm.Food.TomatoPlant; +import com.zipcodewilmington.froilansfarm.Mammal.*; +import com.zipcodewilmington.froilansfarm.Structure.ChickenCoop; +import com.zipcodewilmington.froilansfarm.Structure.FarmHouse; +import com.zipcodewilmington.froilansfarm.Structure.Pantry; +import com.zipcodewilmington.froilansfarm.Structure.Stable; +import com.zipcodewilmington.froilansfarm.Vehicles.Aircraft; +import com.zipcodewilmington.froilansfarm.Vehicles.CropDuster; +import com.zipcodewilmington.froilansfarm.Vehicles.Tractor; + +import java.util.Arrays; +import java.util.List; + +public class Farm { + private Shelter farmhouse = new FarmHouse(); + private List> stables = Arrays.asList( + new Stable(), + new Stable(), + new Stable()); + private List> chickenCoops = Arrays.asList( + new ChickenCoop(), + new ChickenCoop(), + new ChickenCoop()); + private Field field = new Field(); + private CropDuster cropDuster = new CropDuster(); + private Tractor tractor = new Tractor(); + private Tractor johnDeer = new Tractor(); + private Pantry pantry; + + public Farm(){ + populateFarmHouse(); + populateAllChickenCoops(); + populateAllStables(); + populateField(); + this.pantry = new Pantry(); + } + + public Shelter getFarmhouse() { + return farmhouse; + } + + public List> getStables() { + return stables; + } + + public List> getChickenCoops() { + return chickenCoops; + } + + public Field getField(){ + return field; + } + + public CropDuster getCropDuster() { + return cropDuster; + } + + public Tractor getTractor() { + return tractor; + } + + public Tractor getJohnDeer() { + return johnDeer; + } + + private void populateAllStables(){ + Arrays + .asList("Party Skips Frank Greta".split(" ")) + .forEach(name -> stables.get(0).add(new Horse(name))); + Arrays + .asList("Yorgle Spoon Fork".split(" ")) + .forEach(name -> stables.get(1).add(new Horse(name))); + Arrays + .asList("Harry Milo Hoovey".split(" ")) + .forEach(name -> stables.get(2).add(new Horse(name))); + } + + private void populateAllChickenCoops(){ + Arrays + .asList("Felipe", "Oscar", "Marvey", "Lorraine", "Sally", "Lil peep") + .forEach(name ->chickenCoops.get(0).add(new Chicken(name))); + Arrays + .asList("Eggetha Christie Dr. Bawk Chicklette Mz. Cluck Chicolate".split("")) + .forEach(name -> chickenCoops.get(1).add(new Chicken(name))); + Arrays + .asList("Harry Meghen Amantha Christephanie Henrietta Eggward".split(" ")) + .forEach(name -> chickenCoops.get(2).add(new Chicken(name))); + } + + private void populateField(){ + Arrays + .asList(new CornStalk(),new TomatoPlant(), new CarrotFlower(), new CornStalk(), new TomatoPlant()) + .forEach(crop -> { + CropRow row = new CropRow(); + row.plantCrop(crop); + field.add(row); + }); + } + + public void populateFarmHouse(){ + Froilanda msFroid = Froilanda.getInstance(); + Froilan mrFroid = Froilan.getInstance(); + farmhouse.add(msFroid); + farmhouse.add(mrFroid); + } + + public Pantry getPantry() { + return pantry; + } +} 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..d0e912ce --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Field.java @@ -0,0 +1,19 @@ +package com.zipcodewilmington.froilansfarm; +import com.zipcodewilmington.froilansfarm.Food.CropRow; + +import java.util.ArrayList; +import java.util.List; + +public class Field { + + private List myField = new ArrayList<>(); + + + public void add(CropRow row){ + myField.add(row); + } + + public List getMyField() { + return myField; + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/Food/Carrot.java b/src/main/java/com/zipcodewilmington/froilansfarm/Food/Carrot.java new file mode 100644 index 00000000..af57f801 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Food/Carrot.java @@ -0,0 +1,8 @@ +package com.zipcodewilmington.froilansfarm.Food; + +import com.zipcodewilmington.froilansfarm.Edible; + +public class Carrot implements Edible { + + public Carrot() {} +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/Food/CarrotFlower.java b/src/main/java/com/zipcodewilmington/froilansfarm/Food/CarrotFlower.java new file mode 100644 index 00000000..641ae675 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Food/CarrotFlower.java @@ -0,0 +1,20 @@ +package com.zipcodewilmington.froilansfarm.Food; + +public class CarrotFlower extends Crop{ + + public CarrotFlower(Integer id){ + super(id); + } + + public CarrotFlower(){ + } + + @Override + public Carrot yield () { + if(this.checkFertilized() && !this.checkHarvested()){ // does check harvested have to be false in order to harvest th corn? + this.setHarvested(true); + return new Carrot(); + } + return null; + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/Food/CornStalk.java b/src/main/java/com/zipcodewilmington/froilansfarm/Food/CornStalk.java new file mode 100644 index 00000000..f950a279 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Food/CornStalk.java @@ -0,0 +1,21 @@ +package com.zipcodewilmington.froilansfarm.Food; + +public class CornStalk extends Crop { + + public CornStalk(Integer id){ + super(id); + } + + public CornStalk(){ + } + + @Override + public EarCorn yield () { + if(this.checkFertilized() && !this.checkHarvested()){ // does check harvested have to be false in order to harvest th corn? + this.setHarvested(true); + return new EarCorn(); + } + return null; + } + +} \ No newline at end of file diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/Food/Crop.java b/src/main/java/com/zipcodewilmington/froilansfarm/Food/Crop.java new file mode 100644 index 00000000..be77d15e --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Food/Crop.java @@ -0,0 +1,45 @@ +package com.zipcodewilmington.froilansfarm.Food; + +import com.zipcodewilmington.froilansfarm.Edible; + +public abstract class Crop implements Produce { + private Boolean fertilized; + private Boolean isHarvested; + private Integer id; + + public Crop(Integer id) { + this.fertilized = false; + this.isHarvested = false; + this.id = id; + } + + public Crop() { + this.fertilized = false; + this.isHarvested = false; + this.id = null; + } + + + public void fertilize(){ + this.fertilized = true; + } + + @Override + abstract public Edible yield(); + + public Boolean checkFertilized() { + return fertilized; + } + + public Boolean checkHarvested() { + return isHarvested; + } + + public void setHarvested(Boolean harvested) { + isHarvested = harvested; + } + + public Integer getId() { + return id; + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/Food/CropRow.java b/src/main/java/com/zipcodewilmington/froilansfarm/Food/CropRow.java new file mode 100644 index 00000000..fddbb10e --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Food/CropRow.java @@ -0,0 +1,48 @@ +package com.zipcodewilmington.froilansfarm.Food; + +import com.zipcodewilmington.froilansfarm.Edible; + +import java.util.ArrayList; +import java.util.List; + +public class CropRow { + private List cropList; + + public CropRow() { + cropList = new ArrayList<>(); + } + + public void plantCrop(Crop crop) { + this.cropList.add(crop); + } + + public Integer getNumberOfCrops() { + return cropList.size(); + } + + public Crop getCropById(Integer id) { + Crop result = null; + for (Crop crop : cropList) { + result = id == crop.getId() ? crop : null; + } + return result; + } + + + public void fertilizeRow() { + cropList.forEach(Crop::fertilize); + } + + public ArrayList harvestRow() { + ArrayList harvest = new ArrayList<>(); + cropList.forEach(crop -> { + harvest.add(crop.yield()); + crop.setHarvested(true); + }); + return harvest; + } + + public List getCropList() { + return cropList; + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/Food/EarCorn.java b/src/main/java/com/zipcodewilmington/froilansfarm/Food/EarCorn.java new file mode 100644 index 00000000..f4d6d050 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Food/EarCorn.java @@ -0,0 +1,12 @@ +package com.zipcodewilmington.froilansfarm.Food; + +import com.zipcodewilmington.froilansfarm.Edible; + +public class EarCorn implements Edible { + + public EarCorn() { + } + + + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/Food/Egg.java b/src/main/java/com/zipcodewilmington/froilansfarm/Food/Egg.java new file mode 100644 index 00000000..bde67efa --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Food/Egg.java @@ -0,0 +1,20 @@ +package com.zipcodewilmington.froilansfarm.Food; + +import com.zipcodewilmington.froilansfarm.Edible; + +public class Egg implements Edible { + + private boolean isFertilized; + + public Egg() { + isFertilized = false; + } + + public boolean isItFertilized() { + return isFertilized; + } + + public void setIsFertilized(boolean fertilize) { + this.isFertilized = fertilize; + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/Food/Produce.java b/src/main/java/com/zipcodewilmington/froilansfarm/Food/Produce.java new file mode 100644 index 00000000..c2423d62 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Food/Produce.java @@ -0,0 +1,8 @@ +package com.zipcodewilmington.froilansfarm.Food; + +import com.zipcodewilmington.froilansfarm.Edible; + +public interface Produce { + Boolean isFertilized = null; + Edible yield(); +} 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..46822591 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Food/Tomato.java @@ -0,0 +1,10 @@ +package com.zipcodewilmington.froilansfarm.Food; + +import com.zipcodewilmington.froilansfarm.Edible; + +public class Tomato implements Edible { + + public Tomato() { + } + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/Food/TomatoPlant.java b/src/main/java/com/zipcodewilmington/froilansfarm/Food/TomatoPlant.java new file mode 100644 index 00000000..7961dcb4 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Food/TomatoPlant.java @@ -0,0 +1,23 @@ +package com.zipcodewilmington.froilansfarm.Food; + +import com.zipcodewilmington.froilansfarm.Food.Crop; +import com.zipcodewilmington.froilansfarm.Food.Tomato; + +public class TomatoPlant extends Crop { + + public TomatoPlant(Integer id) { + super(id); + } + + public TomatoPlant() { + } + + @Override + public Tomato yield() { + if(this.checkFertilized() && !this.checkHarvested()){ + this.setHarvested(true); + return new Tomato(); + } + return null; + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/MainApplication.java b/src/main/java/com/zipcodewilmington/froilansfarm/MainApplication.java index fd743ffc..21cef2cc 100644 --- a/src/main/java/com/zipcodewilmington/froilansfarm/MainApplication.java +++ b/src/main/java/com/zipcodewilmington/froilansfarm/MainApplication.java @@ -1,8 +1,28 @@ package com.zipcodewilmington.froilansfarm; +import com.zipcodewilmington.froilansfarm.Mammal.Animal; +import com.zipcodewilmington.froilansfarm.Mammal.Chicken; +import com.zipcodewilmington.froilansfarm.Mammal.Farmer; +import com.zipcodewilmington.froilansfarm.Mammal.Person; + /** * Created by leon on 2/26/18. */ -public class MainApplication { +public class MainApplication{ + + public static void main(String[] args) { + run(); + } + + public static void run() { + Person person1 = new Person(); + System.out.println(person1.makeNoise()); + Animal chicken1 = new Chicken(); + System.out.println(chicken1.makeNoise()); + Person farmer1 = new Farmer(); + System.out.println(farmer1.makeNoise()); + + } + } diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/Mammal/Animal.java b/src/main/java/com/zipcodewilmington/froilansfarm/Mammal/Animal.java new file mode 100644 index 00000000..8cfce7f1 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Mammal/Animal.java @@ -0,0 +1,54 @@ +package com.zipcodewilmington.froilansfarm.Mammal; + +import com.zipcodewilmington.froilansfarm.Eater; +import com.zipcodewilmington.froilansfarm.Edible; +import com.zipcodewilmington.froilansfarm.NoiseMaker; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public abstract class Animal implements Eater, NoiseMaker { + private String name; + public List meals = new ArrayList<>(); + + public Animal() { + name = ""; + } + + public void eat(List edibles) { + for (T edible : edibles) { + eat(edible); + } + } + + + public void eat(T edible){ + getMealList().add(edible); + } + + public void eat(T... edible) { + eat(Arrays.asList(edible)); + } + + //public void eat(T edible) { meals.add(edible); } + + public List getMealList() { return meals; } + + public String makeNoise() { + return null; + } + + public Animal(String name) { + this.name = name; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/Mammal/Chicken.java b/src/main/java/com/zipcodewilmington/froilansfarm/Mammal/Chicken.java new file mode 100644 index 00000000..ff0817e2 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Mammal/Chicken.java @@ -0,0 +1,36 @@ +package com.zipcodewilmington.froilansfarm.Mammal; + +import com.zipcodewilmington.froilansfarm.Food.EarCorn; +import com.zipcodewilmington.froilansfarm.Edible; +import com.zipcodewilmington.froilansfarm.Food.Egg; +import com.zipcodewilmington.froilansfarm.Food.Produce; + + +public class Chicken extends Animal implements Edible, Produce { + private Boolean isFertilized; + + public Chicken(String name) { + super(name); + this.meals = meals; + } + + public Chicken() { } + + @Override + public String makeNoise() { + return "Cluck Cluck"; + } + + public void fertilize(){ + this.isFertilized = true; + } + + @Override + public Egg yield() { + if (isFertilized){ + return new Egg(); + } + return null; + } + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/Mammal/Farmer.java b/src/main/java/com/zipcodewilmington/froilansfarm/Mammal/Farmer.java new file mode 100644 index 00000000..a587e9b8 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Mammal/Farmer.java @@ -0,0 +1,45 @@ +package com.zipcodewilmington.froilansfarm.Mammal; + +import com.zipcodewilmington.froilansfarm.Botanist; +import com.zipcodewilmington.froilansfarm.Edible; +import com.zipcodewilmington.froilansfarm.Food.Crop; +import com.zipcodewilmington.froilansfarm.Food.CropRow; +import com.zipcodewilmington.froilansfarm.Food.Produce; +import com.zipcodewilmington.froilansfarm.Rideable; +import com.zipcodewilmington.froilansfarm.Rider; + +import java.util.ArrayList; +import java.util.List; + +public class Farmer extends Person implements Rider { + + private Rideable isRiding = null; + + + public Farmer(String name) { + super(name); + } + + public Farmer() { + super("Froilan"); + } + + + @Override + public String makeNoise(){ + return "Howdy"; + } + + @Override + public void mount(Rideable rideable) { + this.isRiding = rideable; + } + + @Override + public void dismount(Rideable rideable) { + this.isRiding = null; + } + + public Rideable getIsRiding() { return isRiding; } + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/Mammal/Froilan.java b/src/main/java/com/zipcodewilmington/froilansfarm/Mammal/Froilan.java new file mode 100644 index 00000000..27afb962 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Mammal/Froilan.java @@ -0,0 +1,26 @@ +package com.zipcodewilmington.froilansfarm.Mammal; + +import com.zipcodewilmington.froilansfarm.Botanist; +import com.zipcodewilmington.froilansfarm.Field; +import com.zipcodewilmington.froilansfarm.Food.*; + +public class Froilan extends Farmer implements Botanist { + private static final Froilan froilan = new Froilan(); + + public static Froilan getInstance() { return froilan; } + + public Froilan() { super("Froilan"); } + + + public void plant(Crop crop, CropRow cropRow) { + cropRow.plantCrop(crop); + } + + public void plantRows(Field field) { + this.plant(new CornStalk(), field.getMyField().get(0)); + this.plant(new TomatoPlant(), field.getMyField().get(1)); + this.plant(new CarrotFlower(), field.getMyField().get(2)); + this.plant(new CornStalk(), field.getMyField().get(3)); + this.plant(new TomatoPlant(), field.getMyField().get(4)); + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/Mammal/Froilanda.java b/src/main/java/com/zipcodewilmington/froilansfarm/Mammal/Froilanda.java new file mode 100644 index 00000000..c44e195e --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Mammal/Froilanda.java @@ -0,0 +1,35 @@ +package com.zipcodewilmington.froilansfarm.Mammal; + +import com.zipcodewilmington.froilansfarm.Farm; +import com.zipcodewilmington.froilansfarm.Food.EarCorn; +import com.zipcodewilmington.froilansfarm.Food.Egg; +import com.zipcodewilmington.froilansfarm.Food.Tomato; +import com.zipcodewilmington.froilansfarm.Pilot; +import com.zipcodewilmington.froilansfarm.Rideable; +import com.zipcodewilmington.froilansfarm.Rider; +import com.zipcodewilmington.froilansfarm.Vehicles.CropDuster; +import com.zipcodewilmington.froilansfarm.Vehicles.Vehicle; + +public class Froilanda extends Farmer implements Pilot { + private static final Froilanda froilanda = new Froilanda(); + + public static Froilanda getInstance(){ + return froilanda; + } + + private Froilanda() { + super("Froilanda"); + } +//this is a singleton + + public void eatBreakfast(EarCorn earCorn, Tomato tomato, Egg egg){ + } + + + @Override + public void fly(Farm farm) { + if(getIsRiding() instanceof CropDuster){ + ((CropDuster) getIsRiding()).operate(farm); + } + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/Mammal/Horse.java b/src/main/java/com/zipcodewilmington/froilansfarm/Mammal/Horse.java new file mode 100644 index 00000000..c27cfbd0 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Mammal/Horse.java @@ -0,0 +1,29 @@ +package com.zipcodewilmington.froilansfarm.Mammal; + +//Horse can only eat Earcorn right now +// < Parameter type goes in here, "extends" - limits what the parameter type can be > + +import com.zipcodewilmington.froilansfarm.Food.EarCorn; +import com.zipcodewilmington.froilansfarm.Rideable; +import com.zipcodewilmington.froilansfarm.Rider; + +public class Horse extends Animal implements Rideable { + + private Farmer rider; + + public Horse(String name) { + super(name); + } + + public Horse() {} + + @Override + public String makeNoise(){ + return "Neigh"; + } + + @Override + public void ride(Farmer rider) { + this.rider = rider; + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/Mammal/Person.java b/src/main/java/com/zipcodewilmington/froilansfarm/Mammal/Person.java new file mode 100644 index 00000000..aa157b68 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Mammal/Person.java @@ -0,0 +1,60 @@ +package com.zipcodewilmington.froilansfarm.Mammal; + +import com.zipcodewilmington.froilansfarm.Edible; +import com.zipcodewilmington.froilansfarm.Eater; +import com.zipcodewilmington.froilansfarm.NoiseMaker; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class Person implements Eater, NoiseMaker { + + private String name; + public List meals = new ArrayList<>(); + + public Person(String name) { + this.name = name; + } + + public Person() { + name = ""; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public void eat(List edibles) { + for (T edible : edibles) { + eat(edible); + } + } + + + @Override + public void eat(T edible){ + getMealList().add(edible); + } + + public void eat(T... edible) { + eat(Arrays.asList(edible)); + } + + + + public List getMealList() { + return meals; + } + + @Override + public String makeNoise() { + return "Hello"; + } + + +} 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..32c142d1 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/NoiseMaker.java @@ -0,0 +1,7 @@ +package com.zipcodewilmington.froilansfarm; + +public interface NoiseMaker { + default String makeNoise() { + return "Ahhhhhhh"; + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/Pilot.java b/src/main/java/com/zipcodewilmington/froilansfarm/Pilot.java new file mode 100644 index 00000000..1e7dab73 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Pilot.java @@ -0,0 +1,9 @@ +package com.zipcodewilmington.froilansfarm; + +import com.zipcodewilmington.froilansfarm.Mammal.Farmer; +import com.zipcodewilmington.froilansfarm.Mammal.Person; + +public interface Pilot { + + public void fly(Farm farm); +} 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..351d9af1 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Rideable.java @@ -0,0 +1,6 @@ +package com.zipcodewilmington.froilansfarm; + +public interface Rideable { + + void ride(R rider); +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/Rider.java b/src/main/java/com/zipcodewilmington/froilansfarm/Rider.java new file mode 100644 index 00000000..d63747fe --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Rider.java @@ -0,0 +1,8 @@ +package com.zipcodewilmington.froilansfarm; + +public interface Rider { + + void mount(R rideable); + void dismount(R rideable); + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/Shelter.java b/src/main/java/com/zipcodewilmington/froilansfarm/Shelter.java new file mode 100644 index 00000000..addaacc1 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Shelter.java @@ -0,0 +1,10 @@ +package com.zipcodewilmington.froilansfarm; + +public interface Shelter { + + void add(ShelterableType thingToBeStored); + + ShelterableType getObjectByName(String name); + + void remove(ShelterableType thingToBeStored); +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/Simulation.java b/src/main/java/com/zipcodewilmington/froilansfarm/Simulation.java new file mode 100644 index 00000000..09ab23de --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Simulation.java @@ -0,0 +1,35 @@ +package com.zipcodewilmington.froilansfarm; + + +import com.zipcodewilmington.froilansfarm.Food.CropRow; +import com.zipcodewilmington.froilansfarm.Food.EarCorn; +import com.zipcodewilmington.froilansfarm.Mammal.*; +import com.zipcodewilmington.froilansfarm.Structure.ChickenCoop; +import com.zipcodewilmington.froilansfarm.Structure.Stable; +import com.zipcodewilmington.froilansfarm.Vehicles.Aircraft; +import com.zipcodewilmington.froilansfarm.Vehicles.CropDuster; +import com.zipcodewilmington.froilansfarm.Vehicles.FarmVehicle; +import com.zipcodewilmington.froilansfarm.Vehicles.Tractor; + +import java.util.Arrays; + +public class Simulation implements Runnable { + public static void main(String[] args) { + new Simulation().run(); + } + + public void run() { + Weekdays weekdays = new Weekdays(new Farm()); + weekdays.tuesday(); + weekdays.wednesday(); + weekdays.thursday(); + weekdays.friday(); + weekdays.saturday(); + weekdays.sunday(); + weekdays.monday(); + + System.out.println("some stuff"); + } +} + + diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/Structure/ChickenCoop.java b/src/main/java/com/zipcodewilmington/froilansfarm/Structure/ChickenCoop.java new file mode 100644 index 00000000..73147fac --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Structure/ChickenCoop.java @@ -0,0 +1,38 @@ +package com.zipcodewilmington.froilansfarm.Structure; + +import com.zipcodewilmington.froilansfarm.Mammal.Chicken; +import com.zipcodewilmington.froilansfarm.Shelter; + +import java.util.ArrayList; +import java.util.List; + +public class ChickenCoop implements Shelter { + + List chickenList = new ArrayList(); + + + + public ChickenCoop() { + } + + public void add(Chicken chicken) { + chickenList.add(chicken); + } + + public Chicken getObjectByName(String name) { + for(Chicken chicken : chickenList) { + if(chicken.getName().equals(name)) { + return chicken; + } + } + return null; + } + + public void remove(Chicken chicken) { + chickenList.remove(chicken); + } + + public List getChickenList() { + return chickenList; + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/Structure/FarmHouse.java b/src/main/java/com/zipcodewilmington/froilansfarm/Structure/FarmHouse.java new file mode 100644 index 00000000..becfe640 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Structure/FarmHouse.java @@ -0,0 +1,41 @@ +package com.zipcodewilmington.froilansfarm.Structure; + +import com.zipcodewilmington.froilansfarm.Mammal.Froilan; +import com.zipcodewilmington.froilansfarm.Mammal.Person; +import com.zipcodewilmington.froilansfarm.Shelter; + +import java.util.ArrayList; +import java.util.List; + +public class FarmHouse implements Shelter { + + List personList = new ArrayList(); + + public FarmHouse() {} + + public void add(Person person) { + personList.add(person); + } + + public Person getObjectByName(String name) { + for(Person person : personList) { + if(person.getName().equals(name)) { + return person; + } + } + return null; + } + + public void remove(Person person) { + personList.remove(person); + } + + public List getPersonList() { + return personList; + } + + public Person getFroi(){ + Froilan froi = (Froilan) getObjectByName("Froilan"); + return froi; + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/Structure/Pantry.java b/src/main/java/com/zipcodewilmington/froilansfarm/Structure/Pantry.java new file mode 100644 index 00000000..8a39355f --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Structure/Pantry.java @@ -0,0 +1,112 @@ +package com.zipcodewilmington.froilansfarm.Structure; + +import com.zipcodewilmington.froilansfarm.Edible; +import com.zipcodewilmington.froilansfarm.Food.Carrot; +import com.zipcodewilmington.froilansfarm.Food.EarCorn; +import com.zipcodewilmington.froilansfarm.Food.Egg; +import com.zipcodewilmington.froilansfarm.Food.Tomato; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class Pantry { + private List carrotsBasket = new ArrayList<>(); + private List earCornsBasket = new ArrayList<>(); + private List eggsBasket = new ArrayList<>(); + private List tomatoesBasket = new ArrayList<>(); + + public Pantry(){ + populateCarrots(); + populateEarCorns(); + populateEggs(); + populateTomatoes(); + } + + public Integer countCarrots() { + return carrotsBasket.size(); + } + + public void storeCarrot(T carrot) { + this.carrotsBasket.add((Carrot) carrot); + } + + public List takeCarrot(Integer count){ + Carrot[] result = new Carrot[count]; + for (int i = 0; i < count; i++) { + result[i] = this.carrotsBasket.remove(0); + } + return Arrays.asList(result); + } + + public Integer countEarCorns() { + return earCornsBasket.size(); + } + + public void storeEarCorn(T earCorn) { + this.earCornsBasket.add((EarCorn) earCorn); + } + + public List takeEarCorn(Integer count){ + EarCorn[] result = new EarCorn[count]; + for (int i = 0; i < count; i++) { + result[i] = this.earCornsBasket.remove(0); + } + return Arrays.asList(result); + } + + public Integer countEggs() { + return eggsBasket.size(); + } + + public void storeEgg(T egg) { + this.eggsBasket.add((Egg) egg); + } + + public List takeEgg(Integer count){ + Egg[] result = new Egg[count]; + for (int i = 0; i < count; i++) { + result[i] = this.eggsBasket.remove(0); + } + return Arrays.asList(result); + } + + public Integer countTomatoes() { + return tomatoesBasket.size(); + } + + public void storeTomato(T tomato) { + this.tomatoesBasket.add((Tomato) tomato); + } + + public List takeTomato(Integer count){ + Tomato[] result = new Tomato[count]; + for (int i = 0; i < count; i++) { + result[i] = this.tomatoesBasket.remove(0); + } + return Arrays.asList(result); + } + + public void populateCarrots(){ + for (int i = 0; i < 100; i++) { + this.storeCarrot((T) new Carrot()); + } + } + public void populateEarCorns(){ + for (int i = 0; i < 100; i++) { + this.storeEarCorn((T) new EarCorn()); + } + } + public void populateEggs(){ + for (int i = 0; i < 100; i++) { + this.storeEgg((T) new Egg()); + } + } + public void populateTomatoes(){ + for (int i = 0; i < 100; i++) { + this.storeTomato((T) new Tomato()); + } + } +} + +// \ No newline at end of file diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/Structure/Stable.java b/src/main/java/com/zipcodewilmington/froilansfarm/Structure/Stable.java new file mode 100644 index 00000000..493cc41f --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Structure/Stable.java @@ -0,0 +1,35 @@ +package com.zipcodewilmington.froilansfarm.Structure; + +import com.zipcodewilmington.froilansfarm.Mammal.Horse; +import com.zipcodewilmington.froilansfarm.Shelter; + +import java.util.ArrayList; +import java.util.List; + +public class Stable implements Shelter { + + List horseList = new ArrayList(); + + public Stable() {} + + public void add(Horse horse) { + horseList.add(horse); + } + + public Horse getObjectByName(String name) { + for(Horse horse : horseList) { + if(horse.getName().equals(name)) { + return horse; + } + } + return null; + } + + public void remove(Horse horse) { + horseList.remove(horse); + } + + public List getHorseList() { + return horseList; + } +} 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..ae54baf7 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Vehicles/Aircraft.java @@ -0,0 +1,18 @@ +package com.zipcodewilmington.froilansfarm.Vehicles; + +import com.zipcodewilmington.froilansfarm.Rider; + +public abstract class Aircraft implements Vehicle{ + + + + public String makeNoise() { + return "Bzzzzeewwwwwwwwwww Rat-tat-tat-tat-tat"; + } + + public String shoot(){ + return "BULLETS"; + } + + +} 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..6b03a6e0 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Vehicles/CropDuster.java @@ -0,0 +1,32 @@ +package com.zipcodewilmington.froilansfarm.Vehicles; + +import com.zipcodewilmington.froilansfarm.Farm; +import com.zipcodewilmington.froilansfarm.Field; +import com.zipcodewilmington.froilansfarm.Food.CropRow; +import com.zipcodewilmington.froilansfarm.Pilot; +import com.zipcodewilmington.froilansfarm.Rider; + +public class CropDuster extends Aircraft implements FarmVehicle { + private Pilot pilot; + + public void fly(Field field) { + for(CropRow element : field.getMyField()){ + element.fertilizeRow(); + } + } + + + @Override + public void ride(Rider rider) { + this.pilot = (Pilot)rider; + } + + @Override + public void operate(Farm farm) { + this.fly(farm.getField()); + } + + public Pilot getPilot() { + return pilot; + } +} 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..95694db0 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Vehicles/FarmVehicle.java @@ -0,0 +1,7 @@ +package com.zipcodewilmington.froilansfarm.Vehicles; + +import com.zipcodewilmington.froilansfarm.Farm; + +public interface FarmVehicle extends Vehicle{ + void operate(Farm farm); // +} 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..8ed67a29 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Vehicles/Tractor.java @@ -0,0 +1,64 @@ +package com.zipcodewilmington.froilansfarm.Vehicles; + +import com.zipcodewilmington.froilansfarm.Edible; +import com.zipcodewilmington.froilansfarm.Farm; +import com.zipcodewilmington.froilansfarm.Food.*; +import com.zipcodewilmington.froilansfarm.Rider; + +import java.util.ArrayList; +import java.util.List; + +public class Tractor implements FarmVehicle{ + private Rider rider; + private List aList = new ArrayList<>(); + + public void harvest(Edible crop){ + aList.add(crop); + } + + + public String makeNoise() { + return "Chuggumgumgumgumgum"; + } + + + + public void ride(Rider rider) { + this.rider = rider; + } + + public void operate(Farm farm) { + List rows = farm.getField().getMyField(); + for(int i = 0; i < rows.size(); i++){ + ArrayList listOfCrops = rows.get(i).harvestRow(); + for(int j = 0; j < listOfCrops.size(); j++){ + harvest(listOfCrops.get(j)); + } + } + } + + public void storeHarvest(Farm farm){ + for(Edible edible: aList){ + if(edible instanceof EarCorn){ + farm.getPantry().storeEarCorn(edible); + } + if(edible instanceof Egg){ + farm.getPantry().storeEgg(edible); + } + if(edible instanceof Tomato){ + farm.getPantry().storeTomato(edible); + } + if(edible instanceof Carrot){ + farm.getPantry().storeCarrot(edible); + } + } + } + + public List getaList() { + return aList; + } + + public Rider getRider() { + return rider; + } +} 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..931ff10c --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Vehicles/Vehicle.java @@ -0,0 +1,7 @@ +package com.zipcodewilmington.froilansfarm.Vehicles; + +import com.zipcodewilmington.froilansfarm.NoiseMaker; +import com.zipcodewilmington.froilansfarm.Rideable; + +public interface Vehicle extends NoiseMaker, Rideable { +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/Weekdays.java b/src/main/java/com/zipcodewilmington/froilansfarm/Weekdays.java new file mode 100644 index 00000000..2f015547 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/Weekdays.java @@ -0,0 +1,142 @@ +package com.zipcodewilmington.froilansfarm; + + +import com.zipcodewilmington.froilansfarm.Food.*; +import com.zipcodewilmington.froilansfarm.Mammal.*; +import com.zipcodewilmington.froilansfarm.Structure.ChickenCoop; +import com.zipcodewilmington.froilansfarm.Structure.Stable; +import com.zipcodewilmington.froilansfarm.Vehicles.CropDuster; +import com.zipcodewilmington.froilansfarm.Vehicles.Tractor; + + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class Weekdays { + private Farm farm = new Farm(); + + public Weekdays(Farm farm){ + this.farm = farm; + } + + Froilan froilan = (Froilan) farm.getFarmhouse().getObjectByName("Froilan"); + Froilanda froilanda = Froilanda.getInstance(); + + List> stables = farm.getStables(); + List> chickenCoops = farm.getChickenCoops(); + + EarCorn earCorn = new EarCorn(); + CornStalk cornStalk = new CornStalk(); + TomatoPlant tomatoPlant = new TomatoPlant(); + CropRow cropRow = new CropRow(); + + CropDuster cropDuster = farm.getCropDuster(); + Tractor tractor = farm.getTractor(); + + public void sunday() { + List cropRows = farm.getField().getMyField(); + morningRoutine(farm); + froilan.plantRows(farm.getField()); + lunch(); + dinner(); + } + + public void monday() { + morningRoutine(farm); + froilanda.mount(cropDuster); + froilanda.fly(farm); + lunch(); + dinner(); + } + + public void tuesday() { + morningRoutine(farm); + froilan.mount(tractor); + tractor.operate(farm); + lunch(); + dinner(); + } + + public void wednesday() { + List cropRows = farm.getField().getMyField(); + morningRoutine(farm); + froilan.plantRows(farm.getField()); + lunch(); + dinner(); + } + + public void thursday() { + morningRoutine(farm); + froilan.mount(tractor); + tractor.operate(farm); + lunch(); + dinner(); + } + + public void friday() { + List cropRows = farm.getField().getMyField(); + morningRoutine(farm); + froilan.plantRows(farm.getField()); + lunch(); + dinner(); + } + + public void saturday() { + morningRoutine(farm); + lunch(); + dinner(); + } + + public void morningRoutine(Farm farm) { + for (int i = 0; i < stables.size(); i++) { + Stable stable = (Stable) stables.get(i); + for (Horse horse : stable.getHorseList()) { + horse.eat(new EarCorn(), new EarCorn(), new EarCorn()); + froilan.mount(horse); + horse.ride(froilan); + } + } + + for(int i = 0; i < chickenCoops.size(); i++) { + ChickenCoop coop = (ChickenCoop) chickenCoops.get(i); + List x = farm.getPantry().takeEarCorn(1); + coop.getChickenList().forEach(chicken -> chicken.eat((EarCorn) x)); + } + + + List breakFast = farm.getPantry().takeEarCorn(1); + breakFast.addAll(farm.getPantry().takeTomato(2)); + breakFast.addAll(farm.getPantry().takeEgg(5)); + froilan.eat(breakFast); + breakFast = farm.getPantry().takeEarCorn(2); + breakFast.addAll(farm.getPantry().takeTomato(1)); + breakFast.addAll(farm.getPantry().takeEgg(2)); + froilanda.eat(breakFast); + + } + + public void lunch() { + List lunch = farm.getPantry().takeCarrot(2); + lunch.addAll(farm.getPantry().takeTomato(3)); + lunch.addAll(farm.getPantry().takeEgg(3)); + froilan.eat(lunch); + lunch = farm.getPantry().takeEarCorn(1); + lunch.addAll(farm.getPantry().takeCarrot(3)); + lunch.addAll(farm.getPantry().takeEgg(2)); + froilanda.eat(lunch); + } + + public void dinner() { + List dinner = farm.getPantry().takeCarrot(1); + dinner.addAll(farm.getPantry().takeEarCorn(1)); + dinner.addAll(farm.getPantry().takeTomato(2)); + dinner.addAll(farm.getPantry().takeEgg(2)); + froilan.eat(dinner); + dinner = farm.getPantry().takeCarrot(1); + dinner.addAll(farm.getPantry().takeEarCorn(1)); + dinner.addAll(farm.getPantry().takeTomato(2)); + dinner.addAll(farm.getPantry().takeEgg(2)); + froilanda.eat(dinner); + } +} 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..9d8d934e --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/FarmTest.java @@ -0,0 +1,41 @@ +package com.zipcodewilmington.froilansfarm; + +import com.zipcodewilmington.froilansfarm.Mammal.Chicken; +import com.zipcodewilmington.froilansfarm.Mammal.Horse; +import com.zipcodewilmington.froilansfarm.Mammal.Person; +import com.zipcodewilmington.froilansfarm.Structure.ChickenCoop; +import com.zipcodewilmington.froilansfarm.Structure.FarmHouse; +import com.zipcodewilmington.froilansfarm.Structure.Stable; +import com.zipcodewilmington.froilansfarm.Vehicles.CropDuster; +import com.zipcodewilmington.froilansfarm.Vehicles.Tractor; +import org.junit.Assert; +import org.junit.Test; + +import java.util.Arrays; +import java.util.List; + +public class FarmTest { + + @Test + public void farmConstructorTest() { + Farm farm = new Farm(); + + boolean actualFarm = farm.getFarmhouse() != null; + boolean actualCoops = farm.getChickenCoops() != null; + boolean actualDuster = farm.getCropDuster() != null; + boolean actualStables = farm.getStables() != null; + boolean actualTractor = farm.getTractor() != null; + boolean actualField = farm.getField() != null; + boolean actualJohnDeer = farm.getJohnDeer() != null; + + + Assert.assertTrue(actualFarm); + Assert.assertTrue(actualCoops); + Assert.assertTrue(actualDuster); + Assert.assertTrue(actualStables); + Assert.assertTrue(actualTractor); + Assert.assertTrue(actualField); + Assert.assertTrue(actualJohnDeer); + + } +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/FoodTests/CarrotFlowerTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/FoodTests/CarrotFlowerTest.java new file mode 100644 index 00000000..7e6d57f3 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/FoodTests/CarrotFlowerTest.java @@ -0,0 +1,72 @@ +package com.zipcodewilmington.froilansfarm.FoodTests; + +import com.zipcodewilmington.froilansfarm.Edible; +import com.zipcodewilmington.froilansfarm.Food.*; +import org.junit.Assert; +import org.junit.Test; + +public class CarrotFlowerTest { + + @Test + public void setHarvestedTest() { + CarrotFlower carrotFlower = new CarrotFlower(2); + carrotFlower.setHarvested(true); + boolean actual = carrotFlower.checkHarvested(); + Assert.assertEquals(true, actual); + + } + + @Test + public void checkHarvestedTest() { + CarrotFlower carrotFlower = new CarrotFlower(2); + boolean actual = carrotFlower.checkHarvested(); + Assert.assertEquals(false, actual); + + } + + @Test + public void setFertilizedTest(){ + CarrotFlower carrotFlower = new CarrotFlower(2); + carrotFlower.fertilize(); + Boolean stalkIsFertilized = carrotFlower.checkFertilized(); + Assert.assertTrue(stalkIsFertilized); + } + + @Test + public void checkFertilizedTest() { + CarrotFlower carrotFlower = new CarrotFlower(2); + Boolean stalkIsFertilized = carrotFlower.checkFertilized(); + Assert.assertFalse(stalkIsFertilized); + + } + + + @Test + public void testCornStalkInheritance() { + CarrotFlower carrotFlower = new CarrotFlower(2); + Assert.assertTrue(carrotFlower instanceof Crop); + } + + @Test + public void yieldTest(){ + CarrotFlower carrotFlower = new CarrotFlower(); + carrotFlower.fertilize(); + //when + Edible harvest = carrotFlower.yield(); + Boolean harvested = carrotFlower.checkHarvested(); + //then + Assert.assertTrue(harvest instanceof Carrot); + Assert.assertTrue(harvested); + } + + @Test + public void yieldNullTest(){ + CarrotFlower carrotFlower = new CarrotFlower(); + //when + Edible harvest = carrotFlower.yield(); + Boolean harvested = carrotFlower.checkHarvested(); + //then + Assert.assertNull(harvest); + Assert.assertFalse(harvested); + } +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/FoodTests/CarrotTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/FoodTests/CarrotTest.java new file mode 100644 index 00000000..9ae858bf --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/FoodTests/CarrotTest.java @@ -0,0 +1,22 @@ +package com.zipcodewilmington.froilansfarm.FoodTests; + +import com.zipcodewilmington.froilansfarm.Edible; +import com.zipcodewilmington.froilansfarm.Food.Carrot; +import com.zipcodewilmington.froilansfarm.Food.EarCorn; +import org.junit.Assert; +import org.junit.Test; + +public class CarrotTest { + + @Test + public void carrotTest() { + Carrot carrot = new Carrot(); + + } + + @Test + public void testEarCornImplementation() { + Carrot carrot = new Carrot(); + Assert.assertTrue(carrot instanceof Edible); + } +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/FoodTests/CornStalkTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/FoodTests/CornStalkTest.java new file mode 100644 index 00000000..b5e59541 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/FoodTests/CornStalkTest.java @@ -0,0 +1,76 @@ +package com.zipcodewilmington.froilansfarm.FoodTests; + +import com.zipcodewilmington.froilansfarm.Edible; +import com.zipcodewilmington.froilansfarm.Food.CornStalk; +import com.zipcodewilmington.froilansfarm.Food.Crop; + +import com.zipcodewilmington.froilansfarm.Food.EarCorn; +import org.junit.Assert; +import org.junit.Test; + +public class CornStalkTest { + + @Test + public void setHarvestedTest() { + CornStalk cornStalk = new CornStalk(2); + cornStalk.setHarvested(true); + boolean actual = cornStalk.checkHarvested(); + Assert.assertEquals(true, actual); + + } + + @Test + public void checkHarvestedTest() { + CornStalk cornStalk = new CornStalk(2); + boolean actual = cornStalk.checkHarvested(); + Assert.assertEquals(false, actual); + + } + + @Test + public void setFertilizedTest(){ + CornStalk cornStalk = new CornStalk(2); + cornStalk.fertilize(); + Boolean stalkIsFertilized = cornStalk.checkFertilized(); + Assert.assertTrue(stalkIsFertilized); + } + + @Test + public void checkFertilizedTest() { + CornStalk cornStalk = new CornStalk(2); + Boolean stalkIsFertilized = cornStalk.checkFertilized(); + Assert.assertFalse(stalkIsFertilized); + + } + + + @Test + public void testCornStalkInheritance() { + CornStalk cornStalk = new CornStalk(2); + Assert.assertTrue(cornStalk instanceof Crop); + } + + @Test + public void yieldTest(){ + CornStalk cornStalk = new CornStalk(); + cornStalk.fertilize(); + //when + Edible harvest = cornStalk.yield(); + Boolean harvested = cornStalk.checkHarvested(); + //then + Assert.assertTrue(harvest instanceof EarCorn); + Assert.assertTrue(harvested); + } + + @Test + public void yieldNullTest(){ + CornStalk cornStalk = new CornStalk(); + //when + Edible harvest = cornStalk.yield(); + Boolean harvested = cornStalk.checkHarvested(); + //then + Assert.assertNull(harvest); + Assert.assertFalse(harvested); + } + +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/FoodTests/CropRowTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/FoodTests/CropRowTest.java new file mode 100644 index 00000000..0eb42af6 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/FoodTests/CropRowTest.java @@ -0,0 +1,93 @@ +package com.zipcodewilmington.froilansfarm.FoodTests; + +import com.zipcodewilmington.froilansfarm.Edible; +import com.zipcodewilmington.froilansfarm.Food.*; +import org.junit.Assert; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.Arrays; + +public class CropRowTest { + + @Test + public void cropRowConstructorTest(){ + //given + CropRow myCropRow = new CropRow(); + Integer exp = 0; + Integer act = myCropRow.getNumberOfCrops(); + //then + Assert.assertEquals(exp,act); + } + + @Test + public void plantCropTest() { + //given + CropRow myCropRow = new CropRow(); + Crop tomatoPlant = new TomatoPlant(); + //when + myCropRow.plantCrop(tomatoPlant); + Integer exp = 1; + Integer act = myCropRow.getNumberOfCrops(); + //then + Assert.assertEquals(exp,act); + } + + @Test + public void getCropByIdTest(){ + //given + CropRow myCropRow = new CropRow(); + Crop tomato1 = new TomatoPlant(1); + Crop corn = new CornStalk(2); + Crop tomato2 = new TomatoPlant(3); + //when + myCropRow.plantCrop(corn); + myCropRow.plantCrop(tomato1); + myCropRow.plantCrop(tomato2); + Crop retrieved = myCropRow.getCropById(3); + //then + Assert.assertEquals(tomato2,retrieved); + } + + @Test + public void fertilizeRowTest(){ + //given + CropRow myCropRow = new CropRow(); + Crop tomato1 = new TomatoPlant(1); + Crop corn = new CornStalk(2); + Crop tomato2 = new TomatoPlant(3); + myCropRow.plantCrop(corn); + myCropRow.plantCrop(tomato1); + myCropRow.plantCrop(tomato2); + //when + myCropRow.fertilizeRow(); + Boolean cornIsFertilized = corn.checkFertilized(); + Boolean tomato1IsFertilized = tomato1.checkFertilized(); + //then + Assert.assertTrue(cornIsFertilized); + Assert.assertTrue(tomato1IsFertilized); + + } + + @Test + public void harvestRowTest(){ + //given + CropRow myCropRow = new CropRow(); + Crop tomato1 = new TomatoPlant(1); + Crop corn = new CornStalk(2); + Crop tomato2 = new TomatoPlant(3); + myCropRow.plantCrop(corn); + myCropRow.plantCrop(tomato1); + myCropRow.plantCrop(tomato2); + myCropRow.fertilizeRow(); + //when + ArrayList basket = myCropRow.harvestRow(); + for(Edible item: basket){ + System.out.println(item.getClass().getSimpleName()); + } + //then + + } + + +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/FoodTests/EarCornTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/FoodTests/EarCornTest.java new file mode 100644 index 00000000..d1bf8261 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/FoodTests/EarCornTest.java @@ -0,0 +1,22 @@ +package com.zipcodewilmington.froilansfarm.FoodTests; + +import com.zipcodewilmington.froilansfarm.Edible; +import com.zipcodewilmington.froilansfarm.Food.EarCorn; +import com.zipcodewilmington.froilansfarm.Food.Egg; +import org.junit.Assert; +import org.junit.Test; + +public class EarCornTest { + + @Test + public void eggTest() { + EarCorn earCorn = new EarCorn(); + + } + + @Test + public void testEarCornImplementation() { + EarCorn earCorn = new EarCorn(); + Assert.assertTrue(earCorn instanceof Edible); + } +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/FoodTests/EggTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/FoodTests/EggTest.java new file mode 100644 index 00000000..76fc8f92 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/FoodTests/EggTest.java @@ -0,0 +1,38 @@ +package com.zipcodewilmington.froilansfarm.FoodTests; + +import com.zipcodewilmington.froilansfarm.Edible; +import com.zipcodewilmington.froilansfarm.Food.Egg; +import com.zipcodewilmington.froilansfarm.Mammal.Chicken; +import org.junit.Assert; +import org.junit.Test; + +public class EggTest { + + @Test + public void eggTest() { + Edible egg = new Egg(); + Assert.assertTrue(egg instanceof Egg); + } + + @Test + public void testEggImplementation() { + Egg egg = new Egg(); + Assert.assertTrue(egg instanceof Edible); + } + + @Test + public void isItFertilizedTest(){ + Egg egg = new Egg(); + Boolean fertilized = egg.isItFertilized(); + Assert.assertFalse(fertilized); + } + + @Test + public void setIsFertilizedTest(){ + Egg egg = new Egg(); + egg.setIsFertilized(true); + Boolean fertilized = egg.isItFertilized(); + Assert.assertTrue(fertilized); + } + +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/FoodTests/ProduceTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/FoodTests/ProduceTest.java new file mode 100644 index 00000000..f31ecf9f --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/FoodTests/ProduceTest.java @@ -0,0 +1,4 @@ +package com.zipcodewilmington.froilansfarm.FoodTests; + +public class ProduceTest { +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/FoodTests/TomatoPlantTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/FoodTests/TomatoPlantTest.java new file mode 100644 index 00000000..6169dcba --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/FoodTests/TomatoPlantTest.java @@ -0,0 +1,25 @@ +package com.zipcodewilmington.froilansfarm.FoodTests; + +import com.zipcodewilmington.froilansfarm.Edible; +import com.zipcodewilmington.froilansfarm.Food.Tomato; +import com.zipcodewilmington.froilansfarm.Food.TomatoPlant; +import org.junit.Assert; +import org.junit.Test; + +public class TomatoPlantTest { + + @Test + public void yieldTest(){ + TomatoPlant tomatoPlant = new TomatoPlant(); + tomatoPlant.fertilize(); + Edible food = tomatoPlant.yield(); + Assert.assertTrue(food instanceof Tomato); + } + + @Test + public void yieldNullTest(){ + TomatoPlant tomatoPlant = new TomatoPlant(); + Edible food = tomatoPlant.yield(); + Assert.assertNull(food); + } +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/FoodTests/TomatoTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/FoodTests/TomatoTest.java new file mode 100644 index 00000000..ee3a90d9 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/FoodTests/TomatoTest.java @@ -0,0 +1,22 @@ +package com.zipcodewilmington.froilansfarm.FoodTests; + +import com.zipcodewilmington.froilansfarm.Edible; +import com.zipcodewilmington.froilansfarm.Food.Egg; +import com.zipcodewilmington.froilansfarm.Food.Tomato; +import org.junit.Assert; +import org.junit.Test; + +public class TomatoTest { + + @Test + public void tomatoTest() { + Tomato tomato = new Tomato(); + } + + @Test + public void testTomatoImplementation() { + Tomato tomato = new Tomato(); + Assert.assertTrue(tomato instanceof Edible); + } + +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/MammalTests/ChickenTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/MammalTests/ChickenTest.java new file mode 100644 index 00000000..76550874 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/MammalTests/ChickenTest.java @@ -0,0 +1,90 @@ +package com.zipcodewilmington.froilansfarm.MammalTests; + + +import com.zipcodewilmington.froilansfarm.Edible; +import com.zipcodewilmington.froilansfarm.Food.EarCorn; +import com.zipcodewilmington.froilansfarm.Food.Egg; +import com.zipcodewilmington.froilansfarm.Food.Produce; +import com.zipcodewilmington.froilansfarm.Mammal.Animal; +import com.zipcodewilmington.froilansfarm.Mammal.Chicken; +import org.junit.Assert; +import org.junit.Test; + +public class ChickenTest { + + @Test + public void testConstructor() { + //given + String expected = "Franklin"; + //when + Chicken chicken = new Chicken(expected); + String actual = chicken.getName(); + //then + Assert.assertEquals(expected, actual); + } + + @Test + public void testSetName() { + //given + String expected = "Theodore"; + //when + Chicken chicken = new Chicken(expected); + String actual = chicken.getName(); + //then + Assert.assertEquals(expected, actual); + } + + @Test + public void testMakeNoise() { + //given + String expected = "Cluck Cluck"; + //when + Chicken chicken = new Chicken(); + String actual = chicken.makeNoise(); + //then + Assert.assertEquals(expected, actual); + } + + + @Test + public void testYield() { + //given + Chicken chicken = new Chicken(); + //when + chicken.fertilize(); + Edible egg = chicken.yield(); + //then + Assert.assertTrue(egg instanceof Egg); + } + + @Test + public void testEat() { + //given + Chicken chicken = new Chicken(); + //when + EarCorn earCorn = new EarCorn(); + chicken.eat(earCorn); + chicken.getMealList(); + //then + Assert.assertTrue(chicken.meals.contains(earCorn)); + } + + @Test + public void testInheritance() { + Chicken chicken = new Chicken("Clucks"); + Assert.assertTrue(chicken instanceof Animal); + } + + @Test + public void testImplementation() { + Chicken chicken = new Chicken("Fluffers"); + Assert.assertTrue(chicken instanceof Edible); + } + + @Test + public void testImplementationProduce() { + Chicken chicken = new Chicken(); + Assert.assertTrue(chicken instanceof Produce); + } + +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/MammalTests/FarmerTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/MammalTests/FarmerTest.java new file mode 100644 index 00000000..36570181 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/MammalTests/FarmerTest.java @@ -0,0 +1,99 @@ +package com.zipcodewilmington.froilansfarm.MammalTests; + +import com.zipcodewilmington.froilansfarm.Botanist; +import com.zipcodewilmington.froilansfarm.Food.Crop; +import com.zipcodewilmington.froilansfarm.Food.CropRow; +import com.zipcodewilmington.froilansfarm.Food.Tomato; +import com.zipcodewilmington.froilansfarm.Food.TomatoPlant; +import com.zipcodewilmington.froilansfarm.Mammal.Farmer; +import com.zipcodewilmington.froilansfarm.Mammal.Horse; +import com.zipcodewilmington.froilansfarm.Mammal.Person; +import com.zipcodewilmington.froilansfarm.Rideable; +import com.zipcodewilmington.froilansfarm.Rider; +import org.junit.Assert; +import org.junit.Test; + +public class FarmerTest { + + @Test + public void testconstructor() { + //given + String expected = "Froilanda"; + //when + Farmer farmer = new Farmer(expected); + String actual = farmer.getName(); + //then + Assert.assertEquals(expected, actual); + } + + @Test + public void testSetName() { + //given + String expected = "Froiland"; + Person person = new Farmer(expected); + //when + String actual = person.getName(); + //then + Assert.assertEquals(expected, actual); + } + + @Test + public void testMakeNoise() { + //given + String expected = "Howdy"; + //when + Farmer farmer = new Farmer(); + String actual = farmer.makeNoise(); + //then + Assert.assertEquals(expected, actual); + } + + @Test + public void testMount() { + //given + Horse horse = new Horse(); + Rideable expected = horse; + //when + Farmer farmer = new Farmer(); + farmer.mount(horse); + Rideable actual = farmer.getIsRiding(); + //then + Assert.assertEquals(expected, actual); + } + + @Test + public void testDismount() { + //given + Horse horse = new Horse(); + //when + Farmer farmer = new Farmer(); + farmer.mount(horse); + farmer.dismount(horse); + //then + Assert.assertNull(farmer.getIsRiding()); + } + + @Test + public void testEat() { + //given + Farmer farmer = new Farmer(); + //when + Tomato tomato = new Tomato(); + farmer.eat(tomato); + farmer.getMealList(); + //then + Assert.assertTrue(farmer.meals.contains(tomato)); + } + + @Test + public void testInheritance() { + Farmer farmer = new Farmer("Annette"); + Assert.assertTrue(farmer instanceof Person); + } + + @Test + public void testImplementationRider() { + Farmer farmer = new Farmer("Joe"); + Assert.assertTrue(farmer instanceof Rider); + } +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/MammalTests/FroilanTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/MammalTests/FroilanTest.java new file mode 100644 index 00000000..b9178190 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/MammalTests/FroilanTest.java @@ -0,0 +1,112 @@ +package com.zipcodewilmington.froilansfarm.MammalTests; + +import com.zipcodewilmington.froilansfarm.Botanist; +import com.zipcodewilmington.froilansfarm.Food.CropRow; +import com.zipcodewilmington.froilansfarm.Food.Tomato; +import com.zipcodewilmington.froilansfarm.Food.TomatoPlant; +import com.zipcodewilmington.froilansfarm.Mammal.Farmer; +import com.zipcodewilmington.froilansfarm.Mammal.Froilan; +import com.zipcodewilmington.froilansfarm.Mammal.Horse; +import com.zipcodewilmington.froilansfarm.Mammal.Person; +import com.zipcodewilmington.froilansfarm.Rideable; +import com.zipcodewilmington.froilansfarm.Rider; +import org.junit.Assert; +import org.junit.Test; + +public class FroilanTest { + + @Test + public void testconstructor() { + //given + String expected = "Froilan"; + //when + Froilan froilan = Froilan.getInstance(); + String actual = froilan.getName(); + //then + Assert.assertEquals(expected, actual); + } + + @Test + public void testSetName() { + //given + String expected = "Froilan"; + Froilan froilan = Froilan.getInstance(); + //when + String actual = froilan.getName(); + //then + Assert.assertEquals(expected, actual); + } + + @Test + public void testPlant() { + //given + TomatoPlant tomatoPlant = new TomatoPlant(0); + CropRow cropRow = new CropRow(); + Froilan farmer = Froilan.getInstance(); + //when + farmer.plant(tomatoPlant, cropRow); + //then + Assert.assertTrue(tomatoPlant.equals(cropRow.getCropById(0))); + } + + @Test + public void testMakeNoise() { + //given + String expected = "Howdy"; + //when + Froilan froilan = Froilan.getInstance(); + String actual = froilan.makeNoise(); + //then + Assert.assertEquals(expected, actual); + } + + @Test + public void testMount() { + //given + Horse horse = new Horse(); + Rideable expected = horse; + //when + Froilan froilan = Froilan.getInstance(); + froilan.mount(horse); + Rideable actual = froilan.getIsRiding(); + //then + Assert.assertEquals(expected, actual); + } + + @Test + public void testDismount() { + //given + Horse horse = new Horse(); + //when + Froilan froilan = Froilan.getInstance(); + froilan.mount(horse); + froilan.dismount(horse); + //then + Assert.assertNull(froilan.getIsRiding()); + } + + @Test + public void testEat() { + //given + Froilan froilan = Froilan.getInstance(); + //when + Tomato tomato = new Tomato(); + froilan.eat(tomato); + froilan.getMealList(); + //then + Assert.assertTrue(froilan.meals.contains(tomato)); + } + + @Test + public void testInheritance() { + Froilan froilan = Froilan.getInstance(); + Assert.assertTrue(froilan instanceof Farmer); + } + + @Test + public void testImplementationBotanist() { + Froilan froilan = Froilan.getInstance(); + Assert.assertTrue(froilan instanceof Botanist); + } + +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/MammalTests/FroilandaTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/MammalTests/FroilandaTest.java new file mode 100644 index 00000000..dc2dcd67 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/MammalTests/FroilandaTest.java @@ -0,0 +1,123 @@ +package com.zipcodewilmington.froilansfarm.MammalTests; + +import com.zipcodewilmington.froilansfarm.Farm; +import com.zipcodewilmington.froilansfarm.Food.Tomato; +import com.zipcodewilmington.froilansfarm.Mammal.Farmer; +import com.zipcodewilmington.froilansfarm.Mammal.Froilanda; +import com.zipcodewilmington.froilansfarm.Mammal.Horse; +import com.zipcodewilmington.froilansfarm.Pilot; +import com.zipcodewilmington.froilansfarm.Rideable; +import com.zipcodewilmington.froilansfarm.Vehicles.CropDuster; +import org.junit.Assert; +import org.junit.Test; + +public class FroilandaTest { + @Test + public void testconstructor() { + //given + String expected = "Froilanda"; + //when + Froilanda froilanda = Froilanda.getInstance(); + String actual = froilanda.getName(); + //then + Assert.assertEquals(expected, actual); + } + + @Test + public void testSetName() { + //given + String expected = "Froilanda"; + Froilanda froilanda = Froilanda.getInstance(); + //when + String actual = froilanda.getName(); + //then + Assert.assertEquals(expected, actual); + } + + @Test + public void testMakeNoise() { + //given + String expected = "Howdy"; + //when + Froilanda froilanda = Froilanda.getInstance(); + String actual = froilanda.makeNoise(); + //then + Assert.assertEquals(expected, actual); + } + + @Test + public void testMount() { + //given + Horse horse = new Horse(); + Rideable expected = horse; + //when + Froilanda froilanda = Froilanda.getInstance(); + froilanda.mount(horse); + + Rideable actual = froilanda.getIsRiding(); + //then + Assert.assertEquals(expected, actual); + } + + @Test + public void testDismount() { + //given + Horse horse = new Horse(); + //when + Froilanda froilanda = Froilanda.getInstance(); + froilanda.mount(horse); + froilanda.dismount(horse); + //then + Assert.assertNull(froilanda.getIsRiding()); + } + + @Test + public void testEat() { + //given + Froilanda froilanda = Froilanda.getInstance(); + //when + Tomato tomato = new Tomato(); + froilanda.eat(tomato); + froilanda.getMealList(); + //then + Assert.assertTrue(froilanda.meals.contains(tomato)); + } + + @Test + public void testFly() { + //given + Froilanda froilanda = Froilanda.getInstance(); + CropDuster cropDuster = new CropDuster(); + Farm farm = new Farm(); + Assert.assertFalse(farm + .getField() + .getMyField() + .get(0) + .getCropList() + .get(0) + .checkFertilized()); + //when + froilanda.mount(cropDuster); + froilanda.fly(farm); + //then + Assert.assertTrue(farm + .getField() + .getMyField() + .get(0) + .getCropList() + .get(0) + .checkFertilized()); + } + + @Test + public void testInheritance() { + Froilanda froilanda = Froilanda.getInstance(); + Assert.assertTrue(froilanda instanceof Farmer); + } + + @Test + public void testImplementationBotanist() { + Froilanda froilanda = Froilanda.getInstance(); + Assert.assertTrue(froilanda instanceof Pilot); + } +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/MammalTests/HorseTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/MammalTests/HorseTest.java new file mode 100644 index 00000000..e5590a8d --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/MammalTests/HorseTest.java @@ -0,0 +1,83 @@ +package com.zipcodewilmington.froilansfarm.MammalTests; + +import com.zipcodewilmington.froilansfarm.Edible; +import com.zipcodewilmington.froilansfarm.Food.EarCorn; +import com.zipcodewilmington.froilansfarm.Mammal.Animal; +import com.zipcodewilmington.froilansfarm.Mammal.Chicken; +import com.zipcodewilmington.froilansfarm.Mammal.Farmer; +import com.zipcodewilmington.froilansfarm.Mammal.Horse; +import com.zipcodewilmington.froilansfarm.Rideable; +import org.junit.Assert; +import org.junit.Test; + +public class HorseTest { + + @Test + public void testConstructor() { + //given + String expected = "Cyan"; + //when + Horse horse = new Horse(expected); + String actual = horse.getName(); + //then + Assert.assertEquals(expected, actual); + } + + @Test + public void testSetName() { + //given + String expected = "Spring"; + //when + Horse horse = new Horse(expected); + String actual = horse.getName(); + //then + Assert.assertEquals(expected, actual); + } + + @Test + public void testMakeNoise() { + //given + String expected = "Neigh"; + //when + Horse horse = new Horse(); + String actual = horse.makeNoise(); + //then + Assert.assertEquals(expected, actual); + } + + @Test + public void testRide() { + //given + Horse horse = new Horse(); + Farmer farmer = new Farmer(); + //when + horse.ride(farmer); + //then + + + } + + @Test + public void testEat() { + //given + Horse horse = new Horse(); + //when + EarCorn earCorn = new EarCorn(); + horse.eat(earCorn); + horse.getMealList(); + //then + Assert.assertTrue(horse.meals.contains(earCorn)); + } + + @Test + public void testInheritance() { + Horse horse = new Horse("Harvey"); + Assert.assertTrue(horse instanceof Animal); + } + + @Test + public void testImplementation() { + Horse horse = new Horse(); + Assert.assertTrue(horse instanceof Rideable); + } +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/MammalTests/PersonTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/MammalTests/PersonTest.java new file mode 100644 index 00000000..f00af7a0 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/MammalTests/PersonTest.java @@ -0,0 +1,69 @@ +package com.zipcodewilmington.froilansfarm.MammalTests; + +import com.zipcodewilmington.froilansfarm.Eater; +import com.zipcodewilmington.froilansfarm.Food.Tomato; +import com.zipcodewilmington.froilansfarm.Mammal.Farmer; +import com.zipcodewilmington.froilansfarm.Mammal.Person; +import com.zipcodewilmington.froilansfarm.NoiseMaker; +import org.junit.Assert; +import org.junit.Test; + +public class PersonTest { + + @Test + public void testConstructor() { + //given + String expected = "Sophia"; + Person person = new Person(expected); + //when + String actual = person.getName(); + //then + Assert.assertEquals(expected, actual); + } + + @Test + public void testSetName() { + //given + String expected = "Tyler"; + //when + Person person = new Person(expected); + String actual = person.getName(); + //then + Assert.assertEquals(expected, actual); + } + + @Test + public void testMakeNoise() { + //given + String expected = "Hello"; + Person person = new Person(); + //when + String actual = person.makeNoise(); + //then + Assert.assertEquals(expected, actual); + } + + @Test + public void testEat() { + //given + Person person = new Person(); + //when + Tomato tomato = new Tomato(); + person.eat(tomato); + person.getMealList(); + //then + Assert.assertTrue(person.meals.contains(tomato)); + } + + @Test + public void testImplementationEater() { + Person person = new Person(); + Assert.assertTrue(person instanceof Eater); + } + + @Test + public void testImplementationNoiseMaker() { + Person person = new Person(); + Assert.assertTrue(person instanceof NoiseMaker); + } +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/StructureTests/ChickenCoopTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/StructureTests/ChickenCoopTest.java new file mode 100644 index 00000000..92faab34 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/StructureTests/ChickenCoopTest.java @@ -0,0 +1,83 @@ +package com.zipcodewilmington.froilansfarm.StructureTests; + +import com.zipcodewilmington.froilansfarm.Farm; +import com.zipcodewilmington.froilansfarm.Mammal.Chicken; +import com.zipcodewilmington.froilansfarm.Shelter; +import com.zipcodewilmington.froilansfarm.Structure.ChickenCoop; +import org.junit.Assert; +import org.junit.Test; + +public class ChickenCoopTest { + + @Test + public void testConstructor() { + //given + String expected = "Frank"; + Chicken chicken = new Chicken(expected); + //when + ChickenCoop chickenCoop = new ChickenCoop(); + chickenCoop.add(chicken); + //then + Assert.assertTrue(chickenCoop.getChickenList().contains(chicken)); + } + + @Test + public void testGetObjectByName() { + //given + String name = "Frank"; + Chicken expected = new Chicken(name); + //when + ChickenCoop chickenCoop = new ChickenCoop(); + chickenCoop.add(expected); + Chicken actual = chickenCoop.getObjectByName(name); + //then + Assert.assertTrue(expected.equals(actual)); + } + + @Test + public void testAdd() { + //given + Chicken chicken = new Chicken("Harry"); + //when + ChickenCoop chickenCoop = new ChickenCoop(); + chickenCoop.add(chicken); + //then + Assert.assertTrue(chickenCoop.getChickenList().contains(chicken)); + } + + @Test + public void testRemove() { + //given + Chicken chicken1 = new Chicken("Harry"); + Chicken chicken2 = new Chicken("Megan"); + //when + ChickenCoop chickenCoop = new ChickenCoop(); + chickenCoop.add(chicken1); + chickenCoop.add(chicken2); + chickenCoop.remove(chicken1); + //then + Assert.assertFalse(chickenCoop.getChickenList().contains(chicken1)); + } + + @Test + public void testImplementation() { + ChickenCoop chickenCoop = new ChickenCoop(); + Assert.assertTrue(chickenCoop instanceof Shelter); + } + + @Test + public void elementTest() { + + //Given + ChickenCoop chickenCoop = new ChickenCoop(); + Chicken actual = chickenCoop.getObjectByName("Felipe"); + Assert.assertNull(actual); + chickenCoop.add(new Chicken("Felipe")); + + //When + actual = chickenCoop.getObjectByName("Felipe"); + + //Then + Assert.assertNotNull(actual); + } +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/StructureTests/FarmHouseTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/StructureTests/FarmHouseTest.java new file mode 100644 index 00000000..602e366b --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/StructureTests/FarmHouseTest.java @@ -0,0 +1,98 @@ +package com.zipcodewilmington.froilansfarm.StructureTests; + +import com.zipcodewilmington.froilansfarm.Mammal.Chicken; +import com.zipcodewilmington.froilansfarm.Mammal.Farmer; +import com.zipcodewilmington.froilansfarm.Mammal.Person; +import com.zipcodewilmington.froilansfarm.Shelter; +import com.zipcodewilmington.froilansfarm.Structure.ChickenCoop; +import com.zipcodewilmington.froilansfarm.Structure.FarmHouse; +import org.junit.Assert; +import org.junit.Test; + +public class FarmHouseTest { + + @Test + public void testConstructor() { + //given + String expected = "Froiland"; + Farmer farmer = new Farmer(expected); + //when + FarmHouse farmhouse = new FarmHouse(); + farmhouse.add(farmer); + //then + Assert.assertTrue(farmhouse.getPersonList().contains(farmer)); + } + + @Test + public void testGetObjectByName() { + //given + String name = "Frank"; + Person expected = new Farmer(name); + //when + FarmHouse farmhouse = new FarmHouse(); + farmhouse.add(expected); + Person actual = farmhouse.getObjectByName(name); + //then + Assert.assertTrue(expected.equals(actual)); + } + + + @Test + public void testAdd() { + //given + Person person = new Farmer("Froilan"); + //when + FarmHouse farmhouse = new FarmHouse(); + farmhouse.add(person); + //then + Assert.assertTrue(farmhouse.getPersonList().contains(person)); + } + + @Test + public void testRemove() { + //given + Person person1 = new Farmer("Froilan"); + Person person2 = new Farmer("Froilanda"); + //when + FarmHouse farmhouse = new FarmHouse(); + farmhouse.add(person1); + farmhouse.add(person2); + farmhouse.remove(person1); + //then + Assert.assertFalse(farmhouse.getPersonList().contains(person1)); + } + + @Test + public void testImplementation() { + FarmHouse farmhouse = new FarmHouse(); + Assert.assertTrue(farmhouse instanceof Shelter); + } + + @Test + public void elementTest() { + + //Given + FarmHouse farmHouse = new FarmHouse(); + Person actual = farmHouse.getObjectByName("Froilan"); + Assert.assertNull(actual); + farmHouse.add(new Person("Froilan")); + + //When + actual = farmHouse.getObjectByName("Froilan"); + + //Then + Assert.assertNotNull(actual); + } + +// @Test +// public void testGetName() { +// //given +// String expected = "Froilan"; +// Person person = new Farmer(expected); +// //when +// FarmHouse farmhouse = new FarmHouse(); +// farmhouse.getObjectByName(expected); +// //then +// System.out.println(farmhouse.getObjectByName(expected)); +// } + } diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/StructureTests/PantryTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/StructureTests/PantryTest.java new file mode 100644 index 00000000..a3fdc372 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/StructureTests/PantryTest.java @@ -0,0 +1,41 @@ +package com.zipcodewilmington.froilansfarm.StructureTests; + +import com.zipcodewilmington.froilansfarm.Edible; +import com.zipcodewilmington.froilansfarm.Farm; +import com.zipcodewilmington.froilansfarm.Food.Carrot; +import com.zipcodewilmington.froilansfarm.Structure.Pantry; +import org.junit.Assert; +import org.junit.Test; + +import java.util.Arrays; + +public class PantryTest { + @Test + public void takeTest(){ + //given + Pantry myPantry = new Pantry(); + //when + //Carrot[] twoCarrots = myPantry.takeCarrot(2); + Integer expected = 8; + Integer actual = myPantry.countCarrots(); + //then + Assert.assertEquals(expected,actual); + + //System.out.println(twoCarrots.length + " " + twoCarrots.getClass().getSimpleName()); + + } + + @Test + public void storeCarrotTest(){ + //given + Pantry myPantry = new Pantry(); + Edible myCarrot = new Carrot(); + //when + myPantry.storeCarrot(myCarrot); + Integer actual = myPantry.countCarrots(); + Integer expected = 101; + //then + Assert.assertEquals(expected,actual); + + } +} diff --git a/src/test/java/com/zipcodewilmington/froilansfarm/StructureTests/StableTest.java b/src/test/java/com/zipcodewilmington/froilansfarm/StructureTests/StableTest.java new file mode 100644 index 00000000..cb3161a2 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/StructureTests/StableTest.java @@ -0,0 +1,83 @@ +package com.zipcodewilmington.froilansfarm.StructureTests; + +import com.zipcodewilmington.froilansfarm.Mammal.Chicken; +import com.zipcodewilmington.froilansfarm.Mammal.Horse; +import com.zipcodewilmington.froilansfarm.Shelter; +import com.zipcodewilmington.froilansfarm.Structure.ChickenCoop; +import com.zipcodewilmington.froilansfarm.Structure.Stable; +import org.junit.Assert; +import org.junit.Test; + +public class StableTest { + + @Test + public void testConstructor() { + //given + String expected = "Judy"; + Horse horse = new Horse(expected); + //when + Stable stable = new Stable(); + stable.add(horse); + //then + Assert.assertTrue(stable.getHorseList().contains(horse)); + } + + @Test + public void testGetObjectByName() { + //given + String name = "Frank"; + Horse expected = new Horse(name); + //when + Stable stable = new Stable(); + stable.add(expected); + Horse actual = stable.getObjectByName(name); + //then + Assert.assertTrue(expected.equals(actual)); + } + + @Test + public void testAdd() { + //given + Horse horse = new Horse("Annabell"); + //when + Stable stable = new Stable(); + stable.add(horse); + //then + Assert.assertTrue(stable.getHorseList().contains(horse)); + } + + @Test + public void testRemove() { + //given + Horse horse1 = new Horse("Annabell"); + Horse horse2 = new Horse("Ruth"); + //when + Stable stable = new Stable(); + stable.add(horse1); + stable.add(horse2); + stable.remove(horse1); + //then + Assert.assertFalse(stable.getHorseList().contains(horse1)); + } + + @Test + public void testImplementation() { + Stable stable = new Stable(); + Assert.assertTrue(stable instanceof Shelter); + } + @Test + public void elementTest() { + + //Given + Stable stable = new Stable(); + Horse actual = stable.getObjectByName("Spoon"); + Assert.assertNull(actual); + stable.add(new Horse("Spoon")); + + //When + actual = stable.getObjectByName("Spoon"); + + //Then + Assert.assertNotNull(actual); + } +} 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..269c4d1f --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/Vehicles/AircraftTest.java @@ -0,0 +1,35 @@ +package com.zipcodewilmington.froilansfarm.Vehicles; + +import com.zipcodewilmington.froilansfarm.Mammal.Farmer; +import com.zipcodewilmington.froilansfarm.Mammal.Froilan; +import com.zipcodewilmington.froilansfarm.Mammal.Froilanda; +import com.zipcodewilmington.froilansfarm.Pilot; +import com.zipcodewilmington.froilansfarm.Rider; +import org.junit.Assert; +import org.junit.Test; + +import java.awt.*; + +public class AircraftTest { + + @Test + public void constructor(){ + Vehicle aircraft = new CropDuster<>(); + + Boolean actual = aircraft instanceof Vehicle; + + Assert.assertTrue(actual); + } + + @Test + public void aircraftTest(){ + Vehicle aircraft = new CropDuster<>(); + + String actual = aircraft.makeNoise(); + String expected = "Bzzzzeewwwwwwwwwww Rat-tat-tat-tat-tat"; + + Assert.assertEquals(expected, actual); + } + + +} 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..35102fc7 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/Vehicles/CropDusterTest.java @@ -0,0 +1,81 @@ +package com.zipcodewilmington.froilansfarm.Vehicles; + +import com.zipcodewilmington.froilansfarm.Farm; +import com.zipcodewilmington.froilansfarm.Food.CropRow; +import com.zipcodewilmington.froilansfarm.Food.TomatoPlant; +import com.zipcodewilmington.froilansfarm.Mammal.Froilanda; +import com.zipcodewilmington.froilansfarm.Rider; +import org.junit.Assert; +import org.junit.Test; + +public class CropDusterTest { + + @Test + public void constructorTest1(){ + CropDuster duster = new CropDuster(); + + Boolean actual = duster instanceof Vehicle; + + Assert.assertTrue(actual); + } + + @Test + public void constructorTest2(){ + CropDuster duster = new CropDuster(); + + Boolean actual = duster instanceof FarmVehicle; + + Assert.assertTrue(actual); + } + + @Test + public void constructorTest3(){ + CropDuster duster = new CropDuster(); + + Boolean actual = duster instanceof Aircraft; + + Assert.assertTrue(actual); + } + + @Test + public void fertilizeTest(){ + CropDuster duster = new CropDuster(); + Farm farm = new Farm(); + TomatoPlant plant = new TomatoPlant(); + CropRow row = new CropRow(); + row.plantCrop(plant); + farm.getField().add(row); + duster.operate(farm); + + Boolean actual = plant.checkFertilized(); + + Assert.assertTrue(actual); + } + + @Test + public void shootTest(){ + Aircraft duster = new CropDuster(); + + String actual = duster.shoot(); + String expected = "BULLETS"; + + Assert.assertEquals(expected, actual); + } + + @Test + public void rideTest(){ + CropDuster duster = new CropDuster(); + + Farm farm = new Farm(); + + Froilanda froilanda = Froilanda.getInstance(); + froilanda.mount(duster); + + duster.ride(froilanda); + + Boolean actual = duster.getPilot() != null; + + Assert.assertTrue(actual); + } + +} 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..71949d75 --- /dev/null +++ b/src/test/java/com/zipcodewilmington/froilansfarm/Vehicles/TractorTest.java @@ -0,0 +1,66 @@ +package com.zipcodewilmington.froilansfarm.Vehicles; + +import com.zipcodewilmington.froilansfarm.Farm; +import com.zipcodewilmington.froilansfarm.Food.CropRow; +import com.zipcodewilmington.froilansfarm.Food.TomatoPlant; +import com.zipcodewilmington.froilansfarm.Mammal.Froilan; +import org.junit.Assert; +import org.junit.Test; + +public class TractorTest { + + @Test + public void constructorTest1(){ + Vehicle tractor = new Tractor(); + + Boolean instance = tractor instanceof Vehicle; + + Assert.assertTrue(instance); + } + + @Test + public void constructorTest2(){ + Vehicle tractor = new Tractor(); + + Boolean instance = tractor instanceof FarmVehicle; + + Assert.assertTrue(instance); + } + + @Test + public void constructorMakeNoise(){ + Vehicle tractor = new Tractor(); + + String actual = tractor.makeNoise(); + String expected = "Chuggumgumgumgumgum"; + + Assert.assertEquals(expected, actual); + } + + @Test + public void tractorHarvestTest(){ + Tractor tractor = new Tractor(); + + Farm farm = new Farm(); + tractor.operate(farm); + + Integer actual = tractor.getaList().size(); + Integer expected = 5; + + Assert.assertEquals(expected, actual); + } + + @Test + public void rideTest(){ + Froilan froi = new Froilan(); + Tractor tractor = new Tractor(); + + tractor.ride(froi); + + Boolean actual = tractor.getRider() != null; + + Assert.assertTrue(actual); + } + + +}