From 607d72eef73fc940619d7df41473a4edf0643eed Mon Sep 17 00:00:00 2001 From: Pc Date: Mon, 8 May 2023 18:37:10 +0330 Subject: [PATCH] refactor: Refactor tests read-side --- .../V1/CreateAircraftMongo.cs | 2 +- .../CreatingAirport/V1/CreateAirportMongo.cs | 2 +- .../CreatingFlight/V1/CreateFlightMongo.cs | 2 +- .../DeletingFlight/V1/DeleteFlightMongo.cs | 2 +- .../UpdatingFlight/V1/UpdateFlightMongo.cs | 2 +- .../CreatingSeat/V1/CreateSeatMongo.cs | 2 +- .../Commands/V1/ReserveSeatMongo.cs | 2 +- .../tests/EndToEndTest/EndToEnd.Test.csproj | 4 ---- .../Fakes/FakeCreateFlightMongoCommand.cs | 22 ++++++++++++++++++ .../Flight/Features/GetFlightByIdTests.cs | 6 ++--- .../Aircraft/Features/CreateAircraftTests.cs | 2 -- .../Airport/Features/CreateAirportTests.cs | 2 -- .../Fakes/FakeCreateFlightMongoCommand.cs | 23 +++++++++++++++++++ .../Fakes/FakeCreateSeatMongoCommand.cs | 19 +++++++++++++++ .../Flight/Features/CreateFlightTests.cs | 2 -- .../Flight/Features/DeleteFlightTests.cs | 2 -- .../Features/GetAvailableFlightsTests.cs | 6 ++--- .../Flight/Features/GetFlightByIdTests.cs | 12 ++++------ .../Flight/Features/UpdateFlightTests.cs | 2 -- .../Seat/Features/GetAvailableSeatsTests.cs | 8 ++----- .../Seat/Features/ReserveSeatTests.cs | 4 ---- .../Passenger/Passengers/Dtos/PassengerDto.cs | 9 +------- .../V1/CompleteRegisterPassengerMongo.cs | 2 +- .../Queries/V1/GetPassengerById.cs | 12 ++++++---- .../Passengers/Features/PassengerMappings.cs | 4 ++++ ...keCompleteRegisterPassengerMongoCommand.cs | 19 +++++++++++++++ .../Fakes/FakePassengerCreated.cs | 13 ----------- .../Fakes/FakePassengerResponseDto.cs | 14 ----------- .../CompleteRegisterPassengerTests.cs | 2 +- .../Features/GetPassengerByIdTests.cs | 21 ++++++++--------- .../PassengerIntegrationTestBase.cs | 6 ++--- 31 files changed, 128 insertions(+), 102 deletions(-) create mode 100644 src/Services/Flight/tests/EndToEndTest/Fakes/FakeCreateFlightMongoCommand.cs create mode 100644 src/Services/Flight/tests/IntegrationTest/Fakes/FakeCreateFlightMongoCommand.cs create mode 100644 src/Services/Flight/tests/IntegrationTest/Fakes/FakeCreateSeatMongoCommand.cs create mode 100644 src/Services/Passenger/tests/IntegrationTest/Fakes/FakeCompleteRegisterPassengerMongoCommand.cs delete mode 100644 src/Services/Passenger/tests/IntegrationTest/Fakes/FakePassengerCreated.cs delete mode 100644 src/Services/Passenger/tests/IntegrationTest/Fakes/FakePassengerResponseDto.cs diff --git a/src/Services/Flight/src/Flight/Aircrafts/Features/CreatingAircraft/V1/CreateAircraftMongo.cs b/src/Services/Flight/src/Flight/Aircrafts/Features/CreatingAircraft/V1/CreateAircraftMongo.cs index d1bfb96..92effba 100644 --- a/src/Services/Flight/src/Flight/Aircrafts/Features/CreatingAircraft/V1/CreateAircraftMongo.cs +++ b/src/Services/Flight/src/Flight/Aircrafts/Features/CreatingAircraft/V1/CreateAircraftMongo.cs @@ -14,7 +14,7 @@ using MediatR; using MongoDB.Driver; using MongoDB.Driver.Linq; -public record CreateAircraftMongo(Guid Id, string Name, string Model, int ManufacturingYear, bool IsDeleted) : InternalCommand; +public record CreateAircraftMongo(Guid Id, string Name, string Model, int ManufacturingYear, bool IsDeleted = false) : InternalCommand; public class CreateAircraftMongoHandler : ICommandHandler { diff --git a/src/Services/Flight/src/Flight/Airports/Features/CreatingAirport/V1/CreateAirportMongo.cs b/src/Services/Flight/src/Flight/Airports/Features/CreatingAirport/V1/CreateAirportMongo.cs index 2f2e62b..71a7185 100644 --- a/src/Services/Flight/src/Flight/Airports/Features/CreatingAirport/V1/CreateAirportMongo.cs +++ b/src/Services/Flight/src/Flight/Airports/Features/CreatingAirport/V1/CreateAirportMongo.cs @@ -14,7 +14,7 @@ using MediatR; using MongoDB.Driver; using MongoDB.Driver.Linq; -public record CreateAirportMongo(Guid Id, string Name, string Address, string Code, bool IsDeleted) : InternalCommand; +public record CreateAirportMongo(Guid Id, string Name, string Address, string Code, bool IsDeleted = false) : InternalCommand; internal class CreateAirportMongoHandler : ICommandHandler { diff --git a/src/Services/Flight/src/Flight/Flights/Features/CreatingFlight/V1/CreateFlightMongo.cs b/src/Services/Flight/src/Flight/Flights/Features/CreatingFlight/V1/CreateFlightMongo.cs index 7327044..b53e5a5 100644 --- a/src/Services/Flight/src/Flight/Flights/Features/CreatingFlight/V1/CreateFlightMongo.cs +++ b/src/Services/Flight/src/Flight/Flights/Features/CreatingFlight/V1/CreateFlightMongo.cs @@ -16,7 +16,7 @@ using MongoDB.Driver.Linq; public record CreateFlightMongo(Guid Id, string FlightNumber, Guid AircraftId, DateTime DepartureDate, Guid DepartureAirportId, DateTime ArriveDate, Guid ArriveAirportId, decimal DurationMinutes, DateTime FlightDate, - Enums.FlightStatus Status, decimal Price, bool IsDeleted) : InternalCommand; + Enums.FlightStatus Status, decimal Price, bool IsDeleted = false) : InternalCommand; internal class CreateFlightMongoHandler : ICommandHandler { diff --git a/src/Services/Flight/src/Flight/Flights/Features/DeletingFlight/V1/DeleteFlightMongo.cs b/src/Services/Flight/src/Flight/Flights/Features/DeletingFlight/V1/DeleteFlightMongo.cs index 8139855..b63d1c4 100644 --- a/src/Services/Flight/src/Flight/Flights/Features/DeletingFlight/V1/DeleteFlightMongo.cs +++ b/src/Services/Flight/src/Flight/Flights/Features/DeletingFlight/V1/DeleteFlightMongo.cs @@ -16,7 +16,7 @@ using MongoDB.Driver.Linq; public record DeleteFlightMongo(Guid Id, string FlightNumber, Guid AircraftId, DateTime DepartureDate, Guid DepartureAirportId, DateTime ArriveDate, Guid ArriveAirportId, decimal DurationMinutes, DateTime FlightDate, - Enums.FlightStatus Status, decimal Price, bool IsDeleted) : InternalCommand; + Enums.FlightStatus Status, decimal Price, bool IsDeleted = false) : InternalCommand; internal class DeleteFlightMongoCommandHandler : ICommandHandler { diff --git a/src/Services/Flight/src/Flight/Flights/Features/UpdatingFlight/V1/UpdateFlightMongo.cs b/src/Services/Flight/src/Flight/Flights/Features/UpdatingFlight/V1/UpdateFlightMongo.cs index 8424567..35804af 100644 --- a/src/Services/Flight/src/Flight/Flights/Features/UpdatingFlight/V1/UpdateFlightMongo.cs +++ b/src/Services/Flight/src/Flight/Flights/Features/UpdatingFlight/V1/UpdateFlightMongo.cs @@ -16,7 +16,7 @@ using MongoDB.Driver.Linq; public record UpdateFlightMongo(Guid Id, string FlightNumber, Guid AircraftId, DateTime DepartureDate, Guid DepartureAirportId, DateTime ArriveDate, Guid ArriveAirportId, decimal DurationMinutes, DateTime FlightDate, - Enums.FlightStatus Status, decimal Price, bool IsDeleted) : InternalCommand; + Enums.FlightStatus Status, decimal Price, bool IsDeleted = false) : InternalCommand; internal class UpdateFlightMongoCommandHandler : ICommandHandler diff --git a/src/Services/Flight/src/Flight/Seats/Features/CreatingSeat/V1/CreateSeatMongo.cs b/src/Services/Flight/src/Flight/Seats/Features/CreatingSeat/V1/CreateSeatMongo.cs index 018be0b..1ba1e7f 100644 --- a/src/Services/Flight/src/Flight/Seats/Features/CreatingSeat/V1/CreateSeatMongo.cs +++ b/src/Services/Flight/src/Flight/Seats/Features/CreatingSeat/V1/CreateSeatMongo.cs @@ -15,7 +15,7 @@ using MongoDB.Driver; using MongoDB.Driver.Linq; public record CreateSeatMongo(Guid Id, string SeatNumber, Enums.SeatType Type, - Enums.SeatClass Class, Guid FlightId, bool IsDeleted) : InternalCommand; + Enums.SeatClass Class, Guid FlightId, bool IsDeleted = false) : InternalCommand; public class CreateSeatMongoHandler : ICommandHandler { diff --git a/src/Services/Flight/src/Flight/Seats/Features/ReservingSeat/Commands/V1/ReserveSeatMongo.cs b/src/Services/Flight/src/Flight/Seats/Features/ReservingSeat/Commands/V1/ReserveSeatMongo.cs index c4eab79..6fa4de1 100644 --- a/src/Services/Flight/src/Flight/Seats/Features/ReservingSeat/Commands/V1/ReserveSeatMongo.cs +++ b/src/Services/Flight/src/Flight/Seats/Features/ReservingSeat/Commands/V1/ReserveSeatMongo.cs @@ -13,7 +13,7 @@ using MediatR; using MongoDB.Driver; public record ReserveSeatMongo(Guid Id, string SeatNumber, Enums.SeatType Type, - Enums.SeatClass Class, Guid FlightId, bool IsDeleted) : InternalCommand; + Enums.SeatClass Class, Guid FlightId, bool IsDeleted = false) : InternalCommand; internal class ReserveSeatMongoHandler : ICommandHandler { diff --git a/src/Services/Flight/tests/EndToEndTest/EndToEnd.Test.csproj b/src/Services/Flight/tests/EndToEndTest/EndToEnd.Test.csproj index ae8780f..5d4348e 100644 --- a/src/Services/Flight/tests/EndToEndTest/EndToEnd.Test.csproj +++ b/src/Services/Flight/tests/EndToEndTest/EndToEnd.Test.csproj @@ -24,8 +24,4 @@ - - - - diff --git a/src/Services/Flight/tests/EndToEndTest/Fakes/FakeCreateFlightMongoCommand.cs b/src/Services/Flight/tests/EndToEndTest/Fakes/FakeCreateFlightMongoCommand.cs new file mode 100644 index 0000000..69beec3 --- /dev/null +++ b/src/Services/Flight/tests/EndToEndTest/Fakes/FakeCreateFlightMongoCommand.cs @@ -0,0 +1,22 @@ +namespace EndToEnd.Test.Fakes; + +using AutoBogus; +using global::Flight.Data.Seed; +using global::Flight.Flights.Features.CreatingFlight.V1; +using global::Flight.Flights.Enums; +using MassTransit; + +public sealed class FakeCreateFlightMongoCommand : AutoFaker +{ + public FakeCreateFlightMongoCommand() + { + RuleFor(r => r.Id, _ => NewId.NextGuid()); + RuleFor(r => r.FlightNumber, r => "12FF"); + RuleFor(r => r.DepartureAirportId, _ => InitialData.Airports.First().Id); + RuleFor(r => r.ArriveAirportId, _ => InitialData.Airports.Last().Id); + RuleFor(r => r.Status, _ => FlightStatus.Flying); + RuleFor(r => r.AircraftId, _ => InitialData.Aircrafts.First().Id); + RuleFor(r => r.IsDeleted, _ => false); + } +} + diff --git a/src/Services/Flight/tests/EndToEndTest/Flight/Features/GetFlightByIdTests.cs b/src/Services/Flight/tests/EndToEndTest/Flight/Features/GetFlightByIdTests.cs index a7b7d64..1f7d4be 100644 --- a/src/Services/Flight/tests/EndToEndTest/Flight/Features/GetFlightByIdTests.cs +++ b/src/Services/Flight/tests/EndToEndTest/Flight/Features/GetFlightByIdTests.cs @@ -9,8 +9,6 @@ using Xunit; namespace EndToEnd.Test.Flight.Features; -using global::Flight.Flights.Features.CreatingFlight.V1; - public class GetFlightByIdTests: FlightEndToEndTestBase { public GetFlightByIdTests(TestFixture integrationTestFixture) : base(integrationTestFixture) @@ -22,9 +20,9 @@ public class GetFlightByIdTests: FlightEndToEndTestBase public async Task should_retrive_a_flight_by_id_currectly() { //Arrange - var command = new FakeCreateFlightCommand().Generate(); + var command = new FakeCreateFlightMongoCommand().Generate(); + await Fixture.SendAsync(command); - (await Fixture.ShouldProcessedPersistInternalCommand()).Should().Be(true); // Act var route = ApiRoutes.Flight.GetFlightById.Replace(ApiRoutes.Flight.Id, command.Id.ToString()); diff --git a/src/Services/Flight/tests/IntegrationTest/Aircraft/Features/CreateAircraftTests.cs b/src/Services/Flight/tests/IntegrationTest/Aircraft/Features/CreateAircraftTests.cs index e26b856..a17b8fd 100644 --- a/src/Services/Flight/tests/IntegrationTest/Aircraft/Features/CreateAircraftTests.cs +++ b/src/Services/Flight/tests/IntegrationTest/Aircraft/Features/CreateAircraftTests.cs @@ -31,7 +31,5 @@ public class CreateAircraftTests : FlightIntegrationTestBase response?.Id.Should().Be(command.Id); (await Fixture.WaitForPublishing()).Should().Be(true); - - (await Fixture.ShouldProcessedPersistInternalCommand()).Should().Be(true); } } diff --git a/src/Services/Flight/tests/IntegrationTest/Airport/Features/CreateAirportTests.cs b/src/Services/Flight/tests/IntegrationTest/Airport/Features/CreateAirportTests.cs index 5c87f0c..efe9f84 100644 --- a/src/Services/Flight/tests/IntegrationTest/Airport/Features/CreateAirportTests.cs +++ b/src/Services/Flight/tests/IntegrationTest/Airport/Features/CreateAirportTests.cs @@ -31,7 +31,5 @@ public class CreateAirportTests : FlightIntegrationTestBase response?.Id.Should().Be(command.Id); (await Fixture.WaitForPublishing()).Should().Be(true); - - (await Fixture.ShouldProcessedPersistInternalCommand()).Should().Be(true); } } diff --git a/src/Services/Flight/tests/IntegrationTest/Fakes/FakeCreateFlightMongoCommand.cs b/src/Services/Flight/tests/IntegrationTest/Fakes/FakeCreateFlightMongoCommand.cs new file mode 100644 index 0000000..aaae518 --- /dev/null +++ b/src/Services/Flight/tests/IntegrationTest/Fakes/FakeCreateFlightMongoCommand.cs @@ -0,0 +1,23 @@ +namespace Integration.Test.Fakes; + +using System.Linq; +using AutoBogus; +using global::Flight.Data.Seed; +using global::Flight.Flights.Enums; +using global::Flight.Flights.Features.CreatingFlight.V1; +using MassTransit; + +public sealed class FakeCreateFlightMongoCommand : AutoFaker +{ + public FakeCreateFlightMongoCommand() + { + RuleFor(r => r.Id, _ => NewId.NextGuid()); + RuleFor(r => r.FlightNumber, r => "12FF"); + RuleFor(r => r.DepartureAirportId, _ => InitialData.Airports.First().Id); + RuleFor(r => r.ArriveAirportId, _ => InitialData.Airports.Last().Id); + RuleFor(r => r.Status, _ => FlightStatus.Flying); + RuleFor(r => r.AircraftId, _ => InitialData.Aircrafts.First().Id); + RuleFor(r => r.IsDeleted, _ => false); + } +} + diff --git a/src/Services/Flight/tests/IntegrationTest/Fakes/FakeCreateSeatMongoCommand.cs b/src/Services/Flight/tests/IntegrationTest/Fakes/FakeCreateSeatMongoCommand.cs new file mode 100644 index 0000000..0224d32 --- /dev/null +++ b/src/Services/Flight/tests/IntegrationTest/Fakes/FakeCreateSeatMongoCommand.cs @@ -0,0 +1,19 @@ +namespace Integration.Test.Fakes; + +using System; +using AutoBogus; +using global::Flight.Seats.Enums; +using global::Flight.Seats.Features.CreatingSeat.V1; +using MassTransit; + +public class FakeCreateSeatMongoCommand : AutoFaker +{ + public FakeCreateSeatMongoCommand(Guid flightId) + { + RuleFor(r => r.Id, _ => NewId.NextGuid()); + RuleFor(r => r.FlightId, _ => flightId); + RuleFor(r => r.Class, _ => SeatClass.Economy); + RuleFor(r => r.Type, _ => SeatType.Middle); + RuleFor(r => r.IsDeleted, _ => false); + } +} diff --git a/src/Services/Flight/tests/IntegrationTest/Flight/Features/CreateFlightTests.cs b/src/Services/Flight/tests/IntegrationTest/Flight/Features/CreateFlightTests.cs index 1f03c07..0d454e9 100644 --- a/src/Services/Flight/tests/IntegrationTest/Flight/Features/CreateFlightTests.cs +++ b/src/Services/Flight/tests/IntegrationTest/Flight/Features/CreateFlightTests.cs @@ -33,7 +33,5 @@ public class CreateFlightTests : FlightIntegrationTestBase (await Fixture.WaitForPublishing()).Should().Be(true); (await Fixture.WaitForConsuming()).Should().Be(true); - - (await Fixture.ShouldProcessedPersistInternalCommand()).Should().Be(true); } } diff --git a/src/Services/Flight/tests/IntegrationTest/Flight/Features/DeleteFlightTests.cs b/src/Services/Flight/tests/IntegrationTest/Flight/Features/DeleteFlightTests.cs index c63ced1..720c658 100644 --- a/src/Services/Flight/tests/IntegrationTest/Flight/Features/DeleteFlightTests.cs +++ b/src/Services/Flight/tests/IntegrationTest/Flight/Features/DeleteFlightTests.cs @@ -41,7 +41,5 @@ public class DeleteFlightTests : FlightIntegrationTestBase deletedFlight?.IsDeleted.Should().BeTrue(); (await Fixture.WaitForPublishing()).Should().Be(true); - - (await Fixture.ShouldProcessedPersistInternalCommand()).Should().Be(true); } } diff --git a/src/Services/Flight/tests/IntegrationTest/Flight/Features/GetAvailableFlightsTests.cs b/src/Services/Flight/tests/IntegrationTest/Flight/Features/GetAvailableFlightsTests.cs index 1106231..31aa6a8 100644 --- a/src/Services/Flight/tests/IntegrationTest/Flight/Features/GetAvailableFlightsTests.cs +++ b/src/Services/Flight/tests/IntegrationTest/Flight/Features/GetAvailableFlightsTests.cs @@ -23,11 +23,9 @@ public class GetAvailableFlightsTests : FlightIntegrationTestBase public async Task should_return_available_flights() { // Arrange - var flightCommand = new FakeCreateFlightCommand().Generate(); + var command = new FakeCreateFlightMongoCommand().Generate(); - await Fixture.SendAsync(flightCommand); - - (await Fixture.ShouldProcessedPersistInternalCommand()).Should().Be(true); + await Fixture.SendAsync(command); var query = new GetAvailableFlights(); diff --git a/src/Services/Flight/tests/IntegrationTest/Flight/Features/GetFlightByIdTests.cs b/src/Services/Flight/tests/IntegrationTest/Flight/Features/GetFlightByIdTests.cs index b4016d0..c115c55 100644 --- a/src/Services/Flight/tests/IntegrationTest/Flight/Features/GetFlightByIdTests.cs +++ b/src/Services/Flight/tests/IntegrationTest/Flight/Features/GetFlightByIdTests.cs @@ -24,10 +24,9 @@ public class GetFlightByIdTests : FlightIntegrationTestBase public async Task should_retrive_a_flight_by_id_currectly() { //Arrange - var command = new FakeCreateFlightCommand().Generate(); - await Fixture.SendAsync(command); + var command = new FakeCreateFlightMongoCommand().Generate(); - (await Fixture.ShouldProcessedPersistInternalCommand()).Should().Be(true); + await Fixture.SendAsync(command); var query = new GetFlightById(command.Id); @@ -36,17 +35,16 @@ public class GetFlightByIdTests : FlightIntegrationTestBase // Assert response.Should().NotBeNull(); - // response?.FlightDto?.Id.Should().Be(command.Id); + response?.FlightDto?.Id.Should().Be(command.Id); } [Fact] public async Task should_retrive_a_flight_by_id_from_grpc_service() { //Arrange - var command = new FakeCreateFlightCommand().Generate(); - await Fixture.SendAsync(command); + var command = new FakeCreateFlightMongoCommand().Generate(); - (await Fixture.ShouldProcessedPersistInternalCommand()).Should().Be(true); + await Fixture.SendAsync(command); var flightGrpcClient = new FlightGrpcService.FlightGrpcServiceClient(Fixture.Channel); diff --git a/src/Services/Flight/tests/IntegrationTest/Flight/Features/UpdateFlightTests.cs b/src/Services/Flight/tests/IntegrationTest/Flight/Features/UpdateFlightTests.cs index 3f39958..29f8adf 100644 --- a/src/Services/Flight/tests/IntegrationTest/Flight/Features/UpdateFlightTests.cs +++ b/src/Services/Flight/tests/IntegrationTest/Flight/Features/UpdateFlightTests.cs @@ -37,7 +37,5 @@ public class UpdateFlightTests : FlightIntegrationTestBase response?.Id.Should().Be(flightEntity.Id); (await Fixture.WaitForPublishing()).Should().Be(true); - - (await Fixture.ShouldProcessedPersistInternalCommand()).Should().Be(true); } } diff --git a/src/Services/Flight/tests/IntegrationTest/Seat/Features/GetAvailableSeatsTests.cs b/src/Services/Flight/tests/IntegrationTest/Seat/Features/GetAvailableSeatsTests.cs index 5b57ef4..881bcda 100644 --- a/src/Services/Flight/tests/IntegrationTest/Seat/Features/GetAvailableSeatsTests.cs +++ b/src/Services/Flight/tests/IntegrationTest/Seat/Features/GetAvailableSeatsTests.cs @@ -23,18 +23,14 @@ public class GetAvailableSeatsTests : FlightIntegrationTestBase public async Task should_return_available_seats_from_grpc_service() { // Arrange - var flightCommand = new FakeCreateFlightCommand().Generate(); + var flightCommand = new FakeCreateFlightMongoCommand().Generate(); await Fixture.SendAsync(flightCommand); - (await Fixture.ShouldProcessedPersistInternalCommand()).Should().Be(true); - - var seatCommand = new FakeCreateSeatCommand(flightCommand.Id).Generate(); + var seatCommand = new FakeCreateSeatMongoCommand(flightCommand.Id).Generate(); await Fixture.SendAsync(seatCommand); - (await Fixture.ShouldProcessedPersistInternalCommand()).Should().Be(true); - var flightGrpcClient = new FlightGrpcService.FlightGrpcServiceClient(Fixture.Channel); // Act diff --git a/src/Services/Flight/tests/IntegrationTest/Seat/Features/ReserveSeatTests.cs b/src/Services/Flight/tests/IntegrationTest/Seat/Features/ReserveSeatTests.cs index 3c04216..b55dd5e 100644 --- a/src/Services/Flight/tests/IntegrationTest/Seat/Features/ReserveSeatTests.cs +++ b/src/Services/Flight/tests/IntegrationTest/Seat/Features/ReserveSeatTests.cs @@ -27,14 +27,10 @@ public class ReserveSeatTests : FlightIntegrationTestBase await Fixture.SendAsync(flightCommand); - (await Fixture.ShouldProcessedPersistInternalCommand()).Should().Be(true); - var seatCommand = new FakeCreateSeatCommand(flightCommand.Id).Generate(); await Fixture.SendAsync(seatCommand); - (await Fixture.ShouldProcessedPersistInternalCommand()).Should().Be(true); - var flightGrpcClient = new FlightGrpcService.FlightGrpcServiceClient(Fixture.Channel); // Act diff --git a/src/Services/Passenger/src/Passenger/Passengers/Dtos/PassengerDto.cs b/src/Services/Passenger/src/Passenger/Passengers/Dtos/PassengerDto.cs index 6038e9f..12b61cd 100644 --- a/src/Services/Passenger/src/Passenger/Passengers/Dtos/PassengerDto.cs +++ b/src/Services/Passenger/src/Passenger/Passengers/Dtos/PassengerDto.cs @@ -1,10 +1,3 @@ namespace Passenger.Passengers.Dtos; -public record PassengerDto -{ - public Guid Id { get; init; } - public string Name { get; init; } - public string PassportNumber { get; init; } - public Enums.PassengerType PassengerType { get; init; } - public int Age { get; init; } -} +public record PassengerDto(Guid Id, string Name, string PassportNumber, Enums.PassengerType PassengerType, int Age); diff --git a/src/Services/Passenger/src/Passenger/Passengers/Features/CompletingRegisterPassenger/V1/CompleteRegisterPassengerMongo.cs b/src/Services/Passenger/src/Passenger/Passengers/Features/CompletingRegisterPassenger/V1/CompleteRegisterPassengerMongo.cs index 226153d..0402a00 100644 --- a/src/Services/Passenger/src/Passenger/Passengers/Features/CompletingRegisterPassenger/V1/CompleteRegisterPassengerMongo.cs +++ b/src/Services/Passenger/src/Passenger/Passengers/Features/CompletingRegisterPassenger/V1/CompleteRegisterPassengerMongo.cs @@ -11,7 +11,7 @@ using MongoDB.Driver.Linq; using Data; public record CompleteRegisterPassengerMongoCommand(Guid Id, string PassportNumber, string Name, - Enums.PassengerType PassengerType, int Age, bool IsDeleted) : InternalCommand; + Enums.PassengerType PassengerType, int Age, bool IsDeleted = false) : InternalCommand; internal class CompleteRegisterPassengerMongoHandler : ICommandHandler diff --git a/src/Services/Passenger/src/Passenger/Passengers/Features/GettingPassengerById/Queries/V1/GetPassengerById.cs b/src/Services/Passenger/src/Passenger/Passengers/Features/GettingPassengerById/Queries/V1/GetPassengerById.cs index 323f2e2..2ce2c52 100644 --- a/src/Services/Passenger/src/Passenger/Passengers/Features/GettingPassengerById/Queries/V1/GetPassengerById.cs +++ b/src/Services/Passenger/src/Passenger/Passengers/Features/GettingPassengerById/Queries/V1/GetPassengerById.cs @@ -5,7 +5,6 @@ using Data; using Dtos; using FluentValidation; using MapsterMapper; -using Microsoft.EntityFrameworkCore; using Ardalis.GuardClauses; using BuildingBlocks.Web; using Exceptions; @@ -13,6 +12,8 @@ using MediatR; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Routing; +using MongoDB.Driver; +using MongoDB.Driver.Linq; public record GetPassengerById(Guid Id) : IQuery; @@ -57,13 +58,13 @@ internal class GetPassengerByIdValidator : AbstractValidator internal class GetPassengerByIdHandler : IQueryHandler { - private readonly PassengerDbContext _passengerDbContext; private readonly IMapper _mapper; + private readonly PassengerReadDbContext _passengerReadDbContext; - public GetPassengerByIdHandler(IMapper mapper, PassengerDbContext passengerDbContext) + public GetPassengerByIdHandler(IMapper mapper, PassengerReadDbContext passengerReadDbContext) { _mapper = mapper; - _passengerDbContext = passengerDbContext; + _passengerReadDbContext = passengerReadDbContext; } public async Task Handle(GetPassengerById query, CancellationToken cancellationToken) @@ -71,7 +72,8 @@ internal class GetPassengerByIdHandler : IQueryHandler x.Id == query.Id, cancellationToken); + await _passengerReadDbContext.Passenger.AsQueryable() + .SingleOrDefaultAsync(x => x.PassengerId == query.Id && x.IsDeleted == false, cancellationToken); if (passenger is null) { diff --git a/src/Services/Passenger/src/Passenger/Passengers/Features/PassengerMappings.cs b/src/Services/Passenger/src/Passenger/Passengers/Features/PassengerMappings.cs index 0dc5b45..2e59b3c 100644 --- a/src/Services/Passenger/src/Passenger/Passengers/Features/PassengerMappings.cs +++ b/src/Services/Passenger/src/Passenger/Passengers/Features/PassengerMappings.cs @@ -3,6 +3,7 @@ using Mapster; namespace Passenger.Passengers.Features; using CompletingRegisterPassenger.V1; +using Dtos; using MassTransit; using Models; @@ -16,5 +17,8 @@ public class PassengerMappings : IRegister config.NewConfig() .ConstructUsing(x => new CompleteRegisterPassenger(x.PassportNumber, x.PassengerType, x.Age)); + + config.NewConfig() + .ConstructUsing(x => new PassengerDto(x.PassengerId, x.Name, x.PassportNumber, x.PassengerType, x.Age)); } } diff --git a/src/Services/Passenger/tests/IntegrationTest/Fakes/FakeCompleteRegisterPassengerMongoCommand.cs b/src/Services/Passenger/tests/IntegrationTest/Fakes/FakeCompleteRegisterPassengerMongoCommand.cs new file mode 100644 index 0000000..a62fafc --- /dev/null +++ b/src/Services/Passenger/tests/IntegrationTest/Fakes/FakeCompleteRegisterPassengerMongoCommand.cs @@ -0,0 +1,19 @@ +namespace Integration.Test.Fakes; + +using AutoBogus; +using global::Passenger.Passengers.Enums; +using global::Passenger.Passengers.Features.CompletingRegisterPassenger.V1; +using MassTransit; + +public class FakeCompleteRegisterPassengerMongoCommand: AutoFaker +{ + public FakeCompleteRegisterPassengerMongoCommand() + { + RuleFor(r => r.Id, _ => NewId.NextGuid()); + RuleFor(r => r.Name, _ => "Sam"); + RuleFor(r => r.PassportNumber, _ => "123456789"); + RuleFor(r => r.Age, _ => 30); + RuleFor(r => r.IsDeleted, _ => false); + RuleFor(r => r.PassengerType, _ => PassengerType.Male); + } +} diff --git a/src/Services/Passenger/tests/IntegrationTest/Fakes/FakePassengerCreated.cs b/src/Services/Passenger/tests/IntegrationTest/Fakes/FakePassengerCreated.cs deleted file mode 100644 index bbde1f7..0000000 --- a/src/Services/Passenger/tests/IntegrationTest/Fakes/FakePassengerCreated.cs +++ /dev/null @@ -1,13 +0,0 @@ -using BuildingBlocks.Contracts.EventBus.Messages; - -namespace Integration.Test.Fakes; - -using MassTransit; - -public static class FakePassengerCreated -{ - public static global::Passenger.Passengers.Models.Passenger Generate(UserCreated userCreated) - { - return global::Passenger.Passengers.Models.Passenger.Create(NewId.NextGuid(), userCreated.Name, userCreated.PassportNumber); - } -} diff --git a/src/Services/Passenger/tests/IntegrationTest/Fakes/FakePassengerResponseDto.cs b/src/Services/Passenger/tests/IntegrationTest/Fakes/FakePassengerResponseDto.cs deleted file mode 100644 index fbe9642..0000000 --- a/src/Services/Passenger/tests/IntegrationTest/Fakes/FakePassengerResponseDto.cs +++ /dev/null @@ -1,14 +0,0 @@ -using AutoBogus; - -namespace Integration.Test.Fakes; - -using global::Passenger; -using MassTransit; - -public class FakePassengerResponse : AutoFaker -{ - public FakePassengerResponse() - { - RuleFor(r => r.Id, _ => NewId.NextGuid().ToString()); - } -} diff --git a/src/Services/Passenger/tests/IntegrationTest/Passenger/Features/CompleteRegisterPassengerTests.cs b/src/Services/Passenger/tests/IntegrationTest/Passenger/Features/CompleteRegisterPassengerTests.cs index 2b5488e..7d5c436 100644 --- a/src/Services/Passenger/tests/IntegrationTest/Passenger/Features/CompleteRegisterPassengerTests.cs +++ b/src/Services/Passenger/tests/IntegrationTest/Passenger/Features/CompleteRegisterPassengerTests.cs @@ -12,7 +12,7 @@ namespace Integration.Test.Passenger.Features; public class CompleteRegisterPassengerTests : PassengerIntegrationTestBase { public CompleteRegisterPassengerTests( - TestWriteFixture integrationTestFactory) : base(integrationTestFactory) + TestFixture integrationTestFactory) : base(integrationTestFactory) { } diff --git a/src/Services/Passenger/tests/IntegrationTest/Passenger/Features/GetPassengerByIdTests.cs b/src/Services/Passenger/tests/IntegrationTest/Passenger/Features/GetPassengerByIdTests.cs index 5c6e7fc..d8ac75e 100644 --- a/src/Services/Passenger/tests/IntegrationTest/Passenger/Features/GetPassengerByIdTests.cs +++ b/src/Services/Passenger/tests/IntegrationTest/Passenger/Features/GetPassengerByIdTests.cs @@ -10,12 +10,13 @@ using Xunit; namespace Integration.Test.Passenger.Features; using global::Passenger.Passengers.Features.GettingPassengerById.Queries.V1; +using Humanizer; using Thrift.Protocol; public class GetPassengerByIdTests : PassengerIntegrationTestBase { public GetPassengerByIdTests( - TestWriteFixture integrationTestFactory) : base(integrationTestFactory) + TestFixture integrationTestFactory) : base(integrationTestFactory) { } @@ -23,37 +24,35 @@ public class GetPassengerByIdTests : PassengerIntegrationTestBase public async Task should_retrive_a_passenger_by_id_currectly() { // Arrange - var userCreated = new FakeUserCreated().Generate(); + var command = new FakeCompleteRegisterPassengerMongoCommand().Generate(); - var passengerEntity = FakePassengerCreated.Generate(userCreated); - await Fixture.InsertAsync(passengerEntity); + await Fixture.SendAsync(command); - var query = new GetPassengerById(passengerEntity.Id); + var query = new GetPassengerById(command.Id); // Act var response = await Fixture.SendAsync(query); // Assert response.Should().NotBeNull(); - response?.PassengerDto?.Id.Should().Be(passengerEntity.Id); + response?.PassengerDto?.Id.Should().Be(command.Id); } [Fact] public async Task should_retrive_a_passenger_by_id_from_grpc_service() { // Arrange - var userCreated = new FakeUserCreated().Generate(); + var command = new FakeCompleteRegisterPassengerMongoCommand().Generate(); - var passengerEntity = FakePassengerCreated.Generate(userCreated); - await Fixture.InsertAsync(passengerEntity); + await Fixture.SendAsync(command); var passengerGrpcClient = new PassengerGrpcService.PassengerGrpcServiceClient(Fixture.Channel); // Act - var response = await passengerGrpcClient.GetByIdAsync(new GetByIdRequest {Id = passengerEntity.Id.ToString()}); + var response = await passengerGrpcClient.GetByIdAsync(new GetByIdRequest {Id = command.Id.ToString()}); // Assert response?.Should().NotBeNull(); - response?.PassengerDto?.Id.Should().Be(passengerEntity.Id.ToString()); + response?.PassengerDto?.Id.Should().Be(command.Id.ToString()); } } diff --git a/src/Services/Passenger/tests/IntegrationTest/PassengerIntegrationTestBase.cs b/src/Services/Passenger/tests/IntegrationTest/PassengerIntegrationTestBase.cs index 33d4e92..80aa9d9 100644 --- a/src/Services/Passenger/tests/IntegrationTest/PassengerIntegrationTestBase.cs +++ b/src/Services/Passenger/tests/IntegrationTest/PassengerIntegrationTestBase.cs @@ -6,16 +6,16 @@ using Xunit; namespace Integration.Test; [Collection(IntegrationTestCollection.Name)] -public class PassengerIntegrationTestBase: TestWriteBase +public class PassengerIntegrationTestBase: TestBase { - public PassengerIntegrationTestBase(TestWriteFixture integrationTestFactory) + public PassengerIntegrationTestBase(TestFixture integrationTestFactory) : base(integrationTestFactory) { } } [CollectionDefinition(Name)] -public class IntegrationTestCollection : ICollectionFixture> +public class IntegrationTestCollection : ICollectionFixture> { public const string Name = "Passenger Integration Test"; }