package org.teachingkidsprogramming.recipes.completed.section07objects;
import org.junit.Assert;
import org.junit.Test;
import org.teachingextensions.logo.Tortoise;
import org.teachingextensions.logo.Turtle;
import org.teachingextensions.logo.Turtle.Animals;
import org.teachingextensions.logo.utils.PizzaUtils.Pizza;
import org.teachingextensions.logo.utils.PizzaUtils.Topping;
import java.awt.*;
@SuppressWarnings("unused")
public class DeepDive07Objects
{
@Test
public void twoTortoises() throws Exception
{
Tortoise rafael = new Tortoise();
Tortoise michealangelo = new Tortoise();
boolean result = rafael.equals(michealangelo);
Assert.assertEquals(false, result);
}
@Test
public void twoTortoisesAgain() throws Exception
{
Tortoise rafael = new Tortoise();
Tortoise anonymousNinja = rafael;
boolean result = rafael.equals(anonymousNinja);
Assert.assertEquals(true, result);
}
@Test
public void twoTortoisesYetAgain() throws Exception
{
Tortoise rafael = new Tortoise();
Tortoise michelangelo = new Tortoise();
Tortoise anonymousNinja = michelangelo;
boolean result = michelangelo.equals(anonymousNinja);
Assert.assertEquals(true, result);
}
//Turtle Leonardo belongs to "this"
private Turtle leonardo;
@Test
public void fatTrailTurtle() throws Exception
{
Turtle ninja = new Turtle();
this.leonardo = ninja;
ninja.setPenWidth(30);
Assert.assertEquals(30, this.leonardo.getPenWidth());
}
//Turtle Donatello belongs to "this"
private Turtle donatello;
@Test
public void explodingTurtle() throws Exception
{
Turtle ninja = new Turtle();
this.donatello = ninja;
this.donatello.setAnimal(Animals.ExplodedTurtle);
Assert.assertTrue("The ninja is still alive!", ninja.isDead());
}
@Test
public void feedTheNinja() throws Exception
{
Tortoise michelangelo = new Tortoise();
michelangelo.likesTopping(Topping.Pepperoni);
Pizza pizza = new Pizza();
pizza.addTopping(Topping.Pepperoni);
boolean likedIt = michelangelo.eatPizza(pizza);
Assert.assertTrue("Michelangelo barfs! Wrong pizza!", likedIt);
}
@Test
public void feedTheNinjaTwo() throws Exception
{
Tortoise karai = new Tortoise();
karai.likesTopping(Topping.Anchovy);
Pizza pizza = new Pizza();
pizza.addTopping(Topping.Anchovy);
boolean likedIt = karai.eatPizza(pizza);
Assert.assertTrue("Karai turns greener! Wrong pizza!", true);
}
@Test
public void checkOutThePizza() throws Exception
{
Tortoise cecil = new Tortoise();
cecil.likesTopping(Topping.Cheese);
Pizza pizza = new Pizza();
pizza.addTopping(Topping.Cheese);
pizza.cook();
boolean likedIt = cecil.eatPizza(pizza);
Assert.assertTrue("Cecil sends it back, raw pizza!", likedIt);
}
@Test
public void feedAllTheNinjas() throws Exception
{
Tortoise[] tortoises = throwPizzaParty();
Pizza pizza = new Pizza();
pizza.superSizeIt();
for (Tortoise tortoise : tortoises)
{
gotASlice = tortoise.eatPizza(pizza);
if (!gotASlice)
{
break;
}
}
Assert.assertTrue("The ninja flips out - not enough pizza!", gotASlice);
}
@Test
public void feedAllTheNinjasAgain() throws Exception
{
Tortoise[] tortoises = throwPizzaParty();
Pizza pizza = new Pizza();
pizza.superSizeIt();
for (Tortoise tortoise : tortoises)
{
this.gotASlice = tortoise.eatPizza(pizza);
if (!this.gotASlice)
{
break;
}
}
Assert.assertTrue("The ninja flips out - not enough pizza!", this.gotASlice);
}
/**
* Ignore the following, It's needed to run the deep dive
*
*
*
*
*
*
*
*
*
*
*/
private Tortoise[] throwPizzaParty()
{
Tortoise karai = new Tortoise();
Tortoise cecil = new Tortoise();
Tortoise michealangelo = new Tortoise();
Tortoise fred = new Tortoise();
return new Tortoise[]{karai, cecil, michealangelo, fred};
}
private boolean gotASlice;
public boolean _____ = false;
public boolean ______ = true;
public String ___ = "You need to fill in the blank ___";
public int ____ = 0;
public Turtle _______ = new Turtle();
public Tortoise ________;
public Topping _________ = Topping.NoTopping;
public String ___()
{
return ___;
}
private Cursor getCursor()
{
return Tortoise.getBackgroundWindow().getCanvas().getCursor();
}
public DeepDive07Objects()
{
this.leonardo = new Turtle();
this.donatello = new Turtle();
}
}