/// <summary> /// Acts like a composition root for the Hexagonal Architecture. /// </summary> public static IReserveTrainSeats ComposeTheHexagon(IProvideBookingReferences bookingReferenceProvider, IProvideTrainData trainDataProvider) { var ticketOffice = new TicketOffice(bookingReferenceProvider, trainDataProvider); var reservationAdapter = new CliReservationAdapter(ticketOffice); return(reservationAdapter); }
public void Should_serialize_in_JSON_as_expected() { var reservation = new Reservation("A-train", new BookingReference("RefDe0uf"), new Seats(new List <Seat>() { new Seat("A", 4), new Seat("A", 5) })); var json = CliReservationAdapter.AdaptInJSON(reservation); Check.That(json).IsEqualTo($"{{\"train_id\": \"A-train\", \"booking_reference\": \"RefDe0uf\", \"seats\": [\"4A\", \"5A\"]}}"); }