예제 #1
0
        public void InvalidPostServerURL()
        {
            var mockRepo         = new Mock <IServerManager>();
            var serverController = new ServersController(mockRepo.Object);

            Assert.Null(serverController.Post(GetServerTest("12345", null)));
        }
예제 #2
0
        public void InvalidPostServerId()
        {
            var mockRepo         = new Mock <IServerManager>();
            var serverController = new ServersController(mockRepo.Object);

            Assert.Null(serverController.Post(GetServerTest(null, "http://localhost:58493")));
        }
예제 #3
0
        public void TestPostServer()
        {
            Server serv1 = new Server {
                ServerId = "sapir22", ServerUrl = "www.test1.com"
            };
            List <Server> servers = new List <Server>();

            servers.Add(serv1);
            IMemoryCache      cache      = CreateCache();
            ServersController controller = new ServersController(cache);
            string            serJson    = "{\"ServerId\":\"sapir22\",\"ServerURL\":\"www.test1.com\"}";
            JsonDocument      doc        = JsonDocument.Parse(serJson);
            JsonElement       root       = doc.RootElement;

            controller.Post(root);
            var responseList = (List <Server>)controller.GetAllServers();

            Assert.AreEqual(responseList[0].ServerId, servers[0].ServerId);
            Assert.AreEqual(responseList[0].ServerUrl, servers[0].ServerUrl);
        }
        public void InvalidPostTest()
        {
            //Arange
            var httpContextAccessor = new Mock <IHttpContextAccessor>();

            httpContextAccessor.Setup(repo => repo.HttpContext.Request.Host)
            .Returns(new HostString("localhost:44351"));
            var stub          = new Mock <IScheduledCache>();
            var serverManager = new ServerManager(stub.Object);
            var server        = new Server()
            {
                ServerId  = null,
                ServerUrl = "https://localhost:44353"
            };
            var serverController = new ServersController(serverManager, httpContextAccessor.Object);
            //act
            var result = serverController.Post(server);

            //assert
            var action  = Assert.IsType <BadRequestObjectResult>(result);
            var message = Assert.IsAssignableFrom <string>(action.Value);

            Assert.Equal("Invalid server", message);
        }
예제 #5
0
        public void TestDelete()
        {
            List <Server> serverList = new List <Server>()
            {
                new Server {
                    ServerId = "sapir22", ServerUrl = "www.test1.com"
                }
            };
            IMemoryCache  cache      = CreateCache();
            List <string> serversIds = new List <string>();

            serversIds.Add(serverList[0].ServerId);
            ServersController controller = new ServersController(cache);
            string            serJson    = "{\"ServerId\":\"sapir22\",\"ServerURL\":\"www.test1.com\"}";
            JsonDocument      doc        = JsonDocument.Parse(serJson);
            JsonElement       root       = doc.RootElement;

            controller.Post(root);
            controller.Delete(serverList[0].ServerId);
            serverList.Remove(serverList[0]);
            var responseList = (List <Server>)controller.GetAllServers();

            Assert.AreEqual(responseList.Count, 0);
        }
예제 #6
0
        public void ShouldAddServer()
        {
            // Arrange
            Server server = new Server {
                ServerID = "test", ServerURL = "test"
            };
            var x = new Mock <IServerManager>();

            x.Setup(x => x.AddServer(server)).Returns(server);

            var httpContext = new DefaultHttpContext();

            var controllerContext = new ControllerContext()
            {
                HttpContext = httpContext,
            };
            //assign context to controller
            ServersController controller = new ServersController(x.Object)
            {
                ControllerContext = controllerContext,
            };

            //Act
            var actionResult = controller.Post(server).Result;

            Microsoft.AspNetCore.Mvc.OkObjectResult okObjectResult = (Microsoft.AspNetCore.Mvc.OkObjectResult)actionResult;
            var    temp      = okObjectResult.Value;
            Server actual    = (Server)temp;
            var    excpected = server;

            // Assert
            Assert.True(actual != null);

            Assert.Equal(excpected.ServerID, actual.ServerID);
            Assert.Equal(excpected.ServerURL, actual.ServerURL);
        }
예제 #7
0
        public void CheckFlights()
        {
            // Create new cache memory and it's keys.
            var cache = new Microsoft.Extensions.Caching.Memory.
                        MemoryCache(new MemoryCacheOptions());
            List <Server> serversList            = new List <Server>();
            List <string> keysList               = new List <string>();
            Dictionary <string, string> serverOf = new Dictionary <string, string>();

            cache.Set("servers", serversList);
            cache.Set("keys", keysList);
            cache.Set("serverOfIds", serverOf);

            // Check Post method of flight plans.
            FlightPlanController fpController = new FlightPlanController(cache)
            {
                ControllerContext = new ControllerContext
                {
                    HttpContext = new DefaultHttpContext()
                }
            };
            FlightPlan fp = new FlightPlan();

            // Fill flightPlan fields for posting it.
            fp.Passengers                = 200;
            fp.CompanyName               = "SwissAir";
            fp.InitialLocation           = new Location();
            fp.InitialLocation.Longitude = 35;
            fp.InitialLocation.Latitude  = 32;
            fp.InitialLocation.DateTime  = DateTime.UtcNow;
            fp.Segments = new List <Segment>();
            Segment seg = new Segment();

            seg.Longitude       = 36;
            seg.Latitude        = 33;
            seg.TimespanSeconds = 650;
            fp.Segments.Add(seg);
            // Post the preapared flightPlan.
            ActionResult resp = fpController.Post(fp);
            ObjectResult res  = resp as ObjectResult;

            // Check the status code of the response and check it equals
            // to the flight plan which was sent.
            Assert.AreEqual(res.StatusCode, 201);
            Assert.AreEqual(res.Value, fp);
            var iter = fpController.HttpContext.Response.Headers.Values.GetEnumerator();

            iter.MoveNext();
            // Get the interal flight id.
            string internalFlightId = iter.Current.ToArray()[0];

            // Check Post method of servers.
            ServersController serverController = new ServersController(cache);
            Server            testServer       = new Server();

            testServer.Id  = "test";
            testServer.Url = "http://www.testServer.com/";
            // Post the prepared server.
            resp = serverController.Post(testServer);
            res  = resp as ObjectResult;
            // Check the status code of the response and check it equals
            // to the server which was sent.
            Assert.AreEqual(res.StatusCode, 201);
            Assert.AreEqual(res.Value, testServer);

            // Inject fake MessegeHandler to HttpClient.
            // Create new HttpClient and override it's response method with a stub one.
            HttpClient client = new HttpClient(new HttpMessageHandlerStub());
            // Check get method of flights.
            FlightsController flightController = new FlightsController(cache, client)
            {
                ControllerContext = new ControllerContext
                {
                    HttpContext = new DefaultHttpContext()
                }
            };

            // Add sync_all to query.
            flightController.HttpContext.Request.QueryString = new QueryString("?sync_all");
            Task <ActionResult <List <Flight> > > respFlights = flightController.Get(DateTime.UtcNow);

            res = respFlights.Result.Result as ObjectResult;
            Assert.AreEqual(res.StatusCode, 200);
            // Check that we get two flights-
            // the first one is the one was sent earlier in this test.
            // the second one is a fake external flight which was generated by the stub.
            Assert.AreEqual(((List <Flight>)res.Value).Count, 2);
            Flight internalFlight = ((List <Flight>)res.Value)[0];
            Flight externalFlight = ((List <Flight>)res.Value)[1];

            Assert.AreEqual(internalFlight.FlightId, internalFlightId);
            Assert.AreEqual(internalFlight.IsExternal, false);
            Assert.AreEqual(externalFlight.FlightId, "FP00000000");
            Assert.AreEqual(externalFlight.IsExternal, true);
        }