示例#1
0
        public void createValidDriverDuty()
        {
            string driverDutyCode = "dDutycode1";
            var    tripList       = new List <Trip>();


            string lineID            = "Line:1";
            string pathID            = "Path:1";
            string tripDepartureTime = "20:12:10";

            var trip = new Trip(lineID, pathID, tripDepartureTime);

            tripList.Add(trip);
            var workBlock1 = new WorkBlock("9:0:0", "10:0:0", tripList);
            var workBlock2 = new WorkBlock("10:0:0", "13:0:0", tripList);
            var workBlock3 = new WorkBlock("14:0:0", "18:0:0", tripList);

            var workBlockList = new List <WorkBlock> {
                workBlock1, workBlock2, workBlock3
            };

            var driverDuty = new DriverDuty(driverDutyCode, workBlockList);

            Assert.True(driverDuty.GetType().Equals(new DriverDuty().GetType()));
        }
示例#2
0
        public async void GetByIdTest()
        {
            var repo       = new Mock <IDriverDutyRepository>();
            var unitOfWork = new Mock <IUnitOfWork>();

            var service    = new DriverDutyService(unitOfWork.Object, repo.Object);
            var controller = new DriverDutiesController(service);

            DriverDutyId  id         = new DriverDutyId(Guid.NewGuid());
            string        key        = "keyDD1";
            string        driver     = "DriverDD";
            List <String> workblocks = new List <String>();

            workblocks.Add("wb1");
            workblocks.Add("wb2");
            workblocks.Add("wb3");

            var dd = new DriverDuty(key, driver, workblocks);

            repo.Setup(_ => _.GetByIdAsync(id)).ReturnsAsync(dd);

            var actual = await controller.GetGetById(id.AsGuid());

            var expected = new DriverDutyDto(key, driver, workblocks);

            Assert.Equal(actual.Value.Key, expected.Key);
            Assert.Equal(actual.Value.Driver, expected.Driver);
            Assert.Equal(actual.Value.Workblocks, expected.Workblocks);
        }
示例#3
0
        public async void GetById()
        {
            var service = new Mock <IDriverDutyService>();

            string driverDutyCode = "dDutycode1";
            var    tripList       = new List <Trip>();


            string lineID            = "Line:1";
            string pathID            = "Path:1";
            string tripDepartureTime = "20:12:10";

            var trip = new Trip(lineID, pathID, tripDepartureTime);

            tripList.Add(trip);

            var workBlock1 = new WorkBlock("9:0:0", "10:0:0", tripList);
            var workBlock2 = new WorkBlock("10:0:0", "13:0:0", tripList);
            var workBlock3 = new WorkBlock("14:0:0", "18:0:0", tripList);

            var workBlockList = new List <WorkBlock> {
                workBlock1, workBlock2, workBlock3
            };

            var driverDuty = new DriverDuty(driverDutyCode, workBlockList);

            var tripDTO  = new TripDTO(trip.Id.AsGuid(), new LineId(lineID), new PathId(pathID), tripDepartureTime);
            var tripsDTO = new List <TripDTO>()
            {
                tripDTO
            };


            var listWorkBlocksString = new List <String>()
            {
                workBlock1.Id.Value, workBlock2.Id.Value, workBlock3.Id.Value
            };

            var workBlockDTO1 = new WorkBlockDTO(workBlock1.Id.AsGuid(), workBlock1.startingTime.time, workBlock1.endingTime.time, tripsDTO);
            var workBlockDTO2 = new WorkBlockDTO(workBlock2.Id.AsGuid(), workBlock2.startingTime.time, workBlock2.endingTime.time, tripsDTO);
            var workBlockDTO3 = new WorkBlockDTO(workBlock3.Id.AsGuid(), workBlock3.startingTime.time, workBlock3.endingTime.time, tripsDTO);

            var listWorkBlockDTO = new List <WorkBlockDTO>()
            {
                workBlockDTO1, workBlockDTO2, workBlockDTO3
            };

            var driverDutyDTO = new DriverDutyDTO(driverDuty.Id.AsGuid(), driverDutyCode, listWorkBlockDTO);

            service.Setup(_ => _.GetById(driverDuty.Id)).ReturnsAsync(driverDutyDTO);

            var controller = new DriverDutyController(service.Object);


            var actual = await controller.GetById(driverDuty.Id.AsGuid());

            Assert.Equal(driverDutyDTO, actual.Value);
        }
示例#4
0
        public void DTOtoDomain()
        {
            var mapper = new DriverDutyMapper();

            string driverDutyCode = "dDutycode1";
            var    tripList       = new List <Trip>();


            string lineID            = "Line:1";
            string pathID            = "Path:1";
            string tripDepartureTime = "20:12:10";

            var trip = new Trip(lineID, pathID, tripDepartureTime);

            tripList.Add(trip);
            var workBlock1 = new WorkBlock("9:0:0", "10:0:0", tripList);
            var workBlock2 = new WorkBlock("10:0:0", "13:0:0", tripList);
            var workBlock3 = new WorkBlock("14:0:0", "18:0:0", tripList);

            var workBlockList = new List <WorkBlock> {
                workBlock1, workBlock2, workBlock3
            };

            var tripDTO  = new TripDTO(trip.Id.AsGuid(), new LineId(lineID), new PathId(pathID), tripDepartureTime);
            var tripsDTO = new List <TripDTO>()
            {
                tripDTO
            };


            var listWorkBlocksString = new List <String>()
            {
                workBlock1.Id.Value, workBlock2.Id.Value, workBlock3.Id.Value
            };

            var workBlockDTO1 = new WorkBlockDTO(workBlock1.Id.AsGuid(), workBlock1.startingTime.time, workBlock1.endingTime.time, tripsDTO);
            var workBlockDTO2 = new WorkBlockDTO(workBlock2.Id.AsGuid(), workBlock2.startingTime.time, workBlock2.endingTime.time, tripsDTO);
            var workBlockDTO3 = new WorkBlockDTO(workBlock3.Id.AsGuid(), workBlock3.startingTime.time, workBlock3.endingTime.time, tripsDTO);

            var listWorkBlockDTO = new List <WorkBlockDTO>()
            {
                workBlockDTO1, workBlockDTO2, workBlockDTO3
            };


            var driverDuty = new DriverDuty(driverDutyCode, workBlockList);

            var expected = new DriverDutyDTO(
                driverDuty.Id.AsGuid(),
                driverDutyCode,
                listWorkBlockDTO
                );

            var actual = mapper.DomainToDTO(driverDuty);

            Assert.Equal(actual, expected);
        }
示例#5
0
        public async Task <DriverDutyDTO> AddDriverDuty(CreatingDriverDutyDTO driverDutyDTO)
        {
            List <WorkBlock> workBlocks    = new List <WorkBlock>();
            List <WorkBlock> workBlocksAux = new List <WorkBlock>();

            foreach (var workBlockId in driverDutyDTO.listWorkBlocks)
            {
                var workBlock = await _workBlockRepository.GetByIdAsync(new WorkBlockID(workBlockId));

                workBlocks.Add(workBlock);
                workBlocksAux.Add(workBlock);
            }

            for (int i = 1; i < workBlocks.Count; i++)
            {
                var firstVehicleDutyId = await this._repoVehicleDutyRepository.getVehicleDutyByWorkblock(workBlocks[i]);

                var secondVehicleDutyId = await this._repoVehicleDutyRepository.getVehicleDutyByWorkblock(workBlocks[i - 1]);

                if (!firstVehicleDutyId.Id.Equals(secondVehicleDutyId.Id))
                {
                    if (workBlocks[i - 1].tripList.Count > 0 && workBlocks[i].tripList.Count > 0)
                    {
                        var lastNodeOfLastWorkblok = workBlocks[i - 1].tripList.Last().nodePassageList.Last().nodeID.id;

                        var firstNodeOfActualWorkblock = workBlocks[i].tripList.First().nodePassageList.First().nodeID.id;
                        // if (lastNodeOfLastWorkblok.Equals(firstNodeOfActualWorkblock))
                        // {
                        NodeDTO firstNode = await HttpRequest <NodeDTO> .GetByID("http://localhost:8080/api/node/" + firstNodeOfActualWorkblock);

                        if (!firstNode.isReliefPoint)
                        {
                            throw new BusinessRuleValidationException(firstNode.code + " invalid: this node is not a relief point.");
                        }
                        // }
                        // else
                        // {
                        //     throw new BusinessRuleValidationException("When two workblocks have a diferent vehicleDuty the last node of the last workblock must be the same as the first of actual workblock");
                        // }
                    }
                }
            }

            var driverDuty = new DriverDuty(
                driverDutyDTO.driverDutyCode,
                workBlocks
                );

            var savedDriverDuty = await this._driverDutyRepository.AddAsync(driverDuty);

            await this._unitOfWork.CommitAsync();

            return(this._driverDutyMapper.DomainToDTO(savedDriverDuty));
        }
示例#6
0
        public void nullDriver()
        {
            string        key        = "keyDD1";
            string        driver     = null;
            List <String> workblocks = new List <String>();

            workblocks.Add("wb1");
            workblocks.Add("wb2");
            workblocks.Add("wb3");

            DriverDuty dd = new DriverDuty(key, driver, workblocks);
        }
示例#7
0
        public void nullKey()
        {
            string        key        = null;
            string        driver     = "DriverDD";
            List <String> workblocks = new List <String>();

            workblocks.Add("wb1");
            workblocks.Add("wb2");
            workblocks.Add("wb3");

            DriverDuty dd = new DriverDuty(key, driver, workblocks);
        }
示例#8
0
        public async void GetByIdTest_Fail()
        {
            var repo       = new Mock <IDriverDutyRepository>();
            var unitOfWork = new Mock <IUnitOfWork>();

            var service    = new DriverDutyService(unitOfWork.Object, repo.Object);
            var controller = new DriverDutiesController(service);

            DriverDuty dd = null;

            repo.Setup(_ => _.GetByIdAsync(It.IsAny <DriverDutyId>())).ReturnsAsync(dd);

            var actual = await controller.GetGetById(Guid.NewGuid());

            Assert.Null(actual.Value);
        }
示例#9
0
        public DriverDutyDTO DomainToDTO(DriverDuty driverDuty)
        {
            var workBlockList = new List <WorkBlockDTO>();

            foreach (var workBlock in driverDuty.listWorkBlocks)
            {
                var workBlockDTO = _workBlockMapper.DomainToDTO(workBlock);
                workBlockList.Add(workBlockDTO);
            }

            var driverDutyDTO = new DriverDutyDTO(
                driverDuty.Id.AsGuid(),
                driverDuty.driverDutyCode.ToString(),
                workBlockList
                );

            return(driverDutyDTO);
        }
示例#10
0
        public void testSetParameters()
        {
            string        key        = "keyDD1";
            string        driver     = "DriverDD";
            List <String> workblocks = new List <String>();

            workblocks.Add("wb1");
            workblocks.Add("wb2");
            workblocks.Add("wb3");

            DriverDuty dd = new DriverDuty(key, driver, workblocks);

            Assert.AreEqual(dd.Key, key);
            Assert.AreEqual(dd.Driver, driver);
            foreach (String s in workblocks)
            {
                DriverWorkblock dw = new DriverWorkblock(s);
                Assert.IsNotNull(dd.Workblocks.Contains(dw));
            }
        }
示例#11
0
        public void testToDomain()
        {
            string        key        = "keyDD1";
            string        driver     = "DriverDD";
            List <String> workblocks = new List <String>();

            workblocks.Add("wb1");
            workblocks.Add("wb2");
            workblocks.Add("wb3");

            DriverDuty dduty = DriverDutyMapper.toDomain(DriverDutyMapper.toDTO(new CreatingDriverDutyDto(key, driver, workblocks.ToArray())));

            DriverDuty dd = new DriverDuty(key, driver, workblocks);

            Assert.AreEqual(dd.Key, dduty.Key);
            Assert.AreEqual(dd.Driver, dduty.Driver);
            foreach (DriverWorkblock dw in dduty.Workblocks)
            {
                Assert.IsNotNull(dd.Workblocks.Contains(dw));
            }
        }
示例#12
0
        public async void GetAll()
        {
            var repo                      = new Mock <IDriverDutyRepository>();
            var repoWorkBlocks            = new Mock <IWorkBlockRepository>();
            var repoVehicleDutyRepository = new Mock <IVehicleDutyRepository>();
            var uow = new Mock <IUnitOfWork>();

            string driverDutyCode = "dDutycode1";
            var    tripList       = new List <Trip>();


            string lineID            = "Line:1";
            string pathID            = "Path:1";
            string tripDepartureTime = "20:12:10";

            var trip = new Trip(lineID, pathID, tripDepartureTime);

            tripList.Add(trip);

            var workBlock1 = new WorkBlock("9:0:0", "10:0:0", tripList);
            var workBlock2 = new WorkBlock("10:0:0", "13:0:0", tripList);
            var workBlock3 = new WorkBlock("14:0:0", "18:0:0", tripList);

            var workBlockList = new List <WorkBlock> {
                workBlock1, workBlock2, workBlock3
            };

            var driverDuty = new DriverDuty(driverDutyCode, workBlockList);

            var tripDTO  = new TripDTO(trip.Id.AsGuid(), new LineId(lineID), new PathId(pathID), tripDepartureTime);
            var tripsDTO = new List <TripDTO>()
            {
                tripDTO
            };


            var listWorkBlocksString = new List <String>()
            {
                workBlock1.Id.Value, workBlock2.Id.Value, workBlock3.Id.Value
            };

            var workBlockDTO1 = new WorkBlockDTO(workBlock1.Id.AsGuid(), workBlock1.startingTime.time, workBlock1.endingTime.time, tripsDTO);
            var workBlockDTO2 = new WorkBlockDTO(workBlock2.Id.AsGuid(), workBlock2.startingTime.time, workBlock2.endingTime.time, tripsDTO);
            var workBlockDTO3 = new WorkBlockDTO(workBlock3.Id.AsGuid(), workBlock3.startingTime.time, workBlock3.endingTime.time, tripsDTO);

            var listWorkBlockDTO = new List <WorkBlockDTO>()
            {
                workBlockDTO1, workBlockDTO2, workBlockDTO3
            };

            var driverDutyDTO = new DriverDutyDTO(driverDuty.Id.AsGuid(), driverDutyCode, listWorkBlockDTO);

            var listDriverDTOs = new List <DriverDutyDTO>()
            {
                driverDutyDTO
            };

            var listDrivers = new List <DriverDuty>()
            {
                driverDuty
            };

            repo.Setup(_ => _.GetAllAsync()).ReturnsAsync(listDrivers);

            var service = new DriverDutyService(repo.Object, repoWorkBlocks.Object, repoVehicleDutyRepository.Object, uow.Object);

            var actual = await service.GetAll();

            Assert.Equal(listDriverDTOs, actual);
        }
示例#13
0
        public async void AddDriverDuty()
        {
            var repo                      = new Mock <IDriverDutyRepository>();
            var repoWorkBlocks            = new Mock <IWorkBlockRepository>();
            var repoVehicleDutyRepository = new Mock <IVehicleDutyRepository>();

            var uow = new Mock <IUnitOfWork>();

            string driverDutyCode = "dDutycode1";
            var    tripList       = new List <Trip>();


            string lineID            = "Line:1";
            string pathID            = "Path:1";
            string tripDepartureTime = "20:12:10";

            var trip = new Trip(lineID, pathID, tripDepartureTime);

            tripList.Add(trip);

            var workBlock1 = new WorkBlock("9:0:0", "10:0:0", tripList);
            var workBlock2 = new WorkBlock("10:0:0", "13:0:0", tripList);
            var workBlock3 = new WorkBlock("14:0:0", "18:0:0", tripList);

            var workBlockList = new List <WorkBlock> {
                workBlock1, workBlock2, workBlock3
            };

            var driverDuty = new DriverDuty(driverDutyCode, workBlockList);

            var tripDTO  = new TripDTO(trip.Id.AsGuid(), new LineId(lineID), new PathId(pathID), tripDepartureTime);
            var tripsDTO = new List <TripDTO>()
            {
                tripDTO
            };

            var tripsDTOString = new List <string>()
            {
                trip.Id.ToString()
            };


            var cworkBlockDTO1 = new CreatingWorkBlockDTO(tripsDTOString, workBlock1.startingTime.time, workBlock1.endingTime.time);
            var cworkBlockDTO2 = new CreatingWorkBlockDTO(tripsDTOString, workBlock2.startingTime.time, workBlock2.endingTime.time);
            var cworkBlockDTO3 = new CreatingWorkBlockDTO(tripsDTOString, workBlock3.startingTime.time, workBlock3.endingTime.time);


            var listWorkBlocksString = new List <String>()
            {
                workBlock1.Id.Value, workBlock2.Id.Value, workBlock3.Id.Value
            };

            var workBlockDTO1 = new WorkBlockDTO(workBlock1.Id.AsGuid(), workBlock1.startingTime.time, workBlock1.endingTime.time, tripsDTO);
            var workBlockDTO2 = new WorkBlockDTO(workBlock2.Id.AsGuid(), workBlock2.startingTime.time, workBlock2.endingTime.time, tripsDTO);
            var workBlockDTO3 = new WorkBlockDTO(workBlock3.Id.AsGuid(), workBlock3.startingTime.time, workBlock3.endingTime.time, tripsDTO);

            var listWorkBlockDTO = new List <WorkBlockDTO>()
            {
                workBlockDTO1, workBlockDTO2, workBlockDTO3
            };

            var driverDutyDTO = new DriverDutyDTO(driverDuty.Id.AsGuid(), driverDutyCode, listWorkBlockDTO);

            var creatingDriverDutyDTO = new CreatingDriverDutyDTO(driverDutyCode, listWorkBlocksString);

            var workBlockID1 = new WorkBlockID(workBlockDTO1.Id);
            var workBlockID2 = new WorkBlockID(workBlockDTO2.Id);
            var workBlockID3 = new WorkBlockID(workBlockDTO3.Id);

            string vehicleDutyCode = "code:1";

            string registration = "AA11AA";
            string vin          = "123456789AAAAAAAA";
            string entranceDate = "27/01/1978";
            string vehicleType  = "vehicleType1";

            Vehicle vehicle = new Vehicle(registration, vin, entranceDate, vehicleType);


            VehicleDuty vehicleDuty = new VehicleDuty(vehicleDutyCode, tripList);

            repoWorkBlocks.Setup(_ => _.GetByIdAsync(workBlockID1)).ReturnsAsync(workBlock1);

            repoWorkBlocks.Setup(_ => _.GetByIdAsync(workBlockID2)).ReturnsAsync(workBlock2);

            repoWorkBlocks.Setup(_ => _.GetByIdAsync(workBlockID3)).ReturnsAsync(workBlock3);

            repoVehicleDutyRepository.Setup(_ => _.getVehicleDutyByWorkblock(workBlock1)).ReturnsAsync(vehicleDuty);

            repoVehicleDutyRepository.Setup(_ => _.getVehicleDutyByWorkblock(workBlock2)).ReturnsAsync(vehicleDuty);

            repoVehicleDutyRepository.Setup(_ => _.getVehicleDutyByWorkblock(workBlock3)).ReturnsAsync(vehicleDuty);

            repo.Setup(_ => _.AddAsync(driverDuty)).ReturnsAsync(driverDuty);

            var service = new DriverDutyService(repo.Object, repoWorkBlocks.Object, repoVehicleDutyRepository.Object, uow.Object);

            var actual = await service.AddDriverDuty(creatingDriverDutyDTO);

            Assert.Equal(driverDutyDTO, actual);
        }