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); }
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); }
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); } }
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); }
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; }
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); }
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(); } } }
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); }
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); }
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))); }
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))); }
//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); }
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); }
public async Task ConfigureServicesAddFlightPlanTest() { // mocks var data = new DbContextOptionsBuilder <FlightsDbContext>(); data.UseInMemoryDatabase("FlightPlanDb"); flightsDbContext = new FlightsDbContext(data.Options); flightPlanController = new FlightPlanController(flightsDbContext); await SetnewFlightPlanToDbTest(); }
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)); }
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."); }
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."); }
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); }
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); }
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()); }
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); }
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); } }
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); } }
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); }
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); }
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); } }
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); }
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)); }