Skip to content

Commit 9aa4b7b

Browse files
author
Bart Koelman
committed
Removed .BeCloseTo, now that fakers truncate time to whole milliseconds. Removed runtime casts, because the JSON deserializer now creates the correct types (based on the resource graph).
1 parent a6025fa commit 9aa4b7b

File tree

12 files changed

+40
-88
lines changed

12 files changed

+40
-88
lines changed

test/JsonApiDotNetCoreTests/IntegrationTests/Archiving/ArchiveTests.cs

Lines changed: 12 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
5454

5555
responseDocument.Data.SingleValue.ShouldNotBeNull();
5656
responseDocument.Data.SingleValue.Id.Should().Be(broadcast.StringId);
57-
58-
responseDocument.Data.SingleValue.Attributes.ShouldContainKey("archivedAt")
59-
.With(value => value.As<DateTimeOffset?>().Should().BeCloseTo(broadcast.ArchivedAt!.Value));
57+
responseDocument.Data.SingleValue.Attributes.ShouldContainKey("archivedAt").With(value => value.Should().Be(broadcast.ArchivedAt));
6058
}
6159

6260
[Fact]
@@ -82,7 +80,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
8280

8381
responseDocument.Data.SingleValue.ShouldNotBeNull();
8482
responseDocument.Data.SingleValue.Id.Should().Be(broadcast.StringId);
85-
responseDocument.Data.SingleValue.Attributes.ShouldContainKey("archivedAt").With(value => value.As<DateTimeOffset?>().Should().BeNull());
83+
responseDocument.Data.SingleValue.Attributes.ShouldContainKey("archivedAt").With(value => value.Should().BeNull());
8684
}
8785

8886
[Fact]
@@ -109,7 +107,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
109107

110108
responseDocument.Data.ManyValue.ShouldHaveCount(1);
111109
responseDocument.Data.ManyValue[0].Id.Should().Be(broadcasts[1].StringId);
112-
responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("archivedAt").With(value => value.As<DateTimeOffset?>().Should().BeNull());
110+
responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("archivedAt").With(value => value.Should().BeNull());
113111
}
114112

115113
[Fact]
@@ -136,9 +134,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
136134

137135
responseDocument.Data.ManyValue.ShouldHaveCount(2);
138136
responseDocument.Data.ManyValue[0].Id.Should().Be(broadcasts[0].StringId);
139-
140-
responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("archivedAt")
141-
.With(value => value.As<DateTimeOffset?>().Should().BeCloseTo(broadcasts[0].ArchivedAt!.Value));
137+
responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("archivedAt").With(value => value.Should().Be(broadcasts[0].ArchivedAt));
142138

143139
responseDocument.Data.ManyValue[1].Id.Should().Be(broadcasts[1].StringId);
144140
responseDocument.Data.ManyValue[1].Attributes.ShouldContainKey("archivedAt").With(value => value.Should().BeNull());
@@ -204,7 +200,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
204200

205201
responseDocument.Included.ShouldHaveCount(2);
206202
responseDocument.Included[0].Id.Should().Be(station.Broadcasts.ElementAt(0).StringId);
207-
responseDocument.Included[0].Attributes.ShouldContainKey("archivedAt").With(value => value.As<DateTimeOffset?>().Should().BeCloseTo(archivedAt0));
203+
responseDocument.Included[0].Attributes.ShouldContainKey("archivedAt").With(value => value.Should().Be(archivedAt0));
208204
responseDocument.Included[1].Id.Should().Be(station.Broadcasts.ElementAt(1).StringId);
209205
responseDocument.Included[1].Attributes.ShouldContainKey("archivedAt").With(value => value.Should().BeNull());
210206
}
@@ -232,9 +228,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
232228

233229
responseDocument.Data.SingleValue.ShouldNotBeNull();
234230
responseDocument.Data.SingleValue.Id.Should().Be(comment.AppliesTo.StringId);
235-
236-
responseDocument.Data.SingleValue.Attributes.ShouldContainKey("archivedAt")
237-
.With(value => value.As<DateTimeOffset?>().Should().BeCloseTo(comment.AppliesTo.ArchivedAt!.Value));
231+
responseDocument.Data.SingleValue.Attributes.ShouldContainKey("archivedAt").With(value => value.Should().Be(comment.AppliesTo.ArchivedAt));
238232
}
239233

240234
[Fact]
@@ -286,11 +280,11 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
286280
// Assert
287281
httpResponse.Should().HaveStatusCode(HttpStatusCode.OK);
288282

283+
DateTimeOffset archivedAt0 = station.Broadcasts.ElementAt(0).ArchivedAt!.Value;
284+
289285
responseDocument.Data.ManyValue.ShouldHaveCount(2);
290286
responseDocument.Data.ManyValue[0].Id.Should().Be(station.Broadcasts.ElementAt(0).StringId);
291-
292-
responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("archivedAt").With(value =>
293-
value.As<DateTimeOffset?>().Should().BeCloseTo(station.Broadcasts.ElementAt(0).ArchivedAt!.Value));
287+
responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("archivedAt").With(value => value.Should().Be(archivedAt0));
294288

295289
responseDocument.Data.ManyValue[1].Id.Should().Be(station.Broadcasts.ElementAt(1).StringId);
296290
responseDocument.Data.ManyValue[1].Attributes.ShouldContainKey("archivedAt").With(value => value.Should().BeNull());
@@ -357,7 +351,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
357351

358352
responseDocument.Included.ShouldHaveCount(2);
359353
responseDocument.Included[0].Id.Should().Be(network.Stations.ElementAt(0).Broadcasts.ElementAt(0).StringId);
360-
responseDocument.Included[0].Attributes.ShouldContainKey("archivedAt").With(value => value.As<DateTimeOffset?>().Should().BeCloseTo(archivedAt0));
354+
responseDocument.Included[0].Attributes.ShouldContainKey("archivedAt").With(value => value.Should().Be(archivedAt0));
361355
responseDocument.Included[1].Id.Should().Be(network.Stations.ElementAt(0).Broadcasts.ElementAt(1).StringId);
362356
responseDocument.Included[1].Attributes.ShouldContainKey("archivedAt").With(value => value.Should().BeNull());
363357
}
@@ -444,10 +438,7 @@ public async Task Can_create_unarchived_resource()
444438

445439
responseDocument.Data.SingleValue.ShouldNotBeNull();
446440
responseDocument.Data.SingleValue.Attributes.ShouldContainKey("title").With(value => value.Should().Be(newBroadcast.Title));
447-
448-
responseDocument.Data.SingleValue.Attributes.ShouldContainKey("airedAt")
449-
.With(value => value.As<DateTimeOffset>().Should().BeCloseTo(newBroadcast.AiredAt));
450-
441+
responseDocument.Data.SingleValue.Attributes.ShouldContainKey("airedAt").With(value => value.Should().Be(newBroadcast.AiredAt));
451442
responseDocument.Data.SingleValue.Attributes.ShouldContainKey("archivedAt").With(value => value.Should().BeNull());
452443
}
453444

@@ -529,7 +520,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
529520
{
530521
TelevisionBroadcast broadcastInDatabase = await dbContext.Broadcasts.FirstWithIdAsync(existingBroadcast.Id);
531522

532-
broadcastInDatabase.ArchivedAt.Should().BeCloseTo(newArchivedAt);
523+
broadcastInDatabase.ArchivedAt.Should().Be(newArchivedAt);
533524
});
534525
}
535526

test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Creating/AtomicCreateResourceTests.cs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ public async Task Can_create_resource()
7676
{
7777
resource.Type.Should().Be("performers");
7878
resource.Attributes.ShouldContainKey("artistName").With(value => value.Should().Be(newArtistName));
79-
resource.Attributes.ShouldContainKey("bornAt").With(value => value.As<DateTimeOffset>().Should().BeCloseTo(newBornAt));
79+
resource.Attributes.ShouldContainKey("bornAt").With(value => value.Should().Be(newBornAt));
8080
resource.Relationships.Should().BeNull();
8181
});
8282

@@ -87,7 +87,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
8787
Performer performerInDatabase = await dbContext.Performers.FirstWithIdAsync(newPerformerId);
8888

8989
performerInDatabase.ArtistName.Should().Be(newArtistName);
90-
performerInDatabase.BornAt.Should().BeCloseTo(newBornAt);
90+
performerInDatabase.BornAt.Should().Be(newBornAt);
9191
});
9292
}
9393

@@ -147,9 +147,7 @@ public async Task Can_create_resources()
147147
.With(value => value.As<decimal?>().Should().BeApproximately(newTracks[index].LengthInSeconds));
148148

149149
resource.Attributes.ShouldContainKey("genre").With(value => value.Should().Be(newTracks[index].Genre));
150-
151-
resource.Attributes.ShouldContainKey("releasedAt")
152-
.With(value => value.As<DateTimeOffset>().Should().BeCloseTo(newTracks[index].ReleasedAt));
150+
resource.Attributes.ShouldContainKey("releasedAt").With(value => value.Should().Be(newTracks[index].ReleasedAt));
153151

154152
resource.Relationships.ShouldNotBeEmpty();
155153
});
@@ -170,7 +168,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
170168
trackInDatabase.Title.Should().Be(newTracks[index].Title);
171169
trackInDatabase.LengthInSeconds.Should().BeApproximately(newTracks[index].LengthInSeconds);
172170
trackInDatabase.Genre.Should().Be(newTracks[index].Genre);
173-
trackInDatabase.ReleasedAt.Should().BeCloseTo(newTracks[index].ReleasedAt);
171+
trackInDatabase.ReleasedAt.Should().Be(newTracks[index].ReleasedAt);
174172
}
175173
});
176174
}
@@ -214,7 +212,7 @@ public async Task Can_create_resource_without_attributes_or_relationships()
214212
{
215213
resource.Type.Should().Be("performers");
216214
resource.Attributes.ShouldContainKey("artistName").With(value => value.Should().BeNull());
217-
resource.Attributes.ShouldContainKey("bornAt").With(value => value.As<DateTimeOffset>().Should().BeCloseTo(default));
215+
resource.Attributes.ShouldContainKey("bornAt").With(value => value.Should().Be(default(DateTimeOffset)));
218216
resource.Relationships.Should().BeNull();
219217
});
220218

test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/LocalIds/AtomicLocalIdTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ public async Task Can_create_resource_with_OneToMany_relationship_using_local_ID
188188
resource.Type.Should().Be("performers");
189189
resource.Lid.Should().BeNull();
190190
resource.Attributes.ShouldContainKey("artistName").With(value => value.Should().Be(newPerformer.ArtistName));
191-
resource.Attributes.ShouldContainKey("bornAt").With(value => value.As<DateTimeOffset>().Should().BeCloseTo(newPerformer.BornAt));
191+
resource.Attributes.ShouldContainKey("bornAt").With(value => value.Should().Be(newPerformer.BornAt));
192192
});
193193

194194
responseDocument.Results[1].Data.SingleValue.ShouldNotBeNull().With(resource =>
@@ -210,7 +210,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
210210
trackInDatabase.Performers.ShouldHaveCount(1);
211211
trackInDatabase.Performers[0].Id.Should().Be(newPerformerId);
212212
trackInDatabase.Performers[0].ArtistName.Should().Be(newPerformer.ArtistName);
213-
trackInDatabase.Performers[0].BornAt.Should().BeCloseTo(newPerformer.BornAt);
213+
trackInDatabase.Performers[0].BornAt.Should().Be(newPerformer.BornAt);
214214
});
215215
}
216216

test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Updating/Resources/AtomicUpdateResourceTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -434,7 +434,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
434434
trackInDatabase.Title.Should().Be(existingTrack.Title);
435435
trackInDatabase.LengthInSeconds.Should().BeApproximately(existingTrack.LengthInSeconds);
436436
trackInDatabase.Genre.Should().Be(newGenre);
437-
trackInDatabase.ReleasedAt.Should().BeCloseTo(existingTrack.ReleasedAt);
437+
trackInDatabase.ReleasedAt.Should().Be(existingTrack.ReleasedAt);
438438

439439
trackInDatabase.OwnedBy.ShouldNotBeNull();
440440
trackInDatabase.OwnedBy.Id.Should().Be(existingTrack.OwnedBy.Id);
@@ -499,7 +499,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
499499
trackInDatabase.Title.Should().Be(newTitle);
500500
trackInDatabase.LengthInSeconds.Should().BeApproximately(newLengthInSeconds);
501501
trackInDatabase.Genre.Should().Be(newGenre);
502-
trackInDatabase.ReleasedAt.Should().BeCloseTo(newReleasedAt);
502+
trackInDatabase.ReleasedAt.Should().Be(newReleasedAt);
503503

504504
trackInDatabase.OwnedBy.ShouldNotBeNull();
505505
trackInDatabase.OwnedBy.Id.Should().Be(existingTrack.OwnedBy.Id);
@@ -700,7 +700,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
700700
Performer performerInDatabase = await dbContext.Performers.FirstWithIdAsync(existingPerformer.Id);
701701

702702
performerInDatabase.ArtistName.Should().Be(newArtistName);
703-
performerInDatabase.BornAt.Should().BeCloseTo(existingPerformer.BornAt);
703+
performerInDatabase.BornAt.Should().Be(existingPerformer.BornAt);
704704
});
705705
}
706706

test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Filtering/FilterDataTypeTests.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
160160
responseDocument.Data.ManyValue.ShouldHaveCount(1);
161161

162162
responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("someDateTimeInLocalZone")
163-
.With(value => value.As<DateTime>().Should().BeCloseTo(resource.SomeDateTimeInLocalZone));
163+
.With(value => value.Should().Be(resource.SomeDateTimeInLocalZone));
164164
}
165165

166166
[Fact]
@@ -190,7 +190,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
190190
responseDocument.Data.ManyValue.ShouldHaveCount(1);
191191

192192
responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("someDateTimeInUtcZone")
193-
.With(value => value.As<DateTime>().Should().BeCloseTo(resource.SomeDateTimeInUtcZone));
193+
.With(value => value.Should().Be(resource.SomeDateTimeInUtcZone));
194194
}
195195

196196
[Fact]
@@ -218,9 +218,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
218218
httpResponse.Should().HaveStatusCode(HttpStatusCode.OK);
219219

220220
responseDocument.Data.ManyValue.ShouldHaveCount(1);
221-
222-
responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("someDateTimeOffset")
223-
.With(value => value.As<DateTimeOffset>().Should().BeCloseTo(resource.SomeDateTimeOffset));
221+
responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("someDateTimeOffset").With(value => value.Should().Be(resource.SomeDateTimeOffset));
224222
}
225223

226224
[Fact]

test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Filtering/FilterOperatorTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -384,7 +384,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
384384
responseDocument.Data.ManyValue.ShouldHaveCount(1);
385385

386386
responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("someDateTimeInLocalZone")
387-
.With(value => value.As<DateTime>().Should().BeCloseTo(resource.SomeDateTimeInLocalZone));
387+
.With(value => value.Should().Be(resource.SomeDateTimeInLocalZone));
388388
}
389389

390390
[Theory]
@@ -428,7 +428,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
428428
responseDocument.Data.ManyValue.ShouldHaveCount(1);
429429

430430
responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("someDateTimeInUtcZone")
431-
.With(value => value.As<DateTime>().Should().BeCloseTo(resource.SomeDateTimeInUtcZone));
431+
.With(value => value.Should().Be(resource.SomeDateTimeInUtcZone));
432432
}
433433

434434
[Theory]

test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Includes/IncludeTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
225225
responseDocument.Included.ShouldHaveCount(1);
226226
responseDocument.Included[0].Type.Should().Be("comments");
227227
responseDocument.Included[0].Id.Should().Be(post.Comments.Single().StringId);
228-
responseDocument.Included[0].Attributes.ShouldContainKey("createdAt").With(value => value.As<DateTime>().Should().BeCloseTo(createdAt));
228+
responseDocument.Included[0].Attributes.ShouldContainKey("createdAt").With(value => value.Should().Be(createdAt));
229229
}
230230

231231
[Fact]
@@ -371,7 +371,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
371371

372372
responseDocument.Included[1].Type.Should().Be("comments");
373373
responseDocument.Included[1].Id.Should().Be(blog.Posts[0].Comments.Single().StringId);
374-
responseDocument.Included[1].Attributes.ShouldContainKey("createdAt").With(value => value.As<DateTime>().Should().BeCloseTo(createdAt));
374+
responseDocument.Included[1].Attributes.ShouldContainKey("createdAt").With(value => value.Should().Be(createdAt));
375375
}
376376

377377
[Fact]

test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/QueryStringFakers.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,14 @@ internal sealed class QueryStringFakers : FakerContainer
4040
.RuleFor(webAccount => webAccount.UserName, faker => faker.Person.UserName)
4141
.RuleFor(webAccount => webAccount.Password, faker => faker.Internet.Password())
4242
.RuleFor(webAccount => webAccount.DisplayName, faker => faker.Person.FullName)
43-
.RuleFor(webAccount => webAccount.DateOfBirth, faker => faker.Person.DateOfBirth)
43+
.RuleFor(webAccount => webAccount.DateOfBirth, faker => faker.Person.DateOfBirth.TruncateToWholeMilliseconds())
4444
.RuleFor(webAccount => webAccount.EmailAddress, faker => faker.Internet.Email()));
4545

4646
private readonly Lazy<Faker<LoginAttempt>> _lazyLoginAttemptFaker = new(() =>
4747
new Faker<LoginAttempt>()
4848
.UseSeed(GetFakerSeed())
49-
.RuleFor(loginAttempt => loginAttempt.TriedAt, faker => faker.Date.PastOffset())
49+
.RuleFor(loginAttempt => loginAttempt.TriedAt, faker => faker.Date.PastOffset()
50+
.TruncateToWholeMilliseconds())
5051
.RuleFor(loginAttempt => loginAttempt.IsSucceeded, faker => faker.Random.Bool()));
5152

5253
private readonly Lazy<Faker<AccountPreferences>> _lazyAccountPreferencesFaker = new(() =>

test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/SparseFieldSets/SparseFieldSetTests.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -593,13 +593,11 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
593593

594594
responseDocument.Included.ShouldHaveCount(2);
595595

596-
DateTime dateOfBirth = blog.Owner.DateOfBirth!.Value;
597-
598596
responseDocument.Included[0].Type.Should().Be("webAccounts");
599597
responseDocument.Included[0].Id.Should().Be(blog.Owner.StringId);
600598
responseDocument.Included[0].Attributes.ShouldContainKey("userName").With(value => value.Should().Be(blog.Owner.UserName));
601599
responseDocument.Included[0].Attributes.ShouldContainKey("displayName").With(value => value.Should().Be(blog.Owner.DisplayName));
602-
responseDocument.Included[0].Attributes.ShouldContainKey("dateOfBirth").With(value => value.As<DateTime?>().Should().BeCloseTo(dateOfBirth));
600+
responseDocument.Included[0].Attributes.ShouldContainKey("dateOfBirth").With(value => value.Should().Be(blog.Owner.DateOfBirth));
603601

604602
responseDocument.Included[0].Relationships.ShouldContainKey("posts").With(value =>
605603
{

0 commit comments

Comments
 (0)