public void CanEvaluateSingelXCoordinates()
        {
            GameFlow   testGF = new GameFlow();
            Coordinate testXY;

            //Valid X Coordinate values: A-J & a-j (single character only)
            testXY = testGF.EvaluateCoordinates("A", "", out CoordinateInput response1);
            //Unless two valid coordinates are given, the function returns a Coordinate = null
            Assert.IsNull(testXY);

            //When a valid X Coordinate is given w/o a Y Coordinate, CoordinateInput returned in the out parameter has the value CoordinateInput.ValidCoordinate
            //Valid X Coordinate values can be single upper case characters [A-J]
            Assert.AreEqual(response1, CoordinateInput.ValidCoordinate);

            testXY = testGF.EvaluateCoordinates("Z", "", out CoordinateInput response2);

            //Invalid X Coordinate return the value CoordinateInput.ValidCoordinate in the out parameter
            Assert.AreEqual(response2, CoordinateInput.InvalidXCoordinate);

            testXY = testGF.EvaluateCoordinates("j", "", out CoordinateInput response3);

            //Valid X Coordinate values can be single characters [a-j]
            Assert.AreEqual(response3, CoordinateInput.ValidCoordinate);

            testXY = testGF.EvaluateCoordinates("abc", "", out CoordinateInput response4);

            //Invalid X Coordinates also include any multi character values
            Assert.AreEqual(response4, CoordinateInput.InvalidXCoordinate);
        }
        public void CoordinateIsNullWhenInvalidXYCoordinatesGiven()
        {
            GameFlow   testGF = new GameFlow();
            Coordinate testXY;

            testXY = testGF.EvaluateCoordinates("Z", "6", out CoordinateInput response1);
            //If an invalid X & a valid Y coordinate are given, a Coordinate = null is returned, and the value CoordinateInput.InvalidXCoordinate in the out parameter
            Assert.IsNull(testXY);
            Assert.AreEqual(response1, CoordinateInput.InvalidXCoordinate);

            testXY = testGF.EvaluateCoordinates("b", "-4", out CoordinateInput response2);
            //If a valid X & an invalid Y coordinate are given, a Coordinate = null is returned, and the value CoordinateInput.InvalidYCoordinate in the out parameter
            Assert.IsNull(testXY);
            Assert.AreEqual(response2, CoordinateInput.InvalidYCoordinate);
        }
        public void CoordinateReturnedWhenValidXYCoordinatesGiven()
        {
            GameFlow   testGF = new GameFlow();
            Coordinate testXY;

            testXY = testGF.EvaluateCoordinates("A", "0", out CoordinateInput response1);
            //If valid X & Y coordinates are given, a Coordinate corresponding to them (A-J = 1-10) is returned
            Assert.IsNotNull(testXY);
            Assert.AreEqual("1", testXY.XCoordinate.ToString());
            Assert.AreEqual("10", testXY.YCoordinate.ToString());
            Assert.AreEqual(response1, CoordinateInput.ValidCoordinate);

            testXY = testGF.EvaluateCoordinates("i", "6", out CoordinateInput response2);
            //If valid X & Y coordinates are given, a Coordinate corresponding to them (A-J = 1-10) is returned
            Assert.IsNotNull(testXY);
            Assert.AreEqual("9", testXY.XCoordinate.ToString());
            Assert.AreEqual("6", testXY.YCoordinate.ToString());
            Assert.AreEqual(response2, CoordinateInput.ValidCoordinate);
        }
        public void CanEvaluateSingelYCoordinates()
        {
            GameFlow   testGF = new GameFlow();
            Coordinate testXY;

            //Valid Y Coordinate values: 0-9 (single digit only - 0 used for 10)
            testXY = testGF.EvaluateCoordinates("", "0", out CoordinateInput response1);
            //Unless two valid coordinates are given, the function returns a Coordinate = null
            Assert.IsNull(testXY);

            //When a valid Y Coordinate is given w/o an X Coordinate, CoordinateInput returned in the out parameter has the value CoordinateInput.ValidCoordinate
            //Valid Y Coordinate values can be single digits [0-9]
            Assert.AreEqual(response1, CoordinateInput.ValidCoordinate);

            testXY = testGF.EvaluateCoordinates("", "f", out CoordinateInput response2);

            //Invalid Y Coordinate return the value CoordinateInput.ValidCoordinate in the out parameter
            Assert.AreEqual(response2, CoordinateInput.InvalidYCoordinate);

            testXY = testGF.EvaluateCoordinates("", "1f2", out CoordinateInput response4);

            //Invalid Y Coordinates also include any multi character values
            Assert.AreEqual(response4, CoordinateInput.InvalidYCoordinate);
        }