Пример #1
0
        public void AssignPackagesToCouriers_Give4Packages_ReturnListWith3Positions()
        {
            List <Package> packages = new List <Package>();

            packages.Add(new Package()
            {
                Id = 1, Size = PackageSize.Average, Sender = new User()
                {
                    lat = 53.5, lon = 19
                }
            });
            packages.Add(new Package()
            {
                Id = 2, Size = PackageSize.Large, Sender = new User()
                {
                    lat = 53.5, lon = 19
                }
            });
            packages.Add(new Package()
            {
                Id = 3, Size = PackageSize.Average, Sender = new User()
                {
                    lat = 53.5, lon = 19
                }
            });
            packages.Add(new Package()
            {
                Id = 4, Size = PackageSize.Small, Sender = new User()
                {
                    lat = 53.5, lon = 19
                }
            });

            List <User> users = new List <User>();

            users.Add(new User()
            {
                Id = 5, Street = "Œliska", StreetNumber = "28C", City = "Gdynia"
            });
            users.Add(new User()
            {
                Id = 6, Street = "Niska", StreetNumber = "5", City = "Bydgoszcz"
            });

            Dictionary <int, double> distance = new Dictionary <int, double>();

            distance.Add(5, 20);
            distance.Add(6, 150);

            Dictionary <int, int> vehiclesCapacity = new Dictionary <int, int>();

            vehiclesCapacity.Add(5, 220);

            List <Vehicle> vehicles = new List <Vehicle>();

            vehicles.Add(new Vehicle()
            {
                Id = 5, AverageSpeed = 120
            });
            vehicles.Add(new Vehicle()
            {
                Id = 6, AverageSpeed = 100
            });

            var userServiceMock = new Mock <IUserService>();

            userServiceMock
            .Setup(x => x.GetAllDrivers())
            .Returns(users);

            var vehicleServiceMock = new Mock <IVehicleService>();

            vehicleServiceMock
            .Setup(x => x.GetVehicle(5))
            .Returns(new Vehicle()
            {
                Id = 5
            });

            vehicleServiceMock
            .Setup(x => x.GetAllVehicles())
            .Returns(vehicles);

            var locationServiceMock = new Mock <ILocationService>();

            locationServiceMock
            .Setup(y => y.CountDistancesFromPackageToCouriers(users, It.IsAny <Package>()))
            .Returns(distance);

            var packageServiceMock = new Mock <IPackageService>();
            var jsonSerializerMock = new Mock <IJsonSerializer>();
            var timeProvider       = new Mock <ITimeProvider>();

            var service = new WaybillsService(
                locationServiceMock.Object,
                vehicleServiceMock.Object,
                packageServiceMock.Object,
                jsonSerializerMock.Object,
                userServiceMock.Object,
                timeProvider.Object);

            List <Package> todaysPackage = service.AssignPackagesToCouriers(packages, users, vehiclesCapacity);

            todaysPackage.Should().HaveCount(3);
            Assert.IsTrue(todaysPackage.Contains(packages[0]));
            Assert.IsTrue(todaysPackage.Contains(packages[1]));
            Assert.IsFalse(todaysPackage.Contains(packages[2]));
            Assert.IsTrue(todaysPackage.Contains(packages[3]));
        }
Пример #2
0
        public void AssignPackagesToCouriers_GivePackageAndDriverWithoutVehile_ReturnEmptyList()
        {
            List <Package> packages = new List <Package>();

            packages.Add(new Package()
            {
                Id           = 3,
                RecipientLat = 54,
                RecipientLon = 18,
                Sender       = new User()
                {
                    lat = 53.5,
                    lon = 19
                },
                Size = PackageSize.Average
            });

            List <User> users = new List <User>();

            users.Add(new User()
            {
                Id = 5, Street = "Œliska", StreetNumber = "28C", City = "Gdynia"
            });

            Dictionary <int, int>    vehiclesCapacity = new Dictionary <int, int>();
            Dictionary <int, double> distance         = new Dictionary <int, double>();

            distance.Add(3, 20);

            List <Vehicle> vehicles = new List <Vehicle>();

            var userServiceMock = new Mock <IUserService>();

            userServiceMock
            .Setup(x => x.GetAllDrivers())
            .Returns(users);

            var vehicleServiceMock = new Mock <IVehicleService>();

            vehicleServiceMock
            .Setup(x => x.GetAllVehicles())
            .Returns(vehicles);

            vehicleServiceMock
            .Setup(x => x.GetVehicle(5))
            .Returns(new Vehicle());

            var locationServiceMock = new Mock <ILocationService>();

            locationServiceMock
            .Setup(y => y.CountDistancesFromPackageToCouriers(users, It.IsAny <Package>()))
            .Returns(distance);

            var packageServiceMock = new Mock <IPackageService>();
            var jsonSerializerMock = new Mock <IJsonSerializer>();
            var timeProvider       = new Mock <ITimeProvider>();

            var service = new WaybillsService(
                locationServiceMock.Object,
                vehicleServiceMock.Object,
                packageServiceMock.Object,
                jsonSerializerMock.Object,
                userServiceMock.Object,
                timeProvider.Object);

            List <Package> todaysPackage = service.AssignPackagesToCouriers(packages, users, vehiclesCapacity);

            todaysPackage.Should().BeEmpty();
        }
Пример #3
0
        public void AssignPackagesToCouriers_Give1Package_ReturnListWith1Position()
        {
            List <Package> packages = new List <Package>();

            packages.Add(new Package()
            {
                Id           = 3,
                RecipientLat = 54,
                RecipientLon = 18,
                Sender       = new User()
                {
                    lat = 53.5,
                    lon = 19
                },
                Size = PackageSize.Average
            });

            List <User> users = new List <User>();

            users.Add(new User()
            {
                Id = 5, lat = 52, lon = 21
            });
            users.Add(new User()
            {
                Id = 6, lat = 53, lon = 20
            });

            Dictionary <int, double> distance = new Dictionary <int, double>();

            distance.Add(5, 20);
            distance.Add(6, 150);

            List <Vehicle> vehicles = new List <Vehicle>();

            vehicles.Add(new Vehicle()
            {
                Id = 5, AverageSpeed = 120
            });
            vehicles.Add(new Vehicle()
            {
                Id = 6, AverageSpeed = 100
            });

            Dictionary <int, int> vehiclesCapacity = new Dictionary <int, int>();

            vehiclesCapacity.Add(5, 200);

            LocationCoordinates firstPackageSender = new LocationCoordinates();

            var userServiceMock = new Mock <IUserService>();

            userServiceMock
            .Setup(x => x.GetAllDrivers())
            .Returns(users);

            var vehicleServiceMock = new Mock <IVehicleService>();

            vehicleServiceMock
            .Setup(x => x.GetAllVehicles())
            .Returns(vehicles);

            vehicleServiceMock
            .Setup(x => x.GetVehicle(5))
            .Returns(new Vehicle()
            {
                Id = 5
            });

            var locationServiceMock = new Mock <ILocationService>();

            locationServiceMock
            .Setup(y => y.CountDistancesFromPackageToCouriers(users, It.IsAny <Package>()))
            .Returns(distance);

            var packageServiceMock = new Mock <IPackageService>();
            var jsonSerializerMock = new Mock <IJsonSerializer>();
            var timeProvider       = new Mock <ITimeProvider>();

            var service = new WaybillsService(
                locationServiceMock.Object,
                vehicleServiceMock.Object,
                packageServiceMock.Object,
                jsonSerializerMock.Object,
                userServiceMock.Object,
                timeProvider.Object);

            List <Package> todaysPackage = service.AssignPackagesToCouriers(packages, users, vehiclesCapacity);

            todaysPackage.Should().HaveCount(1);
        }