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