Skip to content

Commit 0f66c14

Browse files
committed
fix: fix ci failed for tests
1 parent 7f9cf8b commit 0f66c14

4 files changed

Lines changed: 96 additions & 86 deletions

File tree

src/BuildingBlocks/TestBase/TestBase.cs

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -133,14 +133,10 @@ public async Task InitializeAsync()
133133
{
134134
CancellationTokenSource = new CancellationTokenSource();
135135
await StartTestContainerAsync();
136-
137-
await TestHarness.Start();
138136
}
139137

140138
public async Task DisposeAsync()
141139
{
142-
await TestHarness.Stop();
143-
144140
await StopTestContainerAsync();
145141
await _factory.DisposeAsync();
146142
await CancellationTokenSource.CancelAsync();
@@ -277,14 +273,11 @@ private async Task StartTestContainerAsync()
277273
MongoDbTestContainer = TestContainers.MongoTestContainer();
278274
EventStoreDbTestContainer = TestContainers.EventStoreTestContainer();
279275

280-
await Task.WhenAll(
281-
MongoDbTestContainer.StartAsync(),
282-
PostgresTestcontainer.StartAsync(),
283-
PostgresPersistTestContainer.StartAsync(),
284-
EventStoreDbTestContainer.StartAsync()
285-
);
286-
276+
await MongoDbTestContainer.StartAsync();
277+
await PostgresTestcontainer.StartAsync();
278+
await PostgresPersistTestContainer.StartAsync();
287279
await RabbitMqTestContainer.StartAsync();
280+
await EventStoreDbTestContainer.StartAsync();
288281
}
289282

290283
private async Task StopTestContainerAsync()

src/Services/Booking/src/Booking/Extensions/Infrastructure/GrpcClientExtensions.cs

Lines changed: 28 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,12 @@ public static class GrpcClientExtensions
1313
public static IServiceCollection AddGrpcClients(this IServiceCollection services)
1414
{
1515
var grpcOptions = services.GetOptions<GrpcOptions>("Grpc");
16-
var resilienceOptions = services.GetOptions<HttpStandardResilienceOptions>(nameof(HttpStandardResilienceOptions));
16+
var resilienceOptions = services.GetOptions<HttpStandardResilienceOptions>(
17+
nameof(HttpStandardResilienceOptions)
18+
);
1719

18-
services.AddGrpcClient<FlightGrpcService.FlightGrpcServiceClient>(o =>
20+
services
21+
.AddGrpcClient<FlightGrpcService.FlightGrpcServiceClient>(o =>
1922
{
2023
o.Address = new Uri(grpcOptions.FlightAddress);
2124
})
@@ -25,54 +28,37 @@ public static IServiceCollection AddGrpcClients(this IServiceCollection services
2528
{
2629
var timeSpan = TimeSpan.FromMinutes(1);
2730

28-
options.AddRetry(
29-
new HttpRetryStrategyOptions
30-
{
31-
MaxRetryAttempts = 3,
32-
});
31+
options.AddRetry(new HttpRetryStrategyOptions { MaxRetryAttempts = 3 });
3332

3433
options.AddCircuitBreaker(
35-
new HttpCircuitBreakerStrategyOptions
36-
{
37-
SamplingDuration = timeSpan * 2,
38-
});
34+
new HttpCircuitBreakerStrategyOptions { SamplingDuration = timeSpan * 2 }
35+
);
3936

40-
options.AddTimeout(
41-
new HttpTimeoutStrategyOptions
42-
{
43-
Timeout = timeSpan * 3,
44-
});
45-
});
37+
options.AddTimeout(new HttpTimeoutStrategyOptions { Timeout = timeSpan * 3 });
38+
}
39+
);
4640

47-
services.AddGrpcClient<PassengerGrpcService.PassengerGrpcServiceClient>(o =>
48-
{
49-
o.Address = new Uri(grpcOptions.PassengerAddress);
50-
})
51-
.AddResilienceHandler(
52-
"grpc-passenger-resilience",
53-
options =>
41+
services
42+
.AddGrpcClient<PassengerGrpcService.PassengerGrpcServiceClient>(o =>
5443
{
55-
var timeSpan = TimeSpan.FromMinutes(1);
44+
o.Address = new Uri(grpcOptions.PassengerAddress);
45+
})
46+
.AddResilienceHandler(
47+
"grpc-passenger-resilience",
48+
options =>
49+
{
50+
var timeSpan = TimeSpan.FromMinutes(1);
5651

57-
options.AddRetry(
58-
new HttpRetryStrategyOptions
59-
{
60-
MaxRetryAttempts = 3,
61-
});
52+
options.AddRetry(new HttpRetryStrategyOptions { MaxRetryAttempts = 3 });
6253

63-
options.AddCircuitBreaker(
64-
new HttpCircuitBreakerStrategyOptions
65-
{
66-
SamplingDuration = timeSpan * 2,
67-
});
54+
options.AddCircuitBreaker(
55+
new HttpCircuitBreakerStrategyOptions { SamplingDuration = timeSpan * 2 }
56+
);
6857

69-
options.AddTimeout(
70-
new HttpTimeoutStrategyOptions
71-
{
72-
Timeout = timeSpan * 3,
73-
});
74-
});
58+
options.AddTimeout(new HttpTimeoutStrategyOptions { Timeout = timeSpan * 3 });
59+
}
60+
);
7561

7662
return services;
7763
}
78-
}
64+
}

src/Services/Booking/tests/IntegrationTest/Booking/Features/CreateBookingTests.cs

Lines changed: 61 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,8 @@ namespace Integration.Test.Booking.Features
1919
{
2020
public class CreateBookingTests : BookingIntegrationTestBase
2121
{
22-
public CreateBookingTests(TestReadFixture<Program, BookingReadDbContext> integrationTestFixture) : base(
23-
integrationTestFixture)
24-
{
25-
}
22+
public CreateBookingTests(TestReadFixture<Program, BookingReadDbContext> integrationTestFixture)
23+
: base(integrationTestFixture) { }
2624

2725
protected override void RegisterTestsServices(IServiceCollection services)
2826
{
@@ -45,41 +43,76 @@ public async Task should_create_booking_to_event_store_currectly()
4543
(await Fixture.WaitForPublishing<BookingCreated>()).Should().Be(true);
4644
}
4745

48-
4946
private void MockPassengerGrpcServices(IServiceCollection services)
5047
{
51-
services.Replace(ServiceDescriptor.Singleton(x =>
52-
{
53-
var mockPassenger = Substitute.For<PassengerGrpcService.PassengerGrpcServiceClient>();
48+
services.Replace(
49+
ServiceDescriptor.Singleton(x =>
50+
{
51+
var mockPassenger = Substitute.For<PassengerGrpcService.PassengerGrpcServiceClient>();
5452

55-
mockPassenger.GetByIdAsync(Arg.Any<Passenger.GetByIdRequest>())
56-
.Returns(TestCalls.AsyncUnaryCall(Task.FromResult(FakePassengerResponse.Generate()),
57-
Task.FromResult(new Metadata()), () => Status.DefaultSuccess, () => new Metadata(), () => { }));
53+
mockPassenger
54+
.GetByIdAsync(Arg.Any<Passenger.GetByIdRequest>())
55+
.Returns(
56+
TestCalls.AsyncUnaryCall(
57+
Task.FromResult(FakePassengerResponse.Generate()),
58+
Task.FromResult(new Metadata()),
59+
() => Status.DefaultSuccess,
60+
() => new Metadata(),
61+
() => { }
62+
)
63+
);
5864

59-
return mockPassenger;
60-
}));
65+
return mockPassenger;
66+
})
67+
);
6168
}
6269

6370
private void MockFlightGrpcServices(IServiceCollection services)
6471
{
65-
services.Replace(ServiceDescriptor.Singleton(x =>
66-
{
67-
var mockFlight = Substitute.For<FlightGrpcService.FlightGrpcServiceClient>();
72+
services.Replace(
73+
ServiceDescriptor.Singleton(x =>
74+
{
75+
var mockFlight = Substitute.For<FlightGrpcService.FlightGrpcServiceClient>();
6876

69-
mockFlight.GetByIdAsync(Arg.Any<GetByIdRequest>())
70-
.Returns(TestCalls.AsyncUnaryCall(Task.FromResult(FakeFlightResponse.Generate()),
71-
Task.FromResult(new Metadata()), () => Status.DefaultSuccess, () => new Metadata(), () => { }));
77+
mockFlight
78+
.GetByIdAsync(Arg.Any<GetByIdRequest>())
79+
.Returns(
80+
TestCalls.AsyncUnaryCall(
81+
Task.FromResult(FakeFlightResponse.Generate()),
82+
Task.FromResult(new Metadata()),
83+
() => Status.DefaultSuccess,
84+
() => new Metadata(),
85+
() => { }
86+
)
87+
);
7288

73-
mockFlight.GetAvailableSeatsAsync(Arg.Any<GetAvailableSeatsRequest>())
74-
.Returns(TestCalls.AsyncUnaryCall(Task.FromResult(FakeGetAvailableSeatsResponse.Generate()),
75-
Task.FromResult(new Metadata()), () => Status.DefaultSuccess, () => new Metadata(), () => { }));
89+
mockFlight
90+
.GetAvailableSeatsAsync(Arg.Any<GetAvailableSeatsRequest>())
91+
.Returns(
92+
TestCalls.AsyncUnaryCall(
93+
Task.FromResult(FakeGetAvailableSeatsResponse.Generate()),
94+
Task.FromResult(new Metadata()),
95+
() => Status.DefaultSuccess,
96+
() => new Metadata(),
97+
() => { }
98+
)
99+
);
76100

77-
mockFlight.ReserveSeatAsync(Arg.Any<ReserveSeatRequest>())
78-
.Returns(TestCalls.AsyncUnaryCall(Task.FromResult(FakeReserveSeatResponse.Generate()),
79-
Task.FromResult(new Metadata()), () => Status.DefaultSuccess, () => new Metadata(), () => { }));
101+
mockFlight
102+
.ReserveSeatAsync(Arg.Any<ReserveSeatRequest>())
103+
.Returns(
104+
TestCalls.AsyncUnaryCall(
105+
Task.FromResult(FakeReserveSeatResponse.Generate()),
106+
Task.FromResult(new Metadata()),
107+
() => Status.DefaultSuccess,
108+
() => new Metadata(),
109+
() => { }
110+
)
111+
);
80112

81-
return mockFlight;
82-
}));
113+
return mockFlight;
114+
})
115+
);
83116
}
84117
}
85-
}
118+
}
Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
using Booking.Api;
21
using Booking.Data;
32
using BuildingBlocks.TestBase;
43
using Xunit;
@@ -8,13 +7,12 @@ namespace Integration.Test;
87
[Collection(IntegrationTestCollection.Name)]
98
public class BookingIntegrationTestBase : TestReadBase<Program, BookingReadDbContext>
109
{
11-
public BookingIntegrationTestBase(TestReadFixture<Program, BookingReadDbContext> integrationTestFixture) : base(integrationTestFixture)
12-
{
13-
}
10+
public BookingIntegrationTestBase(TestReadFixture<Program, BookingReadDbContext> integrationTestFixture)
11+
: base(integrationTestFixture) { }
1412
}
1513

1614
[CollectionDefinition(Name)]
1715
public class IntegrationTestCollection : ICollectionFixture<TestReadFixture<Program, BookingReadDbContext>>
1816
{
1917
public const string Name = "Booking Integration Test";
20-
}
18+
}

0 commit comments

Comments
 (0)