Skip to content

Commit 4b646d7

Browse files
author
aligneddev
committed
update packages, aspire 13.2
1 parent 12e6a8f commit 4b646d7

13 files changed

Lines changed: 154 additions & 108 deletions

File tree

src/BikeTracking.Api.Tests/Application/RidesApplicationServiceTests.cs

Lines changed: 37 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,12 @@ public async Task RecordRideService_WithValidRequest_PersistsRideAndCreatesEvent
1414
{
1515
using var context = CreateDbContext();
1616
// Seed user
17-
var user = new UserEntity { DisplayName = "Alice", NormalizedName = "alice", CreatedAtUtc = DateTime.UtcNow };
17+
var user = new UserEntity
18+
{
19+
DisplayName = "Alice",
20+
NormalizedName = "alice",
21+
CreatedAtUtc = DateTime.UtcNow,
22+
};
1823
context.Users.Add(user);
1924
await context.SaveChangesAsync();
2025

@@ -43,35 +48,54 @@ public async Task RecordRideService_WithValidRequest_PersistsRideAndCreatesEvent
4348
public async Task RecordRideService_ValidatesMillesGreaterThanZero()
4449
{
4550
using var context = CreateDbContext();
46-
var user = new UserEntity { DisplayName = "Bob", NormalizedName = "bob", CreatedAtUtc = DateTime.UtcNow };
51+
var user = new UserEntity
52+
{
53+
DisplayName = "Bob",
54+
NormalizedName = "bob",
55+
CreatedAtUtc = DateTime.UtcNow,
56+
};
4757
context.Users.Add(user);
4858
await context.SaveChangesAsync();
4959

5060
var service = new RecordRideService(context, null!);
5161
var request = new RecordRideRequest(DateTime.Now, 0m);
5262

53-
await Assert.ThrowsAsync<ArgumentException>(() => service.ExecuteAsync(user.UserId, request));
63+
await Assert.ThrowsAsync<ArgumentException>(() =>
64+
service.ExecuteAsync(user.UserId, request)
65+
);
5466
}
5567

5668
[Fact]
5769
public async Task RecordRideService_ValidatesRideMinutesGreaterThanZeroWhenProvided()
5870
{
5971
using var context = CreateDbContext();
60-
var user = new UserEntity { DisplayName = "Charlie", NormalizedName = "charlie", CreatedAtUtc = DateTime.UtcNow };
72+
var user = new UserEntity
73+
{
74+
DisplayName = "Charlie",
75+
NormalizedName = "charlie",
76+
CreatedAtUtc = DateTime.UtcNow,
77+
};
6178
context.Users.Add(user);
6279
await context.SaveChangesAsync();
6380

6481
var service = new RecordRideService(context, null!);
6582
var request = new RecordRideRequest(DateTime.Now, 10m, -5);
6683

67-
await Assert.ThrowsAsync<ArgumentException>(() => service.ExecuteAsync(user.UserId, request));
84+
await Assert.ThrowsAsync<ArgumentException>(() =>
85+
service.ExecuteAsync(user.UserId, request)
86+
);
6887
}
6988

7089
[Fact]
7190
public async Task GetRideDefaultsService_ReturnsDefaultsForNewRider()
7291
{
7392
using var context = CreateDbContext();
74-
var user = new UserEntity { DisplayName = "Diana", NormalizedName = "diana", CreatedAtUtc = DateTime.UtcNow };
93+
var user = new UserEntity
94+
{
95+
DisplayName = "Diana",
96+
NormalizedName = "diana",
97+
CreatedAtUtc = DateTime.UtcNow,
98+
};
7599
context.Users.Add(user);
76100
await context.SaveChangesAsync();
77101

@@ -90,7 +114,12 @@ public async Task GetRideDefaultsService_ReturnsDefaultsForNewRider()
90114
public async Task GetRideDefaultsService_ReturnsLastRideDefaults()
91115
{
92116
using var context = CreateDbContext();
93-
var user = new UserEntity { DisplayName = "Eve", NormalizedName = "eve", CreatedAtUtc = DateTime.UtcNow };
117+
var user = new UserEntity
118+
{
119+
DisplayName = "Eve",
120+
NormalizedName = "eve",
121+
CreatedAtUtc = DateTime.UtcNow,
122+
};
94123
context.Users.Add(user);
95124
await context.SaveChangesAsync();
96125

@@ -102,7 +131,7 @@ public async Task GetRideDefaultsService_ReturnsLastRideDefaults()
102131
Miles = 10.5m,
103132
RideMinutes = 45,
104133
Temperature = 72m,
105-
CreatedAtUtc = DateTime.UtcNow
134+
CreatedAtUtc = DateTime.UtcNow,
106135
};
107136
context.Rides.Add(previousRide);
108137
await context.SaveChangesAsync();

src/BikeTracking.Api.Tests/BikeTracking.Api.Tests.csproj

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@
77
</PropertyGroup>
88

99
<ItemGroup>
10-
<PackageReference Include="coverlet.collector" Version="6.0.2">
10+
<PackageReference Include="coverlet.collector" Version="8.0.1">
1111
<PrivateAssets>all</PrivateAssets>
1212
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1313
</PackageReference>
14-
<PackageReference Include="Microsoft.AspNetCore.TestHost" Version="10.0.0" />
15-
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="10.0.0" />
16-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
17-
<PackageReference Include="xunit" Version="2.9.2" />
18-
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.2">
14+
<PackageReference Include="Microsoft.AspNetCore.TestHost" Version="10.0.5" />
15+
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="10.0.5" />
16+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.3.0" />
17+
<PackageReference Include="xunit" Version="2.9.3" />
18+
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.5">
1919
<PrivateAssets>all</PrivateAssets>
2020
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
2121
</PackageReference>

src/BikeTracking.Api.Tests/Endpoints/RidesEndpointsTests.cs

Lines changed: 39 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,7 @@ public async Task PostRecordRide_WithValidRequest_Returns201AndRideId()
2626
Temperature: 72m
2727
);
2828

29-
var response = await host.Client.PostWithAuthAsync(
30-
"/api/rides",
31-
request,
32-
userId
33-
);
29+
var response = await host.Client.PostWithAuthAsync("/api/rides", request, userId);
3430

3531
Assert.Equal(HttpStatusCode.Created, response.StatusCode);
3632
var payload = await response.Content.ReadFromJsonAsync<RecordRideSuccessResponse>();
@@ -46,16 +42,9 @@ public async Task PostRecordRide_WithRequiredFieldsOnly_Returns201()
4642
await using var host = await RecordRideApiHost.StartAsync();
4743
var userId = await host.SeedUserAsync("Bob");
4844

49-
var request = new RecordRideRequest(
50-
RideDateTimeLocal: DateTime.Now,
51-
Miles: 5.0m
52-
);
45+
var request = new RecordRideRequest(RideDateTimeLocal: DateTime.Now, Miles: 5.0m);
5346

54-
var response = await host.Client.PostWithAuthAsync(
55-
"/api/rides",
56-
request,
57-
userId
58-
);
47+
var response = await host.Client.PostWithAuthAsync("/api/rides", request, userId);
5948

6049
Assert.Equal(HttpStatusCode.Created, response.StatusCode);
6150
var payload = await response.Content.ReadFromJsonAsync<RecordRideSuccessResponse>();
@@ -69,16 +58,9 @@ public async Task PostRecordRide_WithInvalidMiles_Returns400()
6958
await using var host = await RecordRideApiHost.StartAsync();
7059
var userId = await host.SeedUserAsync("Charlie");
7160

72-
var request = new RecordRideRequest(
73-
RideDateTimeLocal: DateTime.Now,
74-
Miles: -1m
75-
);
61+
var request = new RecordRideRequest(RideDateTimeLocal: DateTime.Now, Miles: -1m);
7662

77-
var response = await host.Client.PostWithAuthAsync(
78-
"/api/rides",
79-
request,
80-
userId
81-
);
63+
var response = await host.Client.PostWithAuthAsync("/api/rides", request, userId);
8264

8365
Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode);
8466
}
@@ -95,11 +77,7 @@ public async Task PostRecordRide_WithInvalidRideMinutes_Returns400()
9577
RideMinutes: -5
9678
);
9779

98-
var response = await host.Client.PostWithAuthAsync(
99-
"/api/rides",
100-
request,
101-
userId
102-
);
80+
var response = await host.Client.PostWithAuthAsync("/api/rides", request, userId);
10381

10482
Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode);
10583
}
@@ -109,10 +87,7 @@ public async Task PostRecordRide_WithoutAuth_Returns401()
10987
{
11088
await using var host = await RecordRideApiHost.StartAsync();
11189

112-
var request = new RecordRideRequest(
113-
RideDateTimeLocal: DateTime.Now,
114-
Miles: 10m
115-
);
90+
var request = new RecordRideRequest(RideDateTimeLocal: DateTime.Now, Miles: 10m);
11691

11792
var response = await host.Client.PostAsJsonAsync("/api/rides", request);
11893

@@ -178,10 +153,14 @@ public static async Task<RecordRideApiHost> StartAsync()
178153
builder.Services.AddDbContext<BikeTrackingDbContext>(options =>
179154
options.UseInMemoryDatabase(databaseName)
180155
);
181-
builder.Services.AddAuthentication("test")
182-
.AddScheme<TestAuthenticationSchemeOptions, TestAuthenticationHandler>("test", _ => { });
156+
builder
157+
.Services.AddAuthentication("test")
158+
.AddScheme<TestAuthenticationSchemeOptions, TestAuthenticationHandler>(
159+
"test",
160+
_ => { }
161+
);
183162
builder.Services.AddAuthorization();
184-
163+
185164
// Add Rides services
186165
builder.Services.AddScoped<RecordRideService>();
187166
builder.Services.AddScoped<GetRideDefaultsService>();
@@ -217,7 +196,8 @@ public async Task<int> RecordRideAsync(
217196
long userId,
218197
decimal miles,
219198
int? rideMinutes = null,
220-
decimal? temperature = null)
199+
decimal? temperature = null
200+
)
221201
{
222202
using var scope = app.Services.CreateScope();
223203
var dbContext = scope.ServiceProvider.GetRequiredService<BikeTrackingDbContext>();
@@ -229,7 +209,7 @@ public async Task<int> RecordRideAsync(
229209
Miles = miles,
230210
RideMinutes = rideMinutes,
231211
Temperature = temperature,
232-
CreatedAtUtc = DateTime.UtcNow
212+
CreatedAtUtc = DateTime.UtcNow,
233213
};
234214

235215
dbContext.Add(ride);
@@ -246,31 +226,37 @@ public async ValueTask DisposeAsync()
246226
}
247227
}
248228

249-
internal class TestAuthenticationSchemeOptions : Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions
250-
{
251-
}
229+
internal class TestAuthenticationSchemeOptions
230+
: Microsoft.AspNetCore.Authentication.AuthenticationSchemeOptions { }
252231

253-
internal class TestAuthenticationHandler : Microsoft.AspNetCore.Authentication.AuthenticationHandler<TestAuthenticationSchemeOptions>
232+
internal class TestAuthenticationHandler
233+
: Microsoft.AspNetCore.Authentication.AuthenticationHandler<TestAuthenticationSchemeOptions>
254234
{
255235
public TestAuthenticationHandler(
256236
Microsoft.Extensions.Options.IOptionsMonitor<TestAuthenticationSchemeOptions> options,
257237
Microsoft.Extensions.Logging.ILoggerFactory logger,
258-
System.Text.Encodings.Web.UrlEncoder encoder)
259-
: base(options, logger, encoder)
260-
{
261-
}
238+
System.Text.Encodings.Web.UrlEncoder encoder
239+
)
240+
: base(options, logger, encoder) { }
262241

263242
protected override Task<Microsoft.AspNetCore.Authentication.AuthenticateResult> HandleAuthenticateAsync()
264243
{
265244
var userIdString = Request.Headers["X-User-Id"].FirstOrDefault();
266245
if (string.IsNullOrEmpty(userIdString))
267-
return Task.FromResult(Microsoft.AspNetCore.Authentication.AuthenticateResult.NoResult());
246+
return Task.FromResult(
247+
Microsoft.AspNetCore.Authentication.AuthenticateResult.NoResult()
248+
);
268249

269250
var claims = new[] { new Claim("sub", userIdString) };
270251
var identity = new ClaimsIdentity(claims, Scheme.Name);
271252
var principal = new System.Security.Principal.GenericPrincipal(identity, null);
272-
var ticket = new Microsoft.AspNetCore.Authentication.AuthenticationTicket(principal, Scheme.Name);
273-
return Task.FromResult(Microsoft.AspNetCore.Authentication.AuthenticateResult.Success(ticket));
253+
var ticket = new Microsoft.AspNetCore.Authentication.AuthenticationTicket(
254+
principal,
255+
Scheme.Name
256+
);
257+
return Task.FromResult(
258+
Microsoft.AspNetCore.Authentication.AuthenticateResult.Success(ticket)
259+
);
274260
}
275261
}
276262

@@ -280,11 +266,12 @@ public static async Task<HttpResponseMessage> PostWithAuthAsync<T>(
280266
this HttpClient client,
281267
string requestUri,
282268
T value,
283-
long userId)
269+
long userId
270+
)
284271
{
285272
var request = new HttpRequestMessage(HttpMethod.Post, requestUri)
286273
{
287-
Content = JsonContent.Create(value)
274+
Content = JsonContent.Create(value),
288275
};
289276
request.Headers.Add("X-User-Id", userId.ToString());
290277
return await client.SendAsync(request);
@@ -293,7 +280,8 @@ public static async Task<HttpResponseMessage> PostWithAuthAsync<T>(
293280
public static async Task<HttpResponseMessage> GetWithAuthAsync(
294281
this HttpClient client,
295282
string requestUri,
296-
long userId)
283+
long userId
284+
)
297285
{
298286
var request = new HttpRequestMessage(HttpMethod.Get, requestUri);
299287
request.Headers.Add("X-User-Id", userId.ToString());

src/BikeTracking.Api.Tests/Infrastructure/RidesPersistenceTests.cs

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,12 @@ public sealed class RidesPersistenceTests
1010
public async Task DbContext_CanSaveRideEntity_WithAllFields()
1111
{
1212
using var context = CreateDbContext();
13-
var user = new UserEntity { DisplayName = "Alice", NormalizedName = "alice", CreatedAtUtc = DateTime.UtcNow };
13+
var user = new UserEntity
14+
{
15+
DisplayName = "Alice",
16+
NormalizedName = "alice",
17+
CreatedAtUtc = DateTime.UtcNow,
18+
};
1419
context.Users.Add(user);
1520
await context.SaveChangesAsync();
1621

@@ -21,7 +26,7 @@ public async Task DbContext_CanSaveRideEntity_WithAllFields()
2126
Miles = 10.5m,
2227
RideMinutes = 45,
2328
Temperature = 72m,
24-
CreatedAtUtc = DateTime.UtcNow
29+
CreatedAtUtc = DateTime.UtcNow,
2530
};
2631

2732
context.Rides.Add(ride);
@@ -39,7 +44,12 @@ public async Task DbContext_CanSaveRideEntity_WithAllFields()
3944
public async Task DbContext_AllowsNullOptionalFields()
4045
{
4146
using var context = CreateDbContext();
42-
var user = new UserEntity { DisplayName = "Bob", NormalizedName = "bob", CreatedAtUtc = DateTime.UtcNow };
47+
var user = new UserEntity
48+
{
49+
DisplayName = "Bob",
50+
NormalizedName = "bob",
51+
CreatedAtUtc = DateTime.UtcNow,
52+
};
4353
context.Users.Add(user);
4454
await context.SaveChangesAsync();
4555

@@ -50,7 +60,7 @@ public async Task DbContext_AllowsNullOptionalFields()
5060
Miles = 5m,
5161
RideMinutes = null,
5262
Temperature = null,
53-
CreatedAtUtc = DateTime.UtcNow
63+
CreatedAtUtc = DateTime.UtcNow,
5464
};
5565

5666
context.Rides.Add(ride);
@@ -62,11 +72,18 @@ public async Task DbContext_AllowsNullOptionalFields()
6272
Assert.Null(retrieved.Temperature);
6373
}
6474

65-
[Fact(Skip = "In-memory database does not enforce check constraints; tests pass against SQL Server")]
75+
[Fact(
76+
Skip = "In-memory database does not enforce check constraints; tests pass against SQL Server"
77+
)]
6678
public async Task DbContext_EnforcesCheckConstraint_MilesGreaterThanZero()
6779
{
6880
using var context = CreateDbContext();
69-
var user = new UserEntity { DisplayName = "Charlie", NormalizedName = "charlie", CreatedAtUtc = DateTime.UtcNow };
81+
var user = new UserEntity
82+
{
83+
DisplayName = "Charlie",
84+
NormalizedName = "charlie",
85+
CreatedAtUtc = DateTime.UtcNow,
86+
};
7087
context.Users.Add(user);
7188
await context.SaveChangesAsync();
7289

@@ -75,7 +92,7 @@ public async Task DbContext_EnforcesCheckConstraint_MilesGreaterThanZero()
7592
RiderId = (int)user.UserId,
7693
RideDateTimeLocal = DateTime.Now,
7794
Miles = 0m,
78-
CreatedAtUtc = DateTime.UtcNow
95+
CreatedAtUtc = DateTime.UtcNow,
7996
};
8097

8198
context.Rides.Add(ride);

src/BikeTracking.Api/Application/Events/RideRecordedEventPayload.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ public static RideRecordedEventPayload Create(
2121
decimal miles,
2222
int? rideMinutes = null,
2323
decimal? temperature = null,
24-
DateTime? occurredAtUtc = null)
24+
DateTime? occurredAtUtc = null
25+
)
2526
{
2627
return new RideRecordedEventPayload(
2728
EventId: Guid.NewGuid().ToString(),

0 commit comments

Comments
 (0)