コード例 #1
0
        public async Task GetFlightPlan_FlighInDb_ReturnFlightDbAsync()
        {
            //Arrange
            string         id       = "test1";
            FlightPlan     Expected = GetFlightExpected();
            StubSQLCommand stub     = new StubSQLCommand();
            //FakeExternalFlight fakeExternalFlight = new FakeExternalFlight();
            Mock <IExternalFlights> mock = new Mock <IExternalFlights>();

            //FlightPlan fake = FakeExternalFlight();
            mock.Setup(x => x.GetExternalFlightById(id))
            .Returns(FakeExternalFlight());
            //injection with the fake data
            FlightPlanController flightPlanController =
                new FlightPlanController(mock.Object, stub);

            //Act
            var result = await flightPlanController.GetFlightPlan(id);

            ActionResult mod          = result.Result;
            var          ok           = mod as OkObjectResult;
            FlightPlan   resultFlight = (FlightPlan)ok.Value;
            // var flight = result.Value;
            //var flight = result.Result;
            //var a=flight.();


            //Assert
            var object1Json = JsonConvert.SerializeObject(Expected);
            var object2Json = JsonConvert.SerializeObject(resultFlight);

            Assert.AreEqual(object1Json, object2Json);
            //   Assert.AreEqual(Expected.C );
            mock.Verify(x => x.GetExternalFlightById(id), Times.Never);
        }
コード例 #2
0
        public void Get_flightPlanExists_ReturnsFlightPlan()
        {
            var mockFlightPlanManager    = new FlightPlanManager(flightPlansStub, externalFlightsStub);
            var mockFlightPlanController = new FlightPlanController(mockFlightPlanManager);
            var testPlan = new FlightPlan(200, "ELAL",
                                          new InitialLocation()
            {
                Latitude  = 34.234,
                Longitude = 21.234,
                Date_Time = "2020-12-27T00:01:30Z"
            }, new List <Segment>()
            {
                new Segment()
                {
                    Latitude         = 32.234,
                    Longitude        = 26.234,
                    Timespan_Seconds = 650
                }
            });

            var response  = mockFlightPlanController.Post(testPlan);
            var okResult  = response as OkObjectResult;
            var flightRes = (FlightPlan)okResult.Value;

            Assert.Same(flightRes, testPlan);
        }
        // test for IsValidFlightPlan function.
        // in this scenario - we are adding legal flight and expect to get true as a return value.
        public void IsValidFlightPlanFullFlightReturnsTrue()
        {
            // Arrange
            //new FlightPlan.
            var flightPlan = new FlightPlan();

            //new segment list.
            List <Segment> list     = new List <Segment>();
            var            segments = new Segment();

            segments.Latitude         = 31.12;
            segments.Longitude        = 33.16;
            segments.Timespan_seconds = 500;
            list.Add(segments);
            //new location.
            var location = new LocationAndTime(16, 14, new DateTime());

            flightPlan.Passengers       = 50;
            flightPlan.Company_Name     = "comp-name";
            flightPlan.Initial_Location = location;
            flightPlan.Segments         = list;

            //creating flightPlanController
            var flightPlanTester = new FlightPlanController(new FlightControlManager());

            // Act
            var result = flightPlan.IsValidFlightPlan();

            // Assert
            Assert.IsTrue(result);
        }
コード例 #4
0
        public void ShouldGetFlightPlan()
        {
            using (var mock = AutoMock.GetLoose())
            {
                FlightPlan flightPlan = new FlightPlan()
                {
                    company_name = "sd"
                };

                Task <FlightPlan> task1 = Task <FlightPlan> .FromResult(flightPlan);

                var x = new Mock <IFlightPlanManager>();

                x.Setup(x => x.GetFlightPlanByID("123")).Returns(task1);

                var controller = new FlightPlanController(x.Object);

                var actionResult = controller.GetFlightPlanById("123").Result;
                Microsoft.AspNetCore.Mvc.OkObjectResult okObjectResult = (Microsoft.AspNetCore.Mvc.OkObjectResult)actionResult;
                var        temp   = okObjectResult.Value;
                FlightPlan actual = (FlightPlan)temp;

                var expected = new FlightPlan()
                {
                    company_name = "sd"
                };
                Assert.True(actual != null);
                Assert.Equal(expected.company_name, actual.company_name);
            }
        }
コード例 #5
0
        public static void ClassInit(TestContext context)
        {
            flightServiceMock    = new Mock <FlightService>();
            flightController     = new FlightController(flightServiceMock.Object);
            flightPlanController = new FlightPlanController(flightServiceMock.Object);

            //Take current Time
            postDateTime = DateTime.Now;
            postDateTime = postDateTime.ToUniversalTime();
            //Create Json with current time
            string dateAsString = postDateTime.ToString("yyyy-MM-ddTHH:mm:ssZ");

            string jsonFlight = @"{""passengers"": 216,
    ""company_name"": ""SwissAir"",
    ""initial_location"": {
        ""longitude"": 33.000,
        ""latitude"": 31.000,
        ""date_time"": """ + dateAsString + @"""
    },
    ""segments"": [
        {
            ""longitude"": 33.500,
            ""latitude"": 31.500,
            ""timespan_seconds"": 600
        }
    ]}";

            //Post Flight
            flightPlanController.Post(jsonFlight);
        }
コード例 #6
0
        public static void ClassInit(TestContext context)
        {
            flightServiceMock    = new Mock <FlightService>();
            flightPlanController = new FlightPlanController(flightServiceMock.Object);
            string jsonFlight = @"{""passengers"": 216,
    ""company_name"": ""SwissAir"",
    ""initial_location"": {
        ""longitude"": 33.000,
        ""latitude"": 31.000,
        ""date_time"": ""2020-12-26T18:00:00Z""
    },
    ""segments"": [
        {
            ""longitude"": 33.500,
            ""latitude"": 31.500,
            ""timespan_seconds"": 600
        }
    ]}";
            ActionResult <FlightPlan> returned = flightPlanController.Post(jsonFlight);
            var result = returned.Result as OkObjectResult;
            var plan   = result.Value as FlightPlan;

            flightControlResult = flightPlanController.Get(plan.FlightId);
            var returnedResult = flightControlResult.Result as OkObjectResult;

            returnedPlan = result.Value as FlightPlan;
        }
コード例 #7
0
        public void EmptyListTest()
        {
            // Arrange
            var mockFactory       = new Mock <IHttpClientFactory>();
            var clientHandlerStub = new DelegatingHandlerStub();
            var client            = new HttpClient(clientHandlerStub);

            mockFactory.Setup(_ => _.CreateClient(It.IsAny <string>())).Returns(client);
            IHttpClientFactory factory = mockFactory.Object;

            IMemoryCache memoryCache = new MemoryCache(new MemoryCacheOptions());

            Mock <IMemoryCache>  cache      = new Mock <IMemoryCache>();
            FlightPlanController controller = new FlightPlanController(memoryCache, factory);
            // Arrange
            var myContext = new Mock <HttpContext>();

            myContext.SetupGet(x => x.Request.QueryString).
            Returns(new QueryString("?relative_to=" + DateTime.Now));
            var controllerContext = new ControllerContext()
            {
                HttpContext = myContext.Object,
            };

            controller = new FlightPlanController(memoryCache, factory)
            {
                ControllerContext = controllerContext,
            };
            // Act
            var actionResult = controller.GetFlightsByDateAsync(DateTime.Now);

            // Assert
            Assert.IsTrue(actionResult.Result.Value.Count == 0);
        }
コード例 #8
0
ファイル: UnitTest1.cs プロジェクト: itay198/FlightControlWeb
        public void TestMethod1()
        {
            FlightPlanController fp = new FlightPlanController();
            // read a 100 flight plan from the json file
            string            json        = File.ReadAllText("./FlightplanMultiple (100).json");
            List <FlightPlan> flightsPlan = JsonConvert.DeserializeObject <List <FlightPlan> >(json);

            // send all the flight plan to the controller
            for (int i = 0; i < flightsPlan.Count; i++)
            {
                fp.Post(flightsPlan[i]);
            }
            // for all plight plan, we sent get reqest to the controller with the id and check if we gat the same flight plan
            for (int i = 0; i < flightsPlan.Count; i++)
            {
                string name = flightsPlan[i].Company_name + i;

                JsonResult temp   = fp.Get(name);
                FlightPlan answer = (FlightPlan)temp.Value;
                // if the flight plan is't not the same, the test is fail.
                if (!isEqualFP(answer, flightsPlan[i]))
                {
                    Assert.Fail();
                }
            }
        }
コード例 #9
0
        public async void Are_Post_and_Then_Get_The_Same_For_FlightPlan()
        {
            //Arrange
            var options = new DbContextOptionsBuilder <FlightPlanDBContext>()
                          .UseInMemoryDatabase(databaseName: "Test database");
            var mockDB = new Mock <FlightPlanDBContext>(options)
            {
                CallBase = true
            };

            var flightPlanController = new FlightPlanController(null, mockDB.Object);
            var testPlan             = GetTestFlightPlanVer1();

            //Act
            await flightPlanController.Post(testPlan);

            var ans = await flightPlanController.Get("AAAA-0001");

            //Assert
            Assert.Equal(testPlan.CompanyName, ans.Value.CompanyName);
            Assert.Equal(testPlan.InitialLocation.Latitude, ans.Value.InitialLocation.Latitude);
            Assert.Equal(testPlan.InitialLocation.Longitude, ans.Value.InitialLocation.Longitude);
            Assert.Equal(testPlan.Passengers, ans.Value.Passengers);
            Assert.Equal(testPlan.Segments, ans.Value.Segments);
        }
コード例 #10
0
ファイル: UnitTest1.cs プロジェクト: itay198/FlightControlWeb
        public void TestMethod2()
        {
            FlightPlanController fp = new FlightPlanController();
            // send a fake id, and if we get null from the controller is good.
            JsonResult temp = fp.Get("ffgk");

            Assert.IsNull(temp.Value);
        }
コード例 #11
0
        public void InvalidPostSegments()
        {
            var mockRepo1            = new Mock <IFlightPlanManager>();
            var mockRepo2            = new Mock <IServerManager>();
            var flightPlanController = new FlightPlanController(mockRepo1.Object, mockRepo2.Object);

            Assert.Null(flightPlanController.Post(GetFligtPlanTest(120, "SwissAir", false)));
        }
コード例 #12
0
        public void InvalidPostCompanyName()
        {
            var mockRepo1            = new Mock <IFlightPlanManager>();
            var mockRepo2            = new Mock <IServerManager>();
            var flightPlanController = new FlightPlanController(mockRepo1.Object, mockRepo2.Object);

            Assert.Null(flightPlanController.Post(GetFligtPlanTest(120, null, true)));
        }
コード例 #13
0
        //Tester constructor
        public FlightControllerUnitTest()
        {
            string[] args    = { };
            var      builder = new DbContextOptionsBuilder <FlightPlanContext>();
            var      host    = Program.CreateHostBuilder(args);

            builder.UseInMemoryDatabase("DataBase");
            flightPlanContext = new FlightPlanContext(builder.Options);
            testedCotroller   = new FlightPlanController(flightPlanContext);
        }
        // test for IsValidFlightPlan function.
        // in this scenario, we are adding illegal flight and expect to get true as a return value.
        public void IsValidFlightPlanNotFullFlightReturnsFalse()
        {
            // Arrange
            var flightPlanTester = new FlightPlanController(new FlightControlManager());
            // Act
            var result = new FlightPlan().IsValidFlightPlan();

            // Assert
            Assert.IsFalse(result);
        }
コード例 #15
0
        public FlightsControllerTests()
        {
            string[] args = { };
            var      d    = new DbContextOptionsBuilder <FlightContext>();
            var      h    = Program.CreateHostBuilder(args);

            d.UseInMemoryDatabase("DBName");
            _FlightDBContextMock = new FlightContext(d.Options);
            fpc = new FlightPlanController(_FlightDBContextMock);
        }
コード例 #16
0
        public async Task ConfigureServicesAddFlightPlanTest()
        {
            // mocks
            var data = new DbContextOptionsBuilder <FlightsDbContext>();

            data.UseInMemoryDatabase("FlightPlanDb");
            flightsDbContext     = new FlightsDbContext(data.Options);
            flightPlanController = new FlightPlanController(flightsDbContext);
            await SetnewFlightPlanToDbTest();
        }
コード例 #17
0
        public async Task GetFPReturn404WhenExternalServerDidntFindPlanAsync()
        {
            var fpDbMock = new Mock <IFlightPlanDB>();

            fpDbMock.Setup(x => x.LoadAllFP()).Returns(GetEmptyFPList);
            fpDbMock.Setup(x => x.IsExist("")).Returns(Task.FromResult(true));
            fpDbMock.Setup(x => x.LoadFP("")).Returns(Task.FromResult(new FlightPlan()));
            fpDbMock.Setup(x => x.SaveFP(new FlightPlan())).Returns(
                Task.FromResult(default(object)));
            fpDbMock.Setup(x => x.DeleteFlight("")).Returns(Task.FromResult(default(object)));

            var serverDbMock = new Mock <IServerDB>();

            serverDbMock.Setup(x => x.DeleteServer("")).Returns(Task.FromResult(default(object)));
            serverDbMock.Setup(x => x.SaveServer(new Server())).Returns(
                Task.FromResult(default(object)));
            serverDbMock.Setup(x => x.LoadServer(It.IsAny <string>())).Returns(
                Task.FromResult(new Server {
                Id = "testId", Url = "http://localhost"
            }));
            serverDbMock.Setup(x => x.LoadAllServers()).Returns(
                Task.FromResult(new List <Server> {
                new Server {
                    Id = "Test", Url = "http://localhost"
                }
            }));

            var flightToServerDbMock = new Mock <IFlightToServerDB>();

            flightToServerDbMock.Setup(x => x.DeleteFlightToServer("")).Returns(
                Task.FromResult(default(object)));
            flightToServerDbMock.Setup(x => x.IsFlightExist("")).Returns(
                Task.FromResult(true));
            flightToServerDbMock.Setup(x => x.IsFlightExternal("")).Returns(
                Task.FromResult(false));
            flightToServerDbMock.Setup(x => x.SaveFlightToServer("", "")).Returns(
                Task.FromResult(default(object)));
            flightToServerDbMock.Setup(x => x.LoadFlightServer(It.IsAny <string>())).Returns(
                Task.FromResult("testId"));


            HttpClient httpClient = new HttpClient(new MockHttpMessageHandler("", HttpStatusCode.NotFound));


            var factoryMock = new Mock <IHttpClientFactory>();

            factoryMock.Setup(_ => _.CreateClient(It.IsAny <string>())).Returns(httpClient);

            FlightPlanController controller = new FlightPlanController(factoryMock.Object,
                                                                       fpDbMock.Object, serverDbMock.Object, flightToServerDbMock.Object);

            ActionResult actionResult = (await controller.GetFP("test")).Result;

            Assert.IsInstanceOfType(actionResult, typeof(NotFoundObjectResult));
        }
コード例 #18
0
        public void GetFlightPlanById_ReturnFlighPlan()
        {
            FlightPlanController fpController = new FlightPlanController(_mockRepo);
            var expected = _mockRepo.GetFlightPlanByIdOutput;

            var            answer = fpController.GetFlightPlanByIdAsync("KOKO68");
            OkObjectResult result = (OkObjectResult)answer.Result.Result;
            var            actual = result.Value;

            Assert.AreEqual(actual, expected, "Invalid Answer in GetFlightPlanByIdAsync method.");
        }
コード例 #19
0
        public void PostFlightPlan_ReturnValidResponse()
        {
            FlightPlanController fpController   = new FlightPlanController(_mockRepo);
            FlightPlan           mockFlightPlan = GetMockFlightPlan();
            var expected = _mockRepo.PostFlightPlanOutput;

            var            answer = fpController.PostFlightPlan(mockFlightPlan);
            OkObjectResult result = (OkObjectResult)answer.Result;
            var            actual = result.Value;

            Assert.AreEqual(actual, expected, "Invalid Answer in Post FlightPlan method.");
        }
コード例 #20
0
        public async Task PostInValidFlightPlanReturnStatusCode()
        {
            //arrange
            FlightPlanDto flightPlanDto = FlightPlanGenerator.testFlightPlan;

            flightPlanDto.InitialLocation.Latitude = 200;
            var flightPlanController = new FlightPlanController(new Mock <IRepository>().Object);
            //act
            var result = await flightPlanController.PostFlightPlan(flightPlanDto);

            //assert
            Assert.AreEqual(StatusCodes.Status400BadRequest, ((ContentResult)result.Result).StatusCode);
        }
コード例 #21
0
        public async Task PostFlightPlanFailedReturnStatusCode()
        {
            //arrange
            var           repositoryMock = new Mock <IRepository>();
            FlightPlanDto flightPlanDto  = null;

            repositoryMock.Setup(r => r.AddFlightPlan(null)).Throws(new System.Exception());
            var flightPlanController = new FlightPlanController(repositoryMock.Object);
            //act
            var result = await flightPlanController.PostFlightPlan(flightPlanDto);

            //assert
            Assert.AreEqual(StatusCodes.Status500InternalServerError, ((ContentResult)result.Result).StatusCode);
        }
コード例 #22
0
        public void PostFlghtPlanTest(FlightPlan flightPlan, ObjectResult expectedResult)
        {
            // Arrange.
            IDataAccess          demoDataAccess       = new DemoDataAccess();
            IFlightPlanManager   flightPlanManager    = new FlightPlanManager(demoDataAccess);
            FlightPlanController flightPlanController =
                new FlightPlanController(flightPlanManager);

            // Act.
            ActionResult <string> actionResult = flightPlanController.Post(flightPlan);

            // Assert.
            Assert.IsInstanceOfType(actionResult.Result, expectedResult.GetType());
        }
コード例 #23
0
        public async Task PostFlightPlanSucceedsReturnFlightPlanDto()
        {
            //arrange
            var           repositoryMock = new Mock <IRepository>();
            FlightPlanDto flightPlanDto  = FlightPlanGenerator.testFlightPlan;
            var           flightPlan     = FromDto(flightPlanDto);

            repositoryMock.Setup(r => r.AddFlightPlan(flightPlanDto)).ReturnsAsync(flightPlan);
            var flightPlanController = new FlightPlanController(repositoryMock.Object);
            //act
            var result = await flightPlanController.PostFlightPlan(flightPlanDto);

            //assert
            Assert.AreEqual(flightPlanDto, ((CreatedAtActionResult)result.Result).Value);
        }
コード例 #24
0
 public void _FlightPlanControllerPostTest()
 {
     using (var mock = AutoMock.GetLoose())
     {
         FlightPlan fp = new FlightPlan()
         {
             company_name = "testCompany"
         };
         var x = new Mock <IFlightPlanManager>();
         x.Setup(x => x.addFlightPlan(fp)).Returns(fp);
         FlightPlanController f = new FlightPlanController(x.Object);
         var actual             = f.Post(fp);
         var expected           = fp;
         Assert.True(actual != null);
         Assert.Equal(expected.company_name, actual.company_name);
     }
 }
コード例 #25
0
        public async Task GetFlightPlan_ShouldReturnFlightPlanById_fromExternalServer()
        {
            //arrange - create In Memory Database
            var options = new DbContextOptionsBuilder <DBInteractor>()
                          .UseInMemoryDatabase(databaseName: "filghtContolDB")
                          .Options;

            //// Create mocked Context by seeding Data as per Schema///
            using (var context = new DBInteractor(options))
            {
                context.Servers.Add(new Server
                {
                    Id  = "1",
                    Url = "serverTest"
                });
                context.ExternalFlights.Add(new ExternalFlight
                {
                    FlightId          = "1",
                    ExternalServerUrl = "serverTest"
                });

                context.SaveChanges();
            }

            //act
            using (var context = new DBInteractor(options))
            {
                var stub = new StubIServerManager();

                FlightPlanController controller = new FlightPlanController(context)
                {
                    ServerManagerProp = stub
                };
                var actionResult = await controller.GetFlightPlan("1");

                var okObject = actionResult as OkObjectResult;
                //var actualResult = result.Value;
                var flight = JsonConvert.DeserializeObject <FlightPlan>(okObject.Value.ToString());
                Assert.AreEqual(1, flight.Passengers);
                Assert.AreEqual("testCompany", flight.CompanyName);
                Assert.AreEqual(3, flight.Segments.Count);
                Assert.AreEqual(20, flight.InitialLocation.Latitude);
                Assert.AreEqual(25, flight.InitialLocation.Longitude);
            }
        }
コード例 #26
0
        public async void GetFlightPlanTest(string id)
        {
            // Arrange.
            IDataAccess          demoDataAccess       = new DemoDataAccess();
            IFlightPlanManager   flightPlanManager    = new FlightPlanManager(demoDataAccess);
            FlightPlanController flightPlanController = new FlightPlanController(flightPlanManager);

            // Act.
            ActionResult <FlightPlan> actionResult = await flightPlanController.GetItem(id);

            ObjectResult result           = actionResult.Result as ObjectResult;
            FlightPlan   actualFlightPlan = result.Value as FlightPlan;

            // Assert.
            FlightPlan expectedFlightPlan = demoDataAccess.GetFlightPlan(id);

            Assert.AreEqual <FlightPlan>(actualFlightPlan, expectedFlightPlan);
        }
コード例 #27
0
        public void LateRelativeDateTime()
        {
            // Arrange
            var mockFactory       = new Mock <IHttpClientFactory>();
            var clientHandlerStub = new DelegatingHandlerStub();
            var client            = new HttpClient(clientHandlerStub);

            mockFactory.Setup(_ => _.CreateClient(It.IsAny <string>())).Returns(client);

            IHttpClientFactory factory     = mockFactory.Object;
            IMemoryCache       memoryCache = new MemoryCache(new MemoryCacheOptions());

            Mock <IMemoryCache> cache = new Mock <IMemoryCache>();

            var myContext = new Mock <HttpContext>();

            DateTime   now        = DateTime.Now;
            FlightPlan flightPlan = new FlightPlan();

            flightPlan.passengers = 200;
            var          json      = JsonConvert.SerializeObject(flightPlan);
            var          byteArray = Encoding.ASCII.GetBytes(json);
            MemoryStream stream    = new MemoryStream(byteArray);

            stream.Flush();
            stream.Position = 0;

            myContext.SetupGet(x => x.Request.Body).Returns(stream);
            var controllerContext = new ControllerContext()
            {
                HttpContext = myContext.Object,
            };
            FlightPlanController controller = new FlightPlanController(memoryCache, factory)
            {
                ControllerContext = controllerContext,
            };

            // Act
            ActionResult <FlightPlan> answer = controller.AddFlightPlan(flightPlan);

            // Assert
            Assert.AreEqual(answer.Value, flightPlan);
        }
コード例 #28
0
        public void ShouldAddFlightPlan()
        {
            using (var mock = AutoMock.GetLoose())
            {
                FlightPlan flightPlan = new FlightPlan()
                {
                    company_name = "bla"
                };
                var x = new Mock <IFlightPlanManager>();
                x.Setup(x => x.AddFlightPlan(flightPlan)).Returns(flightPlan);

                FlightPlanController f = new FlightPlanController(x.Object);
                var actionResult       = f.AddFlightPlan(flightPlan).Result;
                Microsoft.AspNetCore.Mvc.OkObjectResult okObjectResult = (Microsoft.AspNetCore.Mvc.OkObjectResult)actionResult;
                var        temp     = okObjectResult.Value;
                FlightPlan actual   = (FlightPlan)temp;
                var        expected = flightPlan;
                Assert.True(actual != null);
                Assert.Equal(expected.company_name, actual.company_name);
            }
        }
コード例 #29
0
        public void WrongFligthID()
        {
            // Arrange
            var mockFactory       = new Mock <IHttpClientFactory>();
            var clientHandlerStub = new DelegatingHandlerStub();
            var client            = new HttpClient(clientHandlerStub);

            mockFactory.Setup(_ => _.CreateClient(It.IsAny <string>())).Returns(client);

            IHttpClientFactory factory     = mockFactory.Object;
            IMemoryCache       memoryCache = new MemoryCache(new MemoryCacheOptions());

            Mock <IMemoryCache> cache       = new Mock <IMemoryCache>();
            var myContext                   = new Mock <HttpContext>();
            FlightPlanController controller = new FlightPlanController(memoryCache, factory);

            // Act
            Task <ActionResult <FlightPlan> > flightPlan = controller.GetFlightPlanById("dfasd3");


            // Assert
            Assert.IsNull(flightPlan.Result.Value);
        }
コード例 #30
0
        public void Test_AddFlight()
        {
            // Setup
            Location location = new Location(38.112375, 23.879437, DateTime.UtcNow);

            List <Segment> segments = new List <Segment>();

            segments.Add(new Segment(31.922629, 31.522594, 50)); // Egypt
            segments.Add(new Segment(32.426506, 34.743033, 50)); // Cyprus
            segments.Add(new Segment(26.209199, 35.055211, 50)); // Greece
            FlightPlan flightPlan = new FlightPlan(8, "Company", location, segments);

            var stubRemoteServersConnector = new RemoteServersConnector();
            var mockFlightsManager         = new FlightsManager(stubRemoteServersConnector);
            var flightPlanController       = new FlightPlanController(mockFlightsManager);

            // Act
            IActionResult addAction = flightPlanController.AddFlightPlan(flightPlan);

            // Assert
            Assert.IsType <OkResult>(addAction);
            Assert.Single(mockFlightsManager.GetRelativeFlights(DateTime.UtcNow, false));
        }