@Test public void testShoot() { Board board = facade.createBoard(35, 47); Energy enoughEnergy = new Energy(5000, unitOfPower.Ws); Energy enoughEnergy2 = new Energy(5000, unitOfPower.Ws); Energy notEnoughEnergy = new Energy(500, unitOfPower.Ws); Robot robotEnoughEnergy = new Robot(enoughEnergy, Orientation.RIGHT); Robot robotNotEnoughEnergy = new Robot(notEnoughEnergy, Orientation.LEFT); Robot robotShootAtBoardEdge = new Robot(enoughEnergy2, Orientation.LEFT); Position positionRobotEnoughEnergy = Position.newPosition(0, 0, board); Position positionRobotNotEnoughEnergy = Position.newPosition(20, 0, board); Position positionRobotShootAtBoardEdge = Position.newPosition(3, 2, board); robotEnoughEnergy.setPosition(positionRobotEnoughEnergy); robotNotEnoughEnergy.setPosition(positionRobotNotEnoughEnergy); robotShootAtBoardEdge.setPosition(positionRobotShootAtBoardEdge); assertTrue(positionRobotEnoughEnergy.equals(robotEnoughEnergy.getPosition())); try { facade.shoot(robotNotEnoughEnergy); } catch (AssertionError ae) { System.err.println("testShoot(facadetest): This assertionerror is to be expected."); } assertTrue(positionRobotEnoughEnergy.equals(robotEnoughEnergy.getPosition())); assertTrue(positionRobotNotEnoughEnergy.equals(robotNotEnoughEnergy.getPosition())); assertEquals( notEnoughEnergy.getAmountOfEnergy(), robotNotEnoughEnergy.getAmountOfEnergy(), epsilon); assertEquals(enoughEnergy.getAmountOfEnergy(), robotEnoughEnergy.getAmountOfEnergy(), epsilon); facade.shoot(robotEnoughEnergy); assertTrue(positionRobotEnoughEnergy.equals(robotEnoughEnergy.getPosition())); assertEquals( notEnoughEnergy.getAmountOfEnergy(), robotNotEnoughEnergy.getAmountOfEnergy(), epsilon); assertEquals(16000, robotNotEnoughEnergy.getMaxEnergy().getAmountOfEnergy(), epsilon); assertEquals(4000, robotEnoughEnergy.getAmountOfEnergy(), epsilon); facade.shoot(robotShootAtBoardEdge); assertEquals(4000, robotShootAtBoardEdge.getAmountOfEnergy(), epsilon); }