diff --git a/pom.xml b/pom.xml index 69a3b878..8f6247d0 100644 --- a/pom.xml +++ b/pom.xml @@ -7,6 +7,14 @@ com.zipcodewilmington froilans-farm 1.0-SNAPSHOT + + + junit + junit + RELEASE + test + + \ No newline at end of file diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/MainApplication.java b/src/main/java/com/zipcodewilmington/froilansfarm/MainApplication.java index fd743ffc..a089354b 100644 --- a/src/main/java/com/zipcodewilmington/froilansfarm/MainApplication.java +++ b/src/main/java/com/zipcodewilmington/froilansfarm/MainApplication.java @@ -5,4 +5,8 @@ */ public class MainApplication { + public static void main(String[] args){ + + } + } diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/animal/Animal.java b/src/main/java/com/zipcodewilmington/froilansfarm/animal/Animal.java new file mode 100644 index 00000000..cb4db282 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/animal/Animal.java @@ -0,0 +1,31 @@ +package com.zipcodewilmington.froilansfarm.animal; + +import com.zipcodewilmington.froilansfarm.edible.Corn; +import com.zipcodewilmington.froilansfarm.interfaces.Eater; +import com.zipcodewilmington.froilansfarm.interfaces.Noisemaker; +import com.zipcodewilmington.froilansfarm.shelter.FoodInventory; + +public abstract class Animal implements Eater, Noisemaker { + String name; + + public Animal(String name){ + this.name = name; + } + + public void eat(Corn food, FoodInventory silo){ + //Will remove an instance of a Corn edible object from the given foodInventory -> DONE + //Maybe if object doesn't exist, give a message that the animal is hungry -> DONE + //For debugging purposes at least, print out given foodInventory -> + if(food != null){ + System.out.println(this.toString()+" ate "+food.toString()); + silo.remove(food); + System.out.println("Current food in food inventory: "+silo.size()); + } + else{ + System.out.println(this.toString()+" was not fed and is still hungry!"); + } + + } + + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/animal/Chicken.java b/src/main/java/com/zipcodewilmington/froilansfarm/animal/Chicken.java new file mode 100644 index 00000000..b616ff70 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/animal/Chicken.java @@ -0,0 +1,38 @@ +package com.zipcodewilmington.froilansfarm.animal; + +import com.zipcodewilmington.froilansfarm.edible.Corn; +import com.zipcodewilmington.froilansfarm.edible.Egg; +import com.zipcodewilmington.froilansfarm.interfaces.Produce; + +public class Chicken extends Animal implements Produce { + boolean isFertilized = false; + + public Chicken(String name){ + super(name); + } + + //whatever calls yield here has to put the egg in the FoodInventory + public Egg yield(){ + if(!isFertilized){ + return new Egg(); + } + return null; + } + + public void fertilizeEgg(){ + isFertilized = true; + } + + public boolean isFertilized(){ + return isFertilized; + } + + public void makeNoise() { + System.out.println("Cock-a-doodle-doo"); + } + + @Override + public String toString(){ + return "Chicken"; + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/animal/Horse.java b/src/main/java/com/zipcodewilmington/froilansfarm/animal/Horse.java new file mode 100644 index 00000000..d56fd0b2 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/animal/Horse.java @@ -0,0 +1,20 @@ +package com.zipcodewilmington.froilansfarm.animal; + +import com.zipcodewilmington.froilansfarm.interfaces.Ridable; + +public class Horse extends Animal implements Ridable { + + public Horse(String name){ + super(name); + } + + + public void makeNoise() { + System.out.println("Nayyy"); + } + + @Override + public String toString(){ + return "Horse"; + } +} 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..1ca135e5 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/crops/CornStalk.java @@ -0,0 +1,30 @@ +package com.zipcodewilmington.froilansfarm.crops; + +import com.zipcodewilmington.froilansfarm.edible.Corn; +import com.zipcodewilmington.froilansfarm.edible.Tomato; +import com.zipcodewilmington.froilansfarm.interfaces.Edible; + +public class CornStalk extends Crop{ + + public CornStalk(){ + + } + + //IF isFertilized is true and isHarvested is false -> DONE + //Then return a Corn, and set isHarvested to true -> DONE + //caller will need to store returned food object some place + public Edible yield() { + if(isFertilized() && !isHarvested()){ + harvestCrop(); + return new Corn(); + } + else{ + return null; + } + } + + @Override + public String toString(){ + return "Corn Stalk"; + } +} 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..ed877dba --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/crops/Crop.java @@ -0,0 +1,35 @@ +package com.zipcodewilmington.froilansfarm.crops; + +import com.zipcodewilmington.froilansfarm.interfaces.Edible; +import com.zipcodewilmington.froilansfarm.interfaces.Produce; + +public abstract class Crop implements Produce { + private boolean isFertilized = false; + private boolean isHarvested = false; + + + public Crop(){ + } + + + + + public void fertilizeCrop() { + isFertilized = true; + } + + public void harvestCrop() { + isHarvested = true; + } + + public boolean isFertilized() { + return isFertilized; + } + + + public boolean isHarvested() { + return isHarvested; + } + + +} 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..1c619c69 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/crops/TomatoPlant.java @@ -0,0 +1,30 @@ +package com.zipcodewilmington.froilansfarm.crops; + +import com.zipcodewilmington.froilansfarm.edible.Corn; +import com.zipcodewilmington.froilansfarm.edible.Tomato; +import com.zipcodewilmington.froilansfarm.interfaces.Edible; + +public class TomatoPlant extends Crop{ + + public TomatoPlant(){ + + } + + //IF isFertilized is true and isHarvested is false -> DONE + //Then return a Tomato, and set isHarvested to true -> DONE + //caller will need to store returned food object some place + public Edible yield() { + if(isFertilized() && !isHarvested()){ + harvestCrop(); + return new Tomato(); + } + else{ + return null; + } + } + + @Override + public String toString(){ + return "Tomato Plant"; + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/edible/Corn.java b/src/main/java/com/zipcodewilmington/froilansfarm/edible/Corn.java new file mode 100644 index 00000000..1ba872b7 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/edible/Corn.java @@ -0,0 +1,11 @@ +package com.zipcodewilmington.froilansfarm.edible; + +import com.zipcodewilmington.froilansfarm.interfaces.Edible; + +public class Corn implements Edible { + + @Override + public String toString(){ + return "Corn"; + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/edible/Egg.java b/src/main/java/com/zipcodewilmington/froilansfarm/edible/Egg.java new file mode 100644 index 00000000..bd4a4a78 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/edible/Egg.java @@ -0,0 +1,12 @@ +package com.zipcodewilmington.froilansfarm.edible; + +import com.zipcodewilmington.froilansfarm.interfaces.Edible; + +public class Egg implements Edible { + + + @Override + public String toString(){ + return "Egg"; + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/edible/Tomato.java b/src/main/java/com/zipcodewilmington/froilansfarm/edible/Tomato.java new file mode 100644 index 00000000..845d0dad --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/edible/Tomato.java @@ -0,0 +1,11 @@ +package com.zipcodewilmington.froilansfarm.edible; + +import com.zipcodewilmington.froilansfarm.interfaces.Edible; + +public class Tomato implements Edible { + + @Override + public String toString(){ + return "Tomato"; + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/Eater.java b/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/Eater.java new file mode 100644 index 00000000..f3ff9053 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/Eater.java @@ -0,0 +1,8 @@ +package com.zipcodewilmington.froilansfarm.interfaces; + +import com.zipcodewilmington.froilansfarm.shelter.FoodInventory; + +public interface Eater { + + public void eat(T food, FoodInventory whatever); +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/Edible.java b/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/Edible.java new file mode 100644 index 00000000..0c878741 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/Edible.java @@ -0,0 +1,6 @@ +package com.zipcodewilmington.froilansfarm.interfaces; + +public interface Edible { + + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/FarmVehicle.java b/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/FarmVehicle.java new file mode 100644 index 00000000..620c4534 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/FarmVehicle.java @@ -0,0 +1,11 @@ +package com.zipcodewilmington.froilansfarm.interfaces; + +import com.zipcodewilmington.froilansfarm.shelter.CropRow; +import com.zipcodewilmington.froilansfarm.shelter.FoodInventory; + +public interface FarmVehicle { + + //Prints a string letting user know farm vehicle is operating + public void operate(); + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/Noisemaker.java b/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/Noisemaker.java new file mode 100644 index 00000000..88446971 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/Noisemaker.java @@ -0,0 +1,8 @@ +package com.zipcodewilmington.froilansfarm.interfaces; + +public interface Noisemaker { + + //Anything that can make noise just prints a string of whatever + //Dumb noise it makes + public void makeNoise(); +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/Produce.java b/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/Produce.java new file mode 100644 index 00000000..1ae9e20e --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/Produce.java @@ -0,0 +1,7 @@ +package com.zipcodewilmington.froilansfarm.interfaces; + +public interface Produce { + + public Edible yield(); + public boolean isFertilized(); +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/Ridable.java b/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/Ridable.java new file mode 100644 index 00000000..dc24a385 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/Ridable.java @@ -0,0 +1,5 @@ +package com.zipcodewilmington.froilansfarm.interfaces; + +public interface Ridable { + //Only purpose is to determine what objects can be ridden +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/Rider.java b/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/Rider.java new file mode 100644 index 00000000..bcb037fe --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/interfaces/Rider.java @@ -0,0 +1,10 @@ +package com.zipcodewilmington.froilansfarm.interfaces; + +public interface Rider { + + //Either more string fluff, or boolean checks to ensure + // vehicles can only operate if they're being ridden. + //In either case, get name of ridable to use in the string. + public void mount(T mountable); + public void dismount(T mountable); +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/person/Botanist.java b/src/main/java/com/zipcodewilmington/froilansfarm/person/Botanist.java new file mode 100644 index 00000000..4b4754b1 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/person/Botanist.java @@ -0,0 +1,17 @@ +package com.zipcodewilmington.froilansfarm.person; + +import com.zipcodewilmington.froilansfarm.crops.Crop; +import com.zipcodewilmington.froilansfarm.interfaces.Ridable; +import com.zipcodewilmington.froilansfarm.shelter.CropRow; + +public class Botanist extends Person{ + + public Botanist(String name){ + super(name); + } + + //Passes Crop objects into croprows -> DONE + public void plantCrops(Crop crop, CropRow cropRow){ + cropRow.add(crop); + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/person/Farmer.java b/src/main/java/com/zipcodewilmington/froilansfarm/person/Farmer.java new file mode 100644 index 00000000..244fce31 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/person/Farmer.java @@ -0,0 +1,37 @@ +package com.zipcodewilmington.froilansfarm.person; + +import com.zipcodewilmington.froilansfarm.animal.Animal; +import com.zipcodewilmington.froilansfarm.crops.Crop; +import com.zipcodewilmington.froilansfarm.edible.Corn; +import com.zipcodewilmington.froilansfarm.interfaces.Ridable; +import com.zipcodewilmington.froilansfarm.shelter.ChickenCoop; +import com.zipcodewilmington.froilansfarm.shelter.CropRow; +import com.zipcodewilmington.froilansfarm.shelter.FoodInventory; +import com.zipcodewilmington.froilansfarm.vehicle.Tractor; + +public class Farmer extends Botanist{ + + public Farmer(String name){ + super(name); + } + + public void operate(Tractor tractor, CropRow cropRow){ + + } + + //Farmer goes into a chickencoop, calls yield on each chicken -> DONE + //Currently there is no means of fertilizing chickens, so each chicken in the coop -> YIELD METHOD ALREADY CHECKS IF NOT FERTILIZED + //should yield an egg to the FoodInventory -> DONE + public void getEggs(ChickenCoop coop, FoodInventory silo){ + for(int i=0;i DONE + //if not enough food, return a sad message. Something about being hungry and dolio's fault. -> ANIMALS EAT METHOD CHECKS FOR NULL FOOD + public void feed(Animal animal, Corn food, FoodInventory silo){ + System.out.println(animal.toString()+" was fed"); + animal.eat(food,silo); + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/person/Person.java b/src/main/java/com/zipcodewilmington/froilansfarm/person/Person.java new file mode 100644 index 00000000..4cf110b8 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/person/Person.java @@ -0,0 +1,34 @@ +package com.zipcodewilmington.froilansfarm.person; + +import com.zipcodewilmington.froilansfarm.interfaces.*; +import com.zipcodewilmington.froilansfarm.shelter.FoodInventory; + +public abstract class Person implements Eater, Noisemaker, Rider { + private String name; + + public Person(String name){ + this.name = name; + } + + public void makeNoise(){ + System.out.println("Hi I'm a Person"); + } + + public void eat(Edible food, FoodInventory silo){ + System.out.println(name+" ate "+food); + silo.remove(food); + System.out.println("Current food in food inventory: "+silo.size()); + } + + public void mount(Ridable somethingRidable){ + System.out.print(this.getName()+" is riding "+somethingRidable.toString()); + } + + public void dismount(Ridable somethingRidable){ + System.out.print(this.getName()+" stopped riding "+somethingRidable.toString()); + } + + public String getName(){ + return name; + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/person/Pilot.java b/src/main/java/com/zipcodewilmington/froilansfarm/person/Pilot.java new file mode 100644 index 00000000..5fa361e5 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/person/Pilot.java @@ -0,0 +1,19 @@ +package com.zipcodewilmington.froilansfarm.person; + +import com.zipcodewilmington.froilansfarm.vehicle.CropDuster; + +public class Pilot extends Farmer{ + + public Pilot(String name){ + super(name); + } + + public void fly(CropDuster cropDuster){ + System.out.println(this.getName()+" is flying a "+cropDuster.toString()); + } + + public void operate(CropDuster cropDuster){ + + } + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/shelter/ChickenCoop.java b/src/main/java/com/zipcodewilmington/froilansfarm/shelter/ChickenCoop.java new file mode 100644 index 00000000..16baba8f --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/shelter/ChickenCoop.java @@ -0,0 +1,10 @@ +package com.zipcodewilmington.froilansfarm.shelter; + +import com.zipcodewilmington.froilansfarm.animal.Chicken; + +public class ChickenCoop extends Shelter { + + public ChickenCoop(){ + + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/shelter/CropRow.java b/src/main/java/com/zipcodewilmington/froilansfarm/shelter/CropRow.java new file mode 100644 index 00000000..2a288689 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/shelter/CropRow.java @@ -0,0 +1,10 @@ +package com.zipcodewilmington.froilansfarm.shelter; + +import com.zipcodewilmington.froilansfarm.crops.Crop; + +public class CropRow extends Shelter { + + public CropRow(){ + + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/shelter/Farm.java b/src/main/java/com/zipcodewilmington/froilansfarm/shelter/Farm.java new file mode 100644 index 00000000..ff165522 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/shelter/Farm.java @@ -0,0 +1,19 @@ +package com.zipcodewilmington.froilansfarm.shelter; + +import java.util.ArrayList; +import java.util.List; + +public class Farm { + + List chickenCoops = new ArrayList(); + List stables = new ArrayList(); + FarmHouse farmHouse = new FarmHouse(); + + //Possibly instantiate vehicles/people/animals here? -> LEAVING THIS UP TO YOU ABE lol + + public Farm(){ + + } + + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/shelter/FarmHouse.java b/src/main/java/com/zipcodewilmington/froilansfarm/shelter/FarmHouse.java new file mode 100644 index 00000000..136b658a --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/shelter/FarmHouse.java @@ -0,0 +1,10 @@ +package com.zipcodewilmington.froilansfarm.shelter; + +import com.zipcodewilmington.froilansfarm.person.Person; + +public class FarmHouse extends Shelter { + + public FarmHouse(){ + + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/shelter/Field.java b/src/main/java/com/zipcodewilmington/froilansfarm/shelter/Field.java new file mode 100644 index 00000000..119f6a79 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/shelter/Field.java @@ -0,0 +1,8 @@ +package com.zipcodewilmington.froilansfarm.shelter; + +public class Field extends Shelter{ + + public Field(){ + + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/shelter/FoodInventory.java b/src/main/java/com/zipcodewilmington/froilansfarm/shelter/FoodInventory.java new file mode 100644 index 00000000..3fb07939 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/shelter/FoodInventory.java @@ -0,0 +1,18 @@ +package com.zipcodewilmington.froilansfarm.shelter; +import com.zipcodewilmington.froilansfarm.interfaces.Edible; + +import java.util.List; + +public class FoodInventory extends Shelter { + + public FoodInventory(List edibleList){ + super(edibleList); + } + + public FoodInventory(){ + + } + + + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/shelter/Shelter.java b/src/main/java/com/zipcodewilmington/froilansfarm/shelter/Shelter.java new file mode 100644 index 00000000..03fcb0e1 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/shelter/Shelter.java @@ -0,0 +1,33 @@ +package com.zipcodewilmington.froilansfarm.shelter; + +import java.util.ArrayList; +import java.util.List; + +public abstract class Shelter { + private List inShelter = new ArrayList(); + + public Shelter(List inShelter){ + this.inShelter = inShelter; + } + + public Shelter(){ + + } + + public void add(T element){ + inShelter.add(element); + } + + public void remove(T element){ + inShelter.remove(element); + } + + public T get(int index){ + return inShelter.get(index); + } + + public int size(){ + return inShelter.size(); + } + +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/shelter/Stables.java b/src/main/java/com/zipcodewilmington/froilansfarm/shelter/Stables.java new file mode 100644 index 00000000..6d13ba81 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/shelter/Stables.java @@ -0,0 +1,10 @@ +package com.zipcodewilmington.froilansfarm.shelter; + +import com.zipcodewilmington.froilansfarm.animal.Horse; + +public class Stables extends Shelter{ + + public Stables(){ + + } +} diff --git a/src/main/java/com/zipcodewilmington/froilansfarm/vehicle/Airplane.java b/src/main/java/com/zipcodewilmington/froilansfarm/vehicle/Airplane.java new file mode 100644 index 00000000..81dd9981 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/vehicle/Airplane.java @@ -0,0 +1,21 @@ +package com.zipcodewilmington.froilansfarm.vehicle; + +import com.zipcodewilmington.froilansfarm.vehicle.Vehicle; + +public abstract class Airplane extends Vehicle { + public boolean inAir=false; + + public Airplane(String name){ + super(name); + } + + public void fly(){ + inAir=true; + System.out.println("We in the sky baby!"); + } + public void land(){ + inAir=false; + System.out.println("Back on solid ground!"); + } + +} 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..ac0e5d16 --- /dev/null +++ b/src/main/java/com/zipcodewilmington/froilansfarm/vehicle/CropDuster.java @@ -0,0 +1,42 @@ +package com.zipcodewilmington.froilansfarm.vehicle; + +import com.zipcodewilmington.froilansfarm.crops.Crop; +import com.zipcodewilmington.froilansfarm.interfaces.FarmVehicle; +import com.zipcodewilmington.froilansfarm.person.Pilot; +import com.zipcodewilmington.froilansfarm.shelter.CropRow; + +public class CropDuster extends Airplane implements FarmVehicle { + + public CropDuster(String name){ + super(name); + } + + //put pilot as parameter, use pilots name in string output -> DONE + public void operate(Pilot pilot){ + System.out.println(pilot.getName()+" is flying a "+this.toString()); + } + + //Added this one to satisfy operate() method in FarmVehicle interface + public void operate(){ + System.out.println("The "+this.toString()+" is flying!"); + } + + + public void fertilize(CropRow cropRow){ + if(inAir==true){ + for(int i=0;i DONE + public void operate(Farmer farmer){ + System.out.println(farmer.getName()+" is flying a "+this.toString()); + } + + //Added this one to satisfy operate() method in FarmVehicle interface + public void operate(){ + System.out.println(this.toString()+" is running!"); + } + + + public void harvest(CropRow cropRow, FoodInventory silo){ + for(int i=0;i edibleList = new ArrayList(); + Corn corn1 = new Corn(); + Tomato tomato1 = new Tomato(); + Egg egg1 = new Egg(); + + edibleList.add(corn1); + edibleList.add(tomato1); + edibleList.add(egg1); + + FoodInventory silo = new FoodInventory(edibleList); + + Edible expected1 = corn1; + Edible actual1 = silo.get(0); + + Edible expected2 = tomato1; + Edible actual2 = silo.get(1); + + Edible expected3 = egg1; + Edible actual3 = silo.get(2); + + Assert.assertEquals(expected1,actual1); + Assert.assertEquals(expected2,actual2); + Assert.assertEquals(expected3,actual3); + } + +// @Test +// public void testAdd3(){ +// FoodInventory silo = new FoodInventory(); +// +// String string1 = "testing"; +// +// silo.add(string1); //GET ERROR AS EXPECTED BECAUSE silo needs an edible object +// +// } + + @Test + public void removeTest1(){ + FoodInventory silo = new FoodInventory(); + Corn corn1 = new Corn(); + Tomato tomato1 = new Tomato(); + Egg egg1 = new Egg(); + + silo.add(corn1); + silo.add(tomato1); + silo.add(egg1); + + silo.remove(tomato1); + + Edible expected1 = corn1; + Edible actual1 = silo.get(0); + + Edible expected2 = egg1; + Edible actual2 = silo.get(1); + + int expected3 = 2; + int actual3 = silo.size(); + + Assert.assertEquals(expected1,actual1); + Assert.assertEquals(expected2,actual2); + Assert.assertEquals(expected3,actual3); + + + } + +} \ No newline at end of file