public void CheckTrajectory_Coordinate_Null_Throws()
        {
            var    landingArea     = LandingAreaInitializer();
            var    landingResolver = new LandingResolver(landingArea);
            Action action          = () => landingResolver.CheckTrajectory(null);

            action.Should().Throw <ArgumentNullException>();
        }
        public void CheckTrajectory_LandingAreaWithHistoric_TrajectoryResultExpected()
        {
            var landingArea     = LandingAreaInitializer();
            var landingResolver = new LandingResolver(landingArea);

            var dataToTest = new Dictionary <Coordinate, TrajectoryResult>
            {
                {
                    new Coordinate()
                    {
                        X = 5,
                        Y = 5
                    },
                    TrajectoryResult.OkForLanding
                },
                {
                    new Coordinate()
                    {
                        X = 5,
                        Y = 5
                    },
                    TrajectoryResult.Clash
                },
                {
                    new Coordinate()
                    {
                        X = 16,
                        Y = 15
                    },
                    TrajectoryResult.OutOfPlatform
                },
                {
                    new Coordinate()
                    {
                        X = 7,
                        Y = 7
                    },
                    TrajectoryResult.OkForLanding
                },
                {
                    new Coordinate()
                    {
                        X = 7,
                        Y = 8
                    },
                    TrajectoryResult.Clash
                },
                {
                    new Coordinate()
                    {
                        X = 6,
                        Y = 7
                    },
                    TrajectoryResult.Clash
                },
                {
                    new Coordinate()
                    {
                        X = 7,
                        Y = 12
                    },
                    TrajectoryResult.OkForLanding
                },
                {
                    new Coordinate()
                    {
                        X = 7,
                        Y = 13
                    },
                    TrajectoryResult.Clash
                },
                {
                    new Coordinate()
                    {
                        X = 7,
                        Y = 11
                    },
                    TrajectoryResult.Clash
                },
                {
                    new Coordinate()
                    {
                        X = 8,
                        Y = 11
                    },
                    TrajectoryResult.Clash
                },
                {
                    new Coordinate()
                    {
                        X = 8,
                        Y = 12
                    },
                    TrajectoryResult.Clash
                },
                {
                    new Coordinate()
                    {
                        X = 8,
                        Y = 13
                    },
                    TrajectoryResult.Clash
                },
                {
                    new Coordinate()
                    {
                        X = 6,
                        Y = 11
                    },
                    TrajectoryResult.Clash
                },
                {
                    new Coordinate()
                    {
                        X = 6,
                        Y = 12
                    },
                    TrajectoryResult.Clash
                },
                {
                    new Coordinate()
                    {
                        X = 6,
                        Y = 13
                    },
                    TrajectoryResult.Clash
                },
            };


            foreach (KeyValuePair <Coordinate, TrajectoryResult> data in dataToTest)
            {
                var result = landingResolver.CheckTrajectory(data.Key);
                Assert.Equal(result, data.Value);
            }
        }