public Task Clash() { var rocketId = RocketId.From(2); var landingPosition = LandingPosition.From(new Position(5, 5)); return(_landingTrajectoryVerifier.VerifyPosition(rocketId, landingPosition)); }
public Task LandOutsideOfPlatform() { var rocketId = RocketId.From(1); var landingPosition = LandingPosition.From(new Position(1, 1)); return(_landingTrajectoryVerifier.VerifyPosition(rocketId, landingPosition)); }
public async Task GlobalSetup() { var rocketId = RocketId.From(1); var landingPosition = LandingPosition.From(new Position(5, 5)); await _landingTrajectoryVerifier.VerifyPosition(rocketId, landingPosition); }
public async Task VerifyPosition_ShouldDetectClash_WhenMultipleRocketsAreLanding( int rocket1Id, int rocket2Id, int x1, int y1, int x2, int y2, string expectedOutput) { await _sut.VerifyPosition(RocketId.From(rocket1Id), LandingPosition.From(new Position(x1, y1))); var result = await _sut.VerifyPosition(RocketId.From(rocket2Id), LandingPosition.From(new Position(x2, y2))); result.Should().Be(expectedOutput); }
public async Task VerifyPosition_ShouldDetectClashBasedOnLatestLandingCheck_WhenMultipleRocketsAreLanding( int x1, int y1, int x2, int y2, int x3, int y3, string expectedOutput) { await _sut.VerifyPosition(RocketId.From(1), LandingPosition.From(new Position(x1, y1))); await _sut.VerifyPosition(RocketId.From(1), LandingPosition.From(new Position(x2, y2))); var result = await _sut.VerifyPosition(RocketId.From(2), LandingPosition.From(new Position(x3, y3))); result.Should().Be(expectedOutput); }
public async Task VerifyPosition_ShouldProvideCorrectOutput_WhenMultipleRocketsAreLandingInParallel() { var(rocketId0, landingPosition0) = (RocketId.From(1), LandingPosition.From(new Position(12, 12))); var(rocketId1, landingPosition1) = (RocketId.From(1), LandingPosition.From(new Position(5, 5))); var(rocketId2, landingPosition2) = (RocketId.From(2), LandingPosition.From(new Position(6, 6))); var(rocketId3, landingPosition3) = (RocketId.From(3), LandingPosition.From(new Position(9, 9))); var(rocketId4, landingPosition4) = (RocketId.From(4), LandingPosition.From(new Position(8, 8))); var(rocketId5, landingPosition5) = (RocketId.From(5), LandingPosition.From(new Position(15, 15))); await Task.WhenAll( RunLandingCheck(rocketId0, landingPosition0, OutputMessages.OkForLanding), RunLandingCheck(rocketId1, landingPosition1, OutputMessages.OkForLanding), RunLandingCheck(rocketId2, landingPosition2, OutputMessages.Clash), RunLandingCheck(rocketId3, landingPosition3, OutputMessages.OkForLanding), RunLandingCheck(rocketId4, landingPosition4, OutputMessages.Clash), RunLandingCheck(rocketId5, landingPosition5, OutputMessages.OkForLanding) ); }
public void VerifyPosition_ShouldThrow_WhenProvidedOutOfLandingAreaLandingPosition(int x, int y) { Func <Task> action = async() => await _sut.VerifyPosition(RocketId.From(1), LandingPosition.From(new Position(x, y))); action.Should().Throw <LandingPositionOutsideLandingAreaException>(); }
public async Task VerifyPosition_ShouldDetectPlatform_WhenProvidedValidLandingPosition(int x, int y, string expectedOutput) { var result = await _sut.VerifyPosition(RocketId.From(1), LandingPosition.From(new Position(x, y))); result.Should().Be(expectedOutput); }