public void Composes_arguments_into_expected_report_format(int coordinateX, int coordinateY, CardinalDirection cardinalDirection, string expectedReport) { var point = new Point(coordinateX, coordinateY); var reportComposer = new ConsoleReportComposer(); var report = reportComposer.Compose(point, cardinalDirection); Assert.AreEqual(expectedReport, report); }
public void When_any_Rover_not_deployed_throws_ReportException() { var mockRover = new Mock <IRover>(); mockRover.Setup(x => x.IsDeployed()).Returns(false); var rovers = new List <IRover> { mockRover.Object }; var reportComposer = new ConsoleReportComposer(); Assert.Throws <ReportException>(() => reportComposer.CompileReports(rovers)); }
public void When_all_Rovers_deployed_requests_Rover_Positions_and_CardinalDirections() { var mockRover = new Mock <IRover>(); mockRover.Setup(x => x.IsDeployed()).Returns(true); var rovers = new List <IRover> { mockRover.Object, mockRover.Object, mockRover.Object }; var reportComposer = new ConsoleReportComposer(); reportComposer.CompileReports(rovers); mockRover.VerifyGet(x => x.Position, Times.Exactly(3)); mockRover.VerifyGet(x => x.CardinalDirection, Times.Exactly(3)); }