package org.teachingextensions.logo;
import org.junit.Test;
import org.teachingextensions.WindowUtils.MultiTurtleWindow;
import org.teachingextensions.approvals.lite.Approvals;
import org.teachingextensions.approvals.lite.reporters.DelayedClipboardReporter;
import org.teachingextensions.approvals.lite.reporters.DiffReporter;
import org.teachingextensions.approvals.lite.reporters.UseReporter;
import org.teachingextensions.approvals.lite.util.JUnitUtils;
import static org.junit.Assert.assertEquals;
@UseReporter({DiffReporter.class, DelayedClipboardReporter.class})
public class MultiTurtlePanelTest {
@Test
public void testTwoTurtlesDrawBeforeAdding() throws Exception {
JUnitUtils.assumeNotHeadless();
MultiTurtleWindow panel = new MultiTurtleWindow();
Turtle turtle = new Turtle();
turtle.setSpeed(Integer.MIN_VALUE);
turtle.move(100);
turtle.drawStar(50);
Turtle crouchingTurtle = new Turtle();
crouchingTurtle.setSpeed(Integer.MIN_VALUE);
crouchingTurtle.setX(35);
crouchingTurtle.setY(35);
crouchingTurtle.drawStar(50);
panel.addTurtle(crouchingTurtle);
panel.addTurtle(turtle);
Approvals.verify(panel);
}
@Test
public void testPaint() throws Exception {
JUnitUtils.assumeNotHeadless();
MultiTurtleWindow panel = new MultiTurtleWindow();
panel.addTurtle(null);
Turtle turtle = new Turtle();
panel.addTurtle(turtle);
turtle.setSpeed(10);
turtle.move(100);
Approvals.verify(panel);
}
@Test
public void testAddGhostTurtle() throws Exception {
JUnitUtils.assumeNotHeadless();
MultiTurtleWindow panel = new MultiTurtleWindow();
panel.addTurtle(null);
assertEquals(0, panel.getTurtleCount());
}
@Test
public void testAddTurtle() throws Exception {
JUnitUtils.assumeNotHeadless();
MultiTurtleWindow panel = new MultiTurtleWindow();
panel.addTurtle(new Turtle());
assertEquals(1, panel.getTurtleCount());
}
@Test
public void testSetAnimal() throws Exception {
JUnitUtils.assumeNotHeadless();
MultiTurtleWindow panel = new MultiTurtleWindow();
panel.addTurtle(new Turtle());
panel.setAnimal(Turtle.Animals.ExplodedTurtle);
Approvals.verify(panel);
}
}