diff --git a/Chapter-1-initial-architecture/Src/Directory.Build.props b/Chapter-1-initial-architecture/Src/Directory.Build.props
index 27437e42..43f86f66 100644
--- a/Chapter-1-initial-architecture/Src/Directory.Build.props
+++ b/Chapter-1-initial-architecture/Src/Directory.Build.props
@@ -1,29 +1,29 @@
-
- EvolutionaryArchitecture.$(MSBuildProjectName)
- $(AssemblyName)
- net9.0
- latest
- true
- true
- enable
- enable
- true
- true
-
-
-
-
-
+
+ EvolutionaryArchitecture.$(MSBuildProjectName)
+ $(AssemblyName)
+ net9.0
+ latest
+ true
+ true
+ enable
+ enable
+ true
+ true
+
+
+
+
+
+
+
+
+
-
-
-
-
\ No newline at end of file
diff --git a/Chapter-1-initial-architecture/Src/Fitnet.ArchitectureTests/Fitnet.ArchitectureTests.csproj b/Chapter-1-initial-architecture/Src/Fitnet.ArchitectureTests/Fitnet.ArchitectureTests.csproj
index 3e3f8058..798ad050 100644
--- a/Chapter-1-initial-architecture/Src/Fitnet.ArchitectureTests/Fitnet.ArchitectureTests.csproj
+++ b/Chapter-1-initial-architecture/Src/Fitnet.ArchitectureTests/Fitnet.ArchitectureTests.csproj
@@ -7,13 +7,12 @@
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/Chapter-1-initial-architecture/Src/Fitnet.IntegrationTests/Common/TestEngine/DatabaseContainer.cs b/Chapter-1-initial-architecture/Src/Fitnet.IntegrationTests/Common/TestEngine/DatabaseContainer.cs
index 1a7f4f52..4f471d6e 100644
--- a/Chapter-1-initial-architecture/Src/Fitnet.IntegrationTests/Common/TestEngine/DatabaseContainer.cs
+++ b/Chapter-1-initial-architecture/Src/Fitnet.IntegrationTests/Common/TestEngine/DatabaseContainer.cs
@@ -11,7 +11,7 @@ public sealed class DatabaseContainer : IAsyncLifetime
private PostgreSqlContainer? _container;
internal string? ConnectionString;
- public async Task InitializeAsync()
+ public async ValueTask InitializeAsync()
{
_container = new PostgreSqlBuilder()
.WithDatabase(Database)
@@ -24,5 +24,5 @@ public async Task InitializeAsync()
ConnectionString = _container.GetConnectionString();
}
- public async Task DisposeAsync() => await _container!.StopAsync();
+ public async ValueTask DisposeAsync() => await _container!.StopAsync();
}
diff --git a/Chapter-1-initial-architecture/Src/Fitnet.IntegrationTests/Contracts/PrepareContract/PrepareContractTests.cs b/Chapter-1-initial-architecture/Src/Fitnet.IntegrationTests/Contracts/PrepareContract/PrepareContractTests.cs
index 636a52d6..a210c260 100644
--- a/Chapter-1-initial-architecture/Src/Fitnet.IntegrationTests/Contracts/PrepareContract/PrepareContractTests.cs
+++ b/Chapter-1-initial-architecture/Src/Fitnet.IntegrationTests/Contracts/PrepareContract/PrepareContractTests.cs
@@ -37,11 +37,11 @@ internal async Task Given_valid_contract_preparation_request_When_preparing_new_
var customerId = Guid.NewGuid();
var requestParameters = PrepareContractRequestParameters.GetValid();
var prepareContractResponse = await PrepareCorrectContract(requestParameters, customerId);
- var preparedContractId = await prepareContractResponse.Content.ReadFromJsonAsync();
+ var preparedContractId = await prepareContractResponse.Content.ReadFromJsonAsync(TestContext.Current.CancellationToken);
var signContractRequestParameters = SignContractRequestParameters.GetValid(preparedContractId);
var signContractRequest = new SignContractRequest(signContractRequestParameters.SignedAt);
var signContractResponse =
- await _applicationHttpClient.PatchAsJsonAsync(signContractRequestParameters.Url, signContractRequest);
+ await _applicationHttpClient.PatchAsJsonAsync(signContractRequestParameters.Url, signContractRequest, TestContext.Current.CancellationToken);
signContractResponse.StatusCode.ShouldBe(HttpStatusCode.NoContent);
// Act
@@ -62,12 +62,12 @@ internal async Task Given_contract_preparation_request_with_invalid_age_Then_sho
// Act
using var prepareContractResponse =
- await _applicationHttpClient.PostAsJsonAsync(ContractsApiPaths.Prepare, prepareContractRequest);
+ await _applicationHttpClient.PostAsJsonAsync(ContractsApiPaths.Prepare, prepareContractRequest, TestContext.Current.CancellationToken);
// Assert
prepareContractResponse.StatusCode.ShouldBe(HttpStatusCode.Conflict);
- var responseMessage = await prepareContractResponse.Content.ReadFromJsonAsync();
+ var responseMessage = await prepareContractResponse.Content.ReadFromJsonAsync(TestContext.Current.CancellationToken);
responseMessage?.Status.ShouldBe((int)HttpStatusCode.Conflict);
responseMessage?.Title.ShouldBe("Contract can not be prepared for a person who is not adult");
}
@@ -83,12 +83,12 @@ internal async Task Given_contract_preparation_request_with_invalid_height_Then_
// Act
using var prepareContractResponse =
- await _applicationHttpClient.PostAsJsonAsync(ContractsApiPaths.Prepare, prepareContractRequest);
+ await _applicationHttpClient.PostAsJsonAsync(ContractsApiPaths.Prepare, prepareContractRequest, TestContext.Current.CancellationToken);
// Assert
prepareContractResponse.StatusCode.ShouldBe(HttpStatusCode.Conflict);
- var responseMessage = await prepareContractResponse.Content.ReadFromJsonAsync();
+ var responseMessage = await prepareContractResponse.Content.ReadFromJsonAsync(TestContext.Current.CancellationToken);
responseMessage?.Status.ShouldBe((int)HttpStatusCode.Conflict);
responseMessage?.Title.ShouldBe("Customer height must fit maximum limit for gym instruments");
}
@@ -107,7 +107,7 @@ internal async Task
// Assert
prepareContractResponse.StatusCode.ShouldBe(HttpStatusCode.Conflict);
- var responseMessage = await prepareContractResponse.Content.ReadFromJsonAsync();
+ var responseMessage = await prepareContractResponse.Content.ReadFromJsonAsync(TestContext.Current.CancellationToken);
responseMessage?.Status.ShouldBe((int)HttpStatusCode.Conflict);
responseMessage?.Title.ShouldBe("Previous contract must be signed by the customer");
}
@@ -123,9 +123,9 @@ private async Task PrepareCorrectContract(PrepareContractRe
return prepareContractResponse;
}
- public Task InitializeAsync() => Task.CompletedTask;
+ public ValueTask InitializeAsync() => ValueTask.CompletedTask;
- public async Task DisposeAsync()
+ public async ValueTask DisposeAsync()
{
_applicationHttpClient.Dispose();
await applicationInMemoryFactory.DisposeAsync();
diff --git a/Chapter-1-initial-architecture/Src/Fitnet.IntegrationTests/Contracts/SignContract/SignContractTests.cs b/Chapter-1-initial-architecture/Src/Fitnet.IntegrationTests/Contracts/SignContract/SignContractTests.cs
index 53b58014..ef6f822a 100644
--- a/Chapter-1-initial-architecture/Src/Fitnet.IntegrationTests/Contracts/SignContract/SignContractTests.cs
+++ b/Chapter-1-initial-architecture/Src/Fitnet.IntegrationTests/Contracts/SignContract/SignContractTests.cs
@@ -25,9 +25,9 @@ public SignContractTests(WebApplicationFactory applicationInMemoryFacto
.CreateClient();
}
- public Task InitializeAsync() => Task.CompletedTask;
+ public ValueTask InitializeAsync() => ValueTask.CompletedTask;
- public async Task DisposeAsync()
+ public async ValueTask DisposeAsync()
{
_applicationHttpClient.Dispose();
await _applicationInMemoryFactory.DisposeAsync();
@@ -43,7 +43,7 @@ internal async Task Given_valid_contract_signature_request_Then_should_return_no
// Act
using var signContractResponse =
- await _applicationHttpClient.PatchAsJsonAsync(requestParameters.Url, signContractRequest);
+ await _applicationHttpClient.PatchAsJsonAsync(requestParameters.Url, signContractRequest, TestContext.Current.CancellationToken);
// Assert
signContractResponse.StatusCode.ShouldBe(HttpStatusCode.NoContent);
@@ -58,7 +58,7 @@ internal async Task Given_valid_contract_signature_request_Then_contract_signed_
var signContractRequest = new SignContractRequest(requestParameters.SignedAt);
// Act
- await _applicationHttpClient.PatchAsJsonAsync(requestParameters.Url, signContractRequest);
+ await _applicationHttpClient.PatchAsJsonAsync(requestParameters.Url, signContractRequest, TestContext.Current.CancellationToken);
// Assert
EnsureThatContractSignedEventWasPublished();
@@ -76,7 +76,7 @@ internal async Task Given_contract_signature_request_with_not_existing_id_Then_s
// Act
using var signContractResponse =
- await _applicationHttpClient.PatchAsJsonAsync(requestParameters.Url, signContractRequest);
+ await _applicationHttpClient.PatchAsJsonAsync(requestParameters.Url, signContractRequest, TestContext.Current.CancellationToken);
// Assert
signContractResponse.StatusCode.ShouldBe(HttpStatusCode.NotFound);
@@ -94,12 +94,12 @@ internal async Task
// Act
using var signContractResponse =
- await _applicationHttpClient.PatchAsJsonAsync(requestParameters.Url, signContractRequest);
+ await _applicationHttpClient.PatchAsJsonAsync(requestParameters.Url, signContractRequest, TestContext.Current.CancellationToken);
// Assert
signContractResponse.StatusCode.ShouldBe(HttpStatusCode.Conflict);
- var responseMessage = await signContractResponse.Content.ReadFromJsonAsync();
+ var responseMessage = await signContractResponse.Content.ReadFromJsonAsync(TestContext.Current.CancellationToken);
responseMessage?.Status.ShouldBe((int)HttpStatusCode.Conflict);
responseMessage?.Title.ShouldBe("Contract can not be signed because more than 30 days have passed from the contract preparation");
}
diff --git a/Chapter-1-initial-architecture/Src/Fitnet.IntegrationTests/Fitnet.IntegrationTests.csproj b/Chapter-1-initial-architecture/Src/Fitnet.IntegrationTests/Fitnet.IntegrationTests.csproj
index 25ef36a9..27a5a7c8 100644
--- a/Chapter-1-initial-architecture/Src/Fitnet.IntegrationTests/Fitnet.IntegrationTests.csproj
+++ b/Chapter-1-initial-architecture/Src/Fitnet.IntegrationTests/Fitnet.IntegrationTests.csproj
@@ -2,7 +2,7 @@
false
- $(NoWarn);S3604
+ $(NoWarn);S3604;xUnit1050
@@ -10,19 +10,18 @@
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
diff --git a/Chapter-1-initial-architecture/Src/Fitnet.IntegrationTests/Passes/MarkPassAsExpired/MarkPassAsExpiredTests.cs b/Chapter-1-initial-architecture/Src/Fitnet.IntegrationTests/Passes/MarkPassAsExpired/MarkPassAsExpiredTests.cs
index af61f34e..ec0043db 100644
--- a/Chapter-1-initial-architecture/Src/Fitnet.IntegrationTests/Passes/MarkPassAsExpired/MarkPassAsExpiredTests.cs
+++ b/Chapter-1-initial-architecture/Src/Fitnet.IntegrationTests/Passes/MarkPassAsExpired/MarkPassAsExpiredTests.cs
@@ -36,7 +36,7 @@ internal async Task Given_valid_mark_pass_as_expired_request_Then_should_return_
var url = BuildUrl(registeredPassId);
// Act
- await _applicationHttpClient.PatchAsJsonAsync(url, EmptyContent);
+ await _applicationHttpClient.PatchAsJsonAsync(url, EmptyContent, TestContext.Current.CancellationToken);
// Assert
EnsureThatPassExpiredEventWasPublished();
@@ -51,7 +51,7 @@ internal async Task Given_valid_mark_pass_as_expired_request_Then_should_publish
var url = BuildUrl(registeredPassId);
// Act
- using var markAsExpiredResponse = await _applicationHttpClient.PatchAsJsonAsync(url, EmptyContent);
+ using var markAsExpiredResponse = await _applicationHttpClient.PatchAsJsonAsync(url, EmptyContent, TestContext.Current.CancellationToken);
// Assert
markAsExpiredResponse.StatusCode.ShouldBe(HttpStatusCode.NoContent);
@@ -65,7 +65,7 @@ internal async Task Given_mark_pass_as_expired_request_with_not_existing_id_Then
var url = BuildUrl(notExistingId);
// Act
- using var markAsExpiredResponse = await _applicationHttpClient.PatchAsJsonAsync(url, EmptyContent);
+ using var markAsExpiredResponse = await _applicationHttpClient.PatchAsJsonAsync(url, EmptyContent, TestContext.Current.CancellationToken);
// Assert
markAsExpiredResponse.StatusCode.ShouldBe(HttpStatusCode.NotFound);
@@ -103,9 +103,9 @@ private async Task GetCreatedPass(Guid customerId)
private void EnsureThatPassExpiredEventWasPublished() => _fakeEventBus.Received(1)
.PublishAsync(Arg.Any(), Arg.Any());
- public Task InitializeAsync() => Task.CompletedTask;
+ public ValueTask InitializeAsync() => ValueTask.CompletedTask;
- public async Task DisposeAsync()
+ public async ValueTask DisposeAsync()
{
_applicationHttpClient.Dispose();
await _applicationInMemoryFactory.DisposeAsync();
diff --git a/Chapter-1-initial-architecture/Src/Fitnet.IntegrationTests/Passes/RegisterPass/RegisterPassTests.cs b/Chapter-1-initial-architecture/Src/Fitnet.IntegrationTests/Passes/RegisterPass/RegisterPassTests.cs
index 71e0ed1a..0dd132db 100644
--- a/Chapter-1-initial-architecture/Src/Fitnet.IntegrationTests/Passes/RegisterPass/RegisterPassTests.cs
+++ b/Chapter-1-initial-architecture/Src/Fitnet.IntegrationTests/Passes/RegisterPass/RegisterPassTests.cs
@@ -21,9 +21,9 @@ public RegisterPassTests(WebApplicationFactory applicationInMemoryFacto
_applicationHttpClient = _applicationInMemory.CreateClient();
}
- public Task InitializeAsync() => Task.CompletedTask;
+ public ValueTask InitializeAsync() => ValueTask.CompletedTask;
- public async Task DisposeAsync()
+ public async ValueTask DisposeAsync()
{
_applicationHttpClient.Dispose();
await _applicationInMemory.DisposeAsync();
@@ -38,7 +38,7 @@ internal async Task Given_contract_signed_event_Then_should_register_pass()
var @event = ContractSignedEventFaker.Create();
// Act
- await integrationEventHandlerScope.Consume(@event);
+ await integrationEventHandlerScope.Consume(@event, TestContext.Current.CancellationToken);
// Assert
EnsureThatPassRegisteredEventWasPublished();
diff --git a/Chapter-1-initial-architecture/Src/Fitnet.IntegrationTests/Reports/GenerateNewPassesPerMonthReport/GenerateNewPassesPerMonthReportTests.cs b/Chapter-1-initial-architecture/Src/Fitnet.IntegrationTests/Reports/GenerateNewPassesPerMonthReport/GenerateNewPassesPerMonthReportTests.cs
index 99bc0655..f714e98c 100644
--- a/Chapter-1-initial-architecture/Src/Fitnet.IntegrationTests/Reports/GenerateNewPassesPerMonthReport/GenerateNewPassesPerMonthReportTests.cs
+++ b/Chapter-1-initial-architecture/Src/Fitnet.IntegrationTests/Reports/GenerateNewPassesPerMonthReport/GenerateNewPassesPerMonthReportTests.cs
@@ -34,11 +34,11 @@ internal async Task Given_valid_generate_new_report_request_Then_should_return_c
await RegisterPasses(passRegistrationDateRanges);
// Act
- using var getReportResult = await _applicationHttpClient.GetAsync(ReportsApiPaths.GenerateNewReport);
+ using var getReportResult = await _applicationHttpClient.GetAsync(ReportsApiPaths.GenerateNewReport, TestContext.Current.CancellationToken);
// Assert
getReportResult.StatusCode.ShouldBe(HttpStatusCode.OK);
- var reportData = await getReportResult.Content.ReadFromJsonAsync();
+ var reportData = await getReportResult.Content.ReadFromJsonAsync(TestContext.Current.CancellationToken);
await Verify(reportData);
}
@@ -59,9 +59,9 @@ private async Task RegisterPass(DateTimeOffset from, DateTimeOffset to)
await integrationEventHandler.Handle(@event, CancellationToken.None);
}
- public Task InitializeAsync() => Task.CompletedTask;
+ public ValueTask InitializeAsync() => ValueTask.CompletedTask;
- public async Task DisposeAsync()
+ public async ValueTask DisposeAsync()
{
_applicationHttpClient.Dispose();
await _applicationInMemoryFactory.DisposeAsync();
diff --git a/Chapter-1-initial-architecture/Src/Fitnet.UnitTests/Contracts/SignContract/SignContractTestData.cs b/Chapter-1-initial-architecture/Src/Fitnet.UnitTests/Contracts/SignContract/SignContractTestData.cs
index f3821e04..63a6f8aa 100644
--- a/Chapter-1-initial-architecture/Src/Fitnet.UnitTests/Contracts/SignContract/SignContractTestData.cs
+++ b/Chapter-1-initial-architecture/Src/Fitnet.UnitTests/Contracts/SignContract/SignContractTestData.cs
@@ -4,17 +4,17 @@ internal sealed class SignContractTestData : TheoryData
false
+ $(NoWarn);xUnit1050
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/Chapter-1-initial-architecture/Src/Fitnet.UnitTests/GlobalExceptionHandlerTests.cs b/Chapter-1-initial-architecture/Src/Fitnet.UnitTests/GlobalExceptionHandlerTests.cs
index f8f93bcc..1b9bc546 100644
--- a/Chapter-1-initial-architecture/Src/Fitnet.UnitTests/GlobalExceptionHandlerTests.cs
+++ b/Chapter-1-initial-architecture/Src/Fitnet.UnitTests/GlobalExceptionHandlerTests.cs
@@ -20,7 +20,7 @@ internal async Task Given_business_rule_validation_exception_Then_returns_confli
var exceptionHandler = new GlobalExceptionHandler(_logger);
// Act
- await exceptionHandler.TryHandleAsync(_context, new BusinessRuleValidationException(exceptionMessage), default);
+ await exceptionHandler.TryHandleAsync(_context, new BusinessRuleValidationException(exceptionMessage), TestContext.Current.CancellationToken);
// Assert
_context.Response.StatusCode.ShouldBe((int)HttpStatusCode.Conflict);
@@ -37,7 +37,7 @@ internal async Task Given_other_than_business_rule_validation_exception_Then_ret
var exceptionHandler = new GlobalExceptionHandler(_logger);
// Act
- await exceptionHandler.TryHandleAsync(_context, new InvalidCastException("test"), CancellationToken.None);
+ await exceptionHandler.TryHandleAsync(_context, new InvalidCastException("test"), TestContext.Current.CancellationToken);
// Assert
_context.Response.StatusCode.ShouldBe((int)HttpStatusCode.InternalServerError);