public void create_combo_booking_line_creates_station_added_to_combo_booking_event()
        {
            //
            var description = "COMBO_STATION_DESCRIPTION";
            var stations    = new[] { Builder.Station.Build(), Builder.Station.Build() };

            //
            var combo = new ComboBooking(description, stations);

            //
            combo.GetUncommittedEvents()
            .ShouldAllBeEquivalentTo(stations.Select(s => new StationAddedToComboBookingEvent(s)
            {
                AggregateId = combo.Id
            }));
        }
        public void change_station_for_combo_booking_creates_station_removed_event()
        {
            //
            var initialDescription = "COMBO_STATION_DESCRIPTION";
            var initialStations    = new[] { Builder.Station.Build(), Builder.Station.Build() };
            var newDescription     = "COMBO_STATION_DESCRIPTION_CHANGED";
            var newStations        = new[] { initialStations[0], Builder.Station.Build() };
            var combo = new ComboBooking(initialDescription, initialStations);

            //
            combo.ChangeStations(newDescription, newStations);

            //
            combo.Stations.ShouldAllBeEquivalentTo(newStations);
            combo.GetUncommittedEvents().Should()
            .ContainSingle(e => e.GetType() == typeof(StationRemovedFromComboBookingEvent) &&
                           ((StationRemovedFromComboBookingEvent)e).AggregateId == combo.Id &&
                           ((StationRemovedFromComboBookingEvent)e).Station == initialStations[1]);
        }