Write unit test methods for the methods in the following code snippet. The methods that need to have unit test methods are bold.
package ObstaclesWarrior;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.io.File;
import java.io.PrintWriter;
import org.junit.Test;
/**
* Unit test
*/
public class MainTest {
@Test
public void ReadBoardFromFileTest()
{
final String FILE_NAME = “Board.dat”;
//Either dynamically create the Board.dat file or assume it already exists
/*File file = new File(FILE_NAME);
PrintWriter printToFile = new PrintWriter(file);
printToFile.println(“4 4”);
printToFile.println(“0 2”);
printToFile.println(“2 2”);
printToFile.println(“0 # # #”);
printToFile.println(“# -3 # -5”);
printToFile.println(“# # # #”);
printToFile.println(“# # -1 #”);
printToFile.close();
*/
//Create start and exit positions to pass to the method.
//These objects will be set with actual values from the
//board file by your code inside the ReadBoardFromFile() method
Position actualStartPosition = new Position(0, 0);
Position actualExitPosition = new Position(0, 0);
//These are the expected values for the start and exit postions
Position expectedStartPosition = new Position(0, 2);
Position expectedExitPosition = new Position(2, 2);
//Create the expected array with the data
String[][] expectedBoardArray = {
{“0”, “#”, “#”, “#” },
{“#”, “-3”, “#”, “-5” },
{“#”, “#”, “#”, “#” },
{“#”, “#”, “-1”, “#” },
};
//Invoke the ReadBoardFromFile() method and capture the returned array
String[][] actualBoardArray = Main.ReadBoardFromFile( FILE_NAME,
actualStartPosition,
actualExitPosition);
//Check if the start and exit positions match
if((expectedStartPosition.getX() != actualStartPosition.getX())||
(expectedStartPosition.getY() != actualStartPosition.getY()))
{
assertTrue(“Start position does not match”, false);
}
if((expectedExitPosition.getX() != actualExitPosition.getX())||
(expectedExitPosition.getY() != actualExitPosition.getY()))
{
assertEquals(“Exit position does not match”,false);
}
//Compare the actualBoardArray with the testBoardArray.
//Size and data must match.
//Make sure the number of rows match
assertArrayEquals(“Board array read from file does not match expected array”,
expectedBoardArray,
actualBoardArray );
}
@Test
public void WriteBoardToFileTest()
{
}
@Test
public void GenerateDirectionTest()
{
}
@Test
public void MoveWarriorTest()
{
}
@Test
public void CalculateWarriorScoreTest()
{
}
@Test
public void DisplayResultsTest()
{
}
}
