コード例 #1
0
        public static TrainSnapshot GetTrainWith1CoachAnd10SeatsAvailable(string trainId)
        {
            var train = new TrainSnapshot(trainId, new List <SeatWithBookingReference>()
            {
                new SeatWithBookingReference(new Seat("A", 1), BookingReference.Null),
                new SeatWithBookingReference(new Seat("A", 2), BookingReference.Null),
                new SeatWithBookingReference(new Seat("A", 3), BookingReference.Null),
                new SeatWithBookingReference(new Seat("A", 4), BookingReference.Null),
                new SeatWithBookingReference(new Seat("A", 5), BookingReference.Null),
                new SeatWithBookingReference(new Seat("A", 6), BookingReference.Null),
                new SeatWithBookingReference(new Seat("A", 7), BookingReference.Null),
                new SeatWithBookingReference(new Seat("A", 8), BookingReference.Null),
                new SeatWithBookingReference(new Seat("A", 9), BookingReference.Null),
                new SeatWithBookingReference(new Seat("A", 10), BookingReference.Null)
            });

            return(train);
        }
コード例 #2
0
        public void MarkSeatsAsReserved(string trainId, BookingReference bookingReference, Seats seats)
        {
            var formerSnapshot        = trainSnapshots[trainId];
            var newSeatsConfiguration = new List <SeatWithBookingReference>(formerSnapshot.OverallTrainCapacity);

            foreach (var seatWithBookingReference in formerSnapshot.SeatsWithBookingReferences)
            {
                if (seats.Contains(seatWithBookingReference.Seat))
                {
                    // must keep the new reservation id for this seat
                    var newBookingReference = new SeatWithBookingReference(seatWithBookingReference.Seat, bookingReference);
                    newSeatsConfiguration.Add(newBookingReference);
                }
                else
                {
                    // keep the former value
                    newSeatsConfiguration.Add(seatWithBookingReference);
                }
            }

            var updatedSnapshot = new TrainSnapshot(trainId, newSeatsConfiguration);

            trainSnapshots[trainId] = updatedSnapshot;
        }
コード例 #3
0
 public TrainDataServiceMock(TrainSnapshot initialSnapshot)
 {
     trainSnapshots[initialSnapshot.TrainId] = initialSnapshot;
 }
コード例 #4
0
        public static TrainSnapshot GetTrainWith2CoachesAnd2IndividualSeatsAvailable(string trainId)
        {
            var train = new TrainSnapshot(trainId, GetSeatsWithBookingReferencesFor2CoachesOf10Seats());

            return(train);
        }
コード例 #5
0
        public static TrainSnapshot GetTrainWith2CoachesOf10And1Then2SeatsAvailable(string trainId)
        {
            var train = new TrainSnapshot(trainId, GetSeatsWithBookingReferencesFor2CoachesOf10SeatsAndMoreSeatsOnCoachB());

            return(train);
        }
コード例 #6
0
        private static IProvideTrainData ConfigureATrainDataProviderMock(string trainId, TrainSnapshot trainConfiguration)
        {
            var trainDataProvider = Substitute.For <IProvideTrainData>();

            trainDataProvider.GetTrainSnapshot(trainId).Returns(trainConfiguration);
            return(trainDataProvider);
        }