├── .atoum.bootstrap.php ├── .atoum.php ├── .gitignore ├── README.md ├── app ├── .htaccess ├── Afsy │ ├── AfsyBundle.php │ ├── DependencyInjection │ │ └── AfsyExtension.php │ └── Resources │ │ ├── config │ │ └── services │ │ │ ├── booking_engine.xml │ │ │ ├── deal_publisher.xml │ │ │ └── user_profile.xml │ │ └── routing │ │ ├── booking_engine.yml │ │ └── user_profile.yml ├── AppCache.php ├── AppKernel.php ├── SymfonyRequirements.php ├── autoload.php ├── cache │ └── .gitkeep ├── check.php ├── config │ ├── config.yml │ ├── config_dev.yml │ ├── config_prod.yml │ ├── config_test.yml │ ├── parameters.yml.dist │ ├── routing.yml │ ├── routing_dev.yml │ └── security.yml ├── console ├── logs │ └── .gitkeep └── phpunit.xml.dist ├── composer.json ├── composer.lock ├── src ├── BookingEngine │ ├── App │ │ ├── BookDealCommand.php │ │ ├── BookingNotFoundException.php │ │ ├── BookingQueryService.php │ │ ├── BookingService.php │ │ ├── CustomerNotFoundException.php │ │ ├── DealNotFoundException.php │ │ └── PayBookingCommand.php │ ├── Domain │ │ ├── Booking.php │ │ ├── BookingConfirmed.php │ │ ├── BookingRepository.php │ │ ├── BookingStatus.php │ │ ├── Customer.php │ │ ├── Customer │ │ │ └── CustomerRepository.php │ │ ├── Deal.php │ │ ├── Deal │ │ │ └── DealRepository.php │ │ ├── DealBooked.php │ │ ├── InvalidBookingStatusException.php │ │ └── Payment │ │ │ ├── BookingCreditCard.php │ │ │ ├── PaymentGateway.php │ │ │ ├── PaymentResponse.php │ │ │ └── PaymentWithCreditCard.php │ ├── Infra │ │ ├── CustomerTransformer.php │ │ ├── HttpCustomerRepository.php │ │ ├── Payment │ │ │ ├── StubPaymentGateway.php │ │ │ └── StubPaymentResponse.php │ │ └── Persistence │ │ │ ├── ORMBookingRepository.php │ │ │ ├── ORMCustomerRepository.php │ │ │ ├── ORMDealRepository.php │ │ │ └── Resources │ │ │ └── doctrine │ │ │ ├── Booking.orm.xml │ │ │ ├── Customer.orm.xml │ │ │ ├── Deal.orm.xml │ │ │ └── Payment.BookingCreditCard.orm.xml │ └── UI │ │ ├── Console │ │ └── BookDealCli.php │ │ ├── Controller │ │ └── BookingController.php │ │ └── Form │ │ └── PayBookingFormType.php ├── Common │ ├── Domain │ │ ├── Event │ │ │ ├── AggregateRoot.php │ │ │ ├── DomainEvent.php │ │ │ ├── EventBus.php │ │ │ └── EventName.php │ │ ├── Password │ │ │ ├── EncodedPassword.php │ │ │ ├── PlainPassword.php │ │ │ └── Salt.php │ │ ├── Payment │ │ │ ├── CreditCard.php │ │ │ ├── ExpiredCreditCardException.php │ │ │ ├── InvalidCreditCardException.php │ │ │ ├── ObfuscatedCreditCard.php │ │ │ ├── ObfuscatedCvc.php │ │ │ └── ObfuscatedNumber.php │ │ ├── Price.php │ │ └── UserIdentity.php │ ├── Infra │ │ └── SymfonyEventBus.php │ └── UI │ │ └── FormErrorsRepresentation.php ├── DealPublisher │ ├── App │ │ ├── DealService.php │ │ └── SaleDealCommand.php │ ├── Domain │ │ ├── BookingConfirmedListener.php │ │ ├── Deal.php │ │ └── DealRepository.php │ ├── Infra │ │ └── Persistence │ │ │ ├── ORMDealRepository.php │ │ │ └── Resources │ │ │ └── doctrine │ │ │ └── Deal.orm.xml │ └── UI │ │ └── Controller │ │ └── InternalApiController.php └── UserProfile │ ├── App │ ├── RegisterUserCommand.php │ ├── Representation │ │ └── UserRepresentation.php │ ├── UserNotFoundException.php │ ├── UserQueryService.php │ └── UserService.php │ ├── Domain │ ├── User.php │ ├── UserFailedToAuthenticate.php │ ├── UserRegistered.php │ ├── UserRepository.php │ └── UserSuccessfullyAuthenticated.php │ ├── Infra │ └── Persistence │ │ ├── ORMUserRepository.php │ │ └── Resources │ │ └── doctrine │ │ └── User.orm.xml │ └── UI │ ├── Console │ └── RegisterUserCli.php │ ├── Controller │ └── InternalUserController.php │ └── Resources │ └── serializer │ └── UserRepresentation.xml ├── tests └── Units │ ├── BookingEngine │ └── App │ │ └── BookingService.php │ └── UserProfile │ └── Domain │ └── User.php └── web ├── .htaccess └── app.php /.atoum.bootstrap.php: -------------------------------------------------------------------------------- 1 |