@Test public void testReceiveTwoParts() { int scheduleCounter = 0; System.out.println("------------------------------\n" + "testReceiveTwoParts():"); Lane lane = new LaneAgent("Lane1"); GUILane guiLane = new GUILane(1, 2, 3, new GUINest(1, 2, 3)); MockFeeder feeder = new MockFeeder("Feeder1"); MockDiverter diverter = new MockDiverter("Diverter1"); MockNest nest = new MockNest("Nest1"); lane.setFeederAgent(feeder); lane.setDiverterAgent(diverter); lane.setNestAgent(nest); lane.setGuiLane(guiLane); guiLane.setLaneAgent(lane); assertEquals( "Mock Feeder should have an empty event log before the Lane's scheduler is called. Instead, the Mock Feeder's event log reads: " + feeder.log.toString(), 0, feeder.log.size()); assertEquals( "Mock Diverter should have an empty event log before the Lane's scheduler is called. Instead, the Mock Diverter's event log reads: " + diverter.log.toString(), 0, diverter.log.size()); assertEquals( "Mock Nest should have an empty event log before the Lane's scheduler is called. Instead, the Mock Nest's event log reads: " + nest.log.toString(), 0, nest.log.size()); // create a part used for testing Part part1 = new Part(PartType.A); lane.msgPartReady(part1); System.out.println("SCHEDULER CALLED " + ++scheduleCounter); lane.pickAndExecuteAnAction(); assertTrue( "Mock diverter should have received msgReadyToReceive. Event log: " + diverter.log.toString(), diverter .log .getLastLoggedEvent() .getMessage() .contains("msgReadyToReceive from lane for " + part1.getName())); lane.msgHereIsPart(part1); System.out.println("SCHEDULER CALLED " + ++scheduleCounter); lane.pickAndExecuteAnAction(); assertEquals( "Diverter should have only 1 message, should not have received another here. Event log: " + diverter.log.toString(), 1, diverter.log.size()); System.out.println("SCHEDULER CALLED " + ++scheduleCounter); lane.pickAndExecuteAnAction(); // GUI Lane should move the parts on the lane here // create a part used for testing Part part2 = new Part(PartType.D); lane.msgPartReady(part2); System.out.println("SCHEDULER CALLED " + ++scheduleCounter); lane.pickAndExecuteAnAction(); assertTrue( "Mock diverter should have received msgReadyToReceive. Event log: " + diverter.log.toString(), diverter .log .getLastLoggedEvent() .getMessage() .contains("msgReadyToReceive from lane for " + part2.getName())); lane.msgHereIsPart(part2); System.out.println("SCHEDULER CALLED " + ++scheduleCounter); lane.pickAndExecuteAnAction(); assertEquals( "Diverter should have only 2 messages, should not have received another here. Event log: " + diverter.log.toString(), 2, diverter.log.size()); lane.msgGuiDoneMovingPart(part1.guiPart); System.out.println("SCHEDULER CALLED " + ++scheduleCounter); lane.pickAndExecuteAnAction(); assertTrue( "Mock nest should have received msgPartReady. Event log: " + nest.log.toString(), nest.log.getLastLoggedEvent().getMessage().contains("msgPartReady")); lane.msgReadyToReceive(); System.out.println("SCHEDULER CALLED " + ++scheduleCounter); lane.pickAndExecuteAnAction(); assertTrue( "Mock nest should have received msgHereIsPart. Event log: " + nest.log.toString(), nest.log.getLastLoggedEvent().getMessage().contains("msgHereIsPart")); System.out.println("END OF TEST"); }
public void testLaneFull() { // WIP int scheduleCounter = 0; System.out.println("------------------------------\n" + "testLaneFull():"); Lane lane = new LaneAgent("Lane1"); GUILane guiLane = new GUILane(1, 2, 3, new GUINest(1, 2, 3)); MockFeeder feeder = new MockFeeder("Feeder1"); MockDiverter diverter = new MockDiverter("Diverter1"); MockNest nest = new MockNest("Nest1"); lane.setFeederAgent(feeder); lane.setDiverterAgent(diverter); lane.setNestAgent(nest); lane.setGuiLane(guiLane); guiLane.setLaneAgent(lane); assertEquals( "Mock Feeder should have an empty event log before the Lane's scheduler is called. Instead, the Mock Feeder's event log reads: " + feeder.log.toString(), 0, feeder.log.size()); assertEquals( "Mock Diverter should have an empty event log before the Lane's scheduler is called. Instead, the Mock Diverter's event log reads: " + diverter.log.toString(), 0, diverter.log.size()); assertEquals( "Mock Nest should have an empty event log before the Lane's scheduler is called. Instead, the Mock Nest's event log reads: " + nest.log.toString(), 0, nest.log.size()); for (int pn = 0; pn < 7; pn++) { // create a part used for testing Part part1 = new Part(PartType.A); lane.msgPartReady(part1); System.out.println("SCHEDULER CALLED " + ++scheduleCounter); lane.pickAndExecuteAnAction(); assertTrue( "Mock diverter should have received msgReadyToReceive. Event log: " + diverter.log.toString(), diverter .log .getLastLoggedEvent() .getMessage() .contains("msgReadyToReceive from lane for " + part1.type)); lane.msgHereIsPart(part1); System.out.println("SCHEDULER CALLED " + ++scheduleCounter); lane.pickAndExecuteAnAction(); } lane.msgGuiLaneAlmostFull(); System.out.println("SCHEDULER CALLED **"); lane.pickAndExecuteAnAction(); assertTrue( "Mock feeder should have received msgHoldOn. Event log: " + feeder.log.toString(), feeder.log.getLastLoggedEvent().getMessage().contains("msgHoldOn")); // create a part used for testing Part part2 = new Part(PartType.B); lane.msgPartReady(part2); System.out.println("SCHEDULER CALLED " + ++scheduleCounter); lane.pickAndExecuteAnAction(); // gui lane should move all its parts System.out.println("SCHEDULER CALLED " + ++scheduleCounter); lane.pickAndExecuteAnAction(); // gui lane should move all its parts lane.msgGuiLaneNoLongerFull(); System.out.println("SCHEDULER CALLED ***"); lane.pickAndExecuteAnAction(); assertTrue( "Mock diverter should have received msgReadyToReceive. Event log: " + diverter.log.toString(), diverter .log .getLastLoggedEvent() .getMessage() .contains("msgReadyToReceive from lane for " + part2.type)); lane.msgHereIsPart(part2); System.out.println("SCHEDULER CALLED " + ++scheduleCounter); lane.pickAndExecuteAnAction(); System.out.println("SCHEDULER CALLED " + ++scheduleCounter); lane.pickAndExecuteAnAction(); // GUI Lane should move the parts on the lane here System.out.println("END OF TEST"); }