Exemple #1
0
        public void T26ImportVehiclesAndTasksFails()
        {
            var api = TestHelper.Authenticate();
            var user = TestHelper.GetOrCreateUser(api);
            var problem = TestHelper.CreateProblem(api, user, "failing-import-problem2");

            var vehicleSet = new VehicleSetImportRequest
            {
                Items = new List<VehicleUpdateRequest>()
            };

            for (int i = 0; i < 4; i++)
            {
                var vehicle = TestHelper.GenerateVehicleUpdateRequestWithName("Vehicle" + i);
                vehicleSet.Items.Add(vehicle);
            }
            vehicleSet.Items.Add(TestHelper.GenerateVehicleUpdateRequestWithName(""));

            var taskSet = new TaskSetImportRequest
            {
                Items = new List<TaskUpdateRequest>()
            };

            for (int i = 0; i < 4; i++)
            {
                var task = TestHelper.GenerateTaskUpdateRequestWithName("Task" + i);
                taskSet.Items.Add(task);
            }
            taskSet.Items.Add(TestHelper.GenerateTaskUpdateRequestWithName(""));

            var depotSet = new ImportDepotSetRequest { Items = new List<UpdateDepotRequest>() };

            var request = new ImportRequest
            {
                Tasks = taskSet,
                Vehicles = vehicleSet,
                Depots = depotSet
            };
            var result = api.Navigate<ResponseData>(problem.GetLink("import-data"), request);


            var import = api.Navigate<ImportData>(result.Location);

            Assert.AreEqual("Fail", import.State);
            Assert.AreEqual(2, import.ErrorCount);
            Assert.AreEqual(5, import.Vehicles.Count);
            Assert.AreEqual(5, import.Tasks.Count);

            Assert.IsTrue(import.Meta.Find(link => link.Rel.Equals("self")).Enabled);
            Assert.IsFalse(import.Meta.Find(link => link.Rel.Equals("apply-import")).Enabled);
        }
Exemple #2
0
        public void T27ApplyImportedVehiclesAndTasks()
        {
            var api = TestHelper.Authenticate();
            var user = TestHelper.GetOrCreateUser(api);
            var problem = TestHelper.CreateProblem(api, user, "applied-import-problem");

            var vehicleSet = new VehicleSetImportRequest
            {
                Items = new List<VehicleUpdateRequest>()
            };

            for (int i = 0; i < 5; i++)
            {
                var vehicle = TestHelper.GenerateVehicleUpdateRequestWithName("Vehicle" + i);
                vehicleSet.Items.Add(vehicle);
            }


            var taskSet = new TaskSetImportRequest
            {
                Items = new List<TaskUpdateRequest>()
            };

            for (int i = 0; i < 5; i++)
            {
                var task = TestHelper.GenerateTaskUpdateRequestWithName("Task" + i);
                taskSet.Items.Add(task);
            }

            var depotSet = new ImportDepotSetRequest { Items = new List<UpdateDepotRequest>() };

            var request = new ImportRequest
            {
                Tasks = taskSet,
                Vehicles = vehicleSet,
                Depots = depotSet
            };

            var result = api.Navigate<ResponseData>(problem.GetLink("import-data"), request);

            var import = api.Navigate<ImportData>(result.Location);

            Assert.AreEqual("Success", import.State);
            Assert.AreEqual(0, import.ErrorCount);
            Assert.AreEqual(5, import.Vehicles.Count);
            Assert.AreEqual(5, import.Tasks.Count);

            Assert.IsTrue(import.Meta.Find(link => link.Rel.Equals("self")).Enabled);
            Assert.IsTrue(import.Meta.Find(link => link.Rel.Equals("apply-import")).Enabled);
            //##BEGIN EXAMPLE applyimport##
            var appyResult = api.Navigate<ResponseData>(import.GetLink("apply-import"));
            problem = api.Navigate<RoutingProblemData>(problem.GetLink("self"));

            // now we wait for NFleet to do geocoding i.e. data state turns from 'Pending' into 'Ready'
            while (problem.DataState == "Pending")
            {
                Thread.Sleep(1000);
                problem = api.Navigate<RoutingProblemData>( problem.GetLink( "self" ) );
            }
            //##END EXAMPLE##
            var vehicles = api.Navigate<VehicleDataSet>(problem.GetLink("list-vehicles"));
            var tasks = api.Navigate<VehicleDataSet>(problem.GetLink("list-tasks"));
            Assert.AreEqual(5, vehicles.Items.Count);
            Assert.AreEqual(5, tasks.Items.Count);
        }
Exemple #3
0
        public void T24TaskMassImport()
        {
            var api = TestHelper.Authenticate();
            var user = TestHelper.GetOrCreateUser(api);
            var problem = TestHelper.CreateProblemWithDemoData(api, user);

            var capacity = new CapacityData {Name = "Weight", Amount = 20};

            var timeWindows = new List<TimeWindowData>
            {
                new TimeWindowData
                {
                    Start = new DateTime(2013, 5, 14, 7, 0, 0),
                    End = new DateTime(2013, 5, 14, 16, 0, 0)
                }
            };

            var vehiclePickup = new LocationData()
            {
                Coordinate = new CoordinateData {Latitude = 62.244588, Longitude = 25.742683, System = "WGS84"}
            };
            var vehicleDelivery = new LocationData()
            {
                Coordinate = new CoordinateData {Latitude = 62.244588, Longitude = 25.742683, System = "WGS84"}
            };

            //##BEGIN EXAMPLE importtaskset##
            var importRequest = new TaskSetImportRequest
            {
                Items = new List<TaskUpdateRequest>()
            };

            for (int i = 0; i < 10; i++)
            {
                var task = new TaskUpdateRequest {Name = "test name"};
                task.RelocationType = "None";
                task.ActivityState = "Active";

                var pickup = new TaskEventUpdateRequest
                {
                    Type = "Pickup",
                    Location = new LocationData
                    {
                        Coordinate = new CoordinateData
                        {
                            Latitude = 62.244958,
                            Longitude = 25.747143,
                            System = "Euclidian"
                        }
                    },
                    TimeWindows = { new TimeWindowData { Start = new DateTime( 2013, 5, 14, 8, 0, 0 ), End = new DateTime( 2013, 5, 14, 12, 0, 0 ) } }
                };
                pickup.Capacities.Add(capacity);
                task.TaskEvents.Add(pickup);

                var delivery = new TaskEventUpdateRequest
                {
                    Type = "Delivery",
                    Location = new LocationData
                    {
                        Coordinate = new CoordinateData
                        {
                            Latitude = 62.244589,
                            Longitude = 25.74892,
                            System = "Euclidian"
                        }
                    },
                    TimeWindows = { new TimeWindowData { Start = new DateTime( 2013, 5, 14, 8, 0, 0 ), End = new DateTime( 2013, 5, 14, 12, 0, 0 ) } }
                };
                delivery.Capacities.Add(capacity);
                task.TaskEvents.Add(delivery);
                importRequest.Items.Add(task);
            }

            var result = api.Navigate<ResponseData>(problem.GetLink("import-tasks"), importRequest);
            //##END EXAMPLE##
        }