public void park_vehicle_to_parking_lots_according_to_the_given_order()
        {
            var parkingLots = new ParkingLot[2] {
                new ParkingLot(1), new ParkingLot(1)
            };
            var parkingBoy = new GraduateParkingBoy(parkingLots);
            var ticket1    = parkingBoy.Park(new Vehicle());
            var ticket2    = parkingBoy.Park(new Vehicle());

            Assert.Same(parkingLots[0], ticket1.ParkingLot);
            Assert.Same(parkingLots[1], ticket2.ParkingLot);
        }
        public void return_the_correct_vehicle_when_pick_up_with_a_valid_ticket()
        {
            var vehicleParked = new Vehicle();
            var parkingLots   = new ParkingLot[1] {
                new ParkingLot(1)
            };
            var parkingBoy      = new GraduateParkingBoy(parkingLots);
            var ticket          = parkingBoy.Park(vehicleParked);
            var vehicleReturned = parkingBoy.PickUp(ticket);

            Assert.Same(vehicleParked, vehicleReturned);
        }
        public void return_null_when_pick_up_with_a_ticket_from_a_parking_lot_not_managed_by_him()
        {
            var parkingLots = new ParkingLot[1] {
                new ParkingLot(1)
            };
            var parkingBoy        = new GraduateParkingBoy(parkingLots);
            var anotherParkingLot = new ParkingLot(1);

            parkingBoy.Park(new Vehicle());
            var ticket = anotherParkingLot.Park(new Vehicle());

            Assert.Null(parkingBoy.PickUp(ticket));
        }