コード例 #1
0
        public void Should_park_new_car_only_to_lot_which_has_larger_rate()
        {
            var boy  = new SuperSmartBoy();
            var lot1 = new Lot("loca1", 2);
            var lot2 = new Lot("loca2", 3);

            boy.Lots = new[] { lot1, lot2 };

            string message;
            var    locations = new List <string>();

            foreach (var car in TestData.GetCars(4))
            {
                var ticket = boy.Park(car, out message);
                locations.Add(ticket.GetLotLocation());
                Assert.Empty(message);
            }

            Assert.Equal(lot2.GetLocation(), locations[0]);  // lot1: 1 || lot2: 1
            Assert.Equal(lot1.GetLocation(), locations[1]);  // lot1: 1 || lot2: 2/3
            Assert.Equal(lot2.GetLocation(), locations[2]);  // lot1: 1/2 || lot2: 2/3
            Assert.Equal(lot1.GetLocation(), locations[3]);  // lot1: 1/2 || lot2: 1/3
        }
コード例 #2
0
        public void Should_return_error_message_when_ticket_is_wrong_with_boyId_for_fetching_car()
        {
            var boy = new Boy();
            var lot = new Lot();
            var car = new Car("123");

            boy.Lots = new Lot[] { lot };
            string errorMessage;
            var    ticket = boy.Park(car, out errorMessage);

            var wrongTicket = new Ticket(car.GetLicenseNumber(), lot.GetLocation(), boy.Id + 1);
            var fetchedCar  = boy.Fetch(wrongTicket, out errorMessage);

            Assert.Equal("Unrecognized parking ticket.", errorMessage);
        }
コード例 #3
0
        public void Should_return_ticket_with_car_number_and_lot_location_when_boy_park_car()
        {
            //given
            var boy = new Boy();
            var lot = new Lot();
            var car = new Car("123");

            boy.Lots = new Lot[] { lot };

            //when
            string errorMessage;
            var    ticket = boy.Park(car, out errorMessage);

            //then
            Assert.Equal(car.GetLicenseNumber(), ticket.GetLicenseNumber());
            Assert.Equal(lot.GetLocation(), ticket.GetLotLocation());
        }
コード例 #4
0
        public void Should_return_no_car_when_ticket_is_wrong_with_boyId()
        {
            var boy = new Boy();
            var lot = new Lot();
            var car = new Car("123");

            boy.Lots = new Lot[] { lot };
            string message;
            var    correctTicket = boy.Park(car, out message);
            var    wrongTicket   = new Ticket(car.GetLicenseNumber(), lot.GetLocation(), boy.Id + 1);

            var fetchedCarWithWrongTicket   = boy.Fetch(wrongTicket, out message);
            var fetchedCarWithCorrectTicket = boy.Fetch(correctTicket, out message);

            Assert.Null(fetchedCarWithWrongTicket);
            Assert.Equal(car, fetchedCarWithCorrectTicket);
        }