Skip to content

Commit f97efbc

Browse files
committed
Simplify some assertions
1 parent 32b2624 commit f97efbc

30 files changed

+369
-344
lines changed

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

+13-13
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ public async Task Cannot_create_resource_with_unknown_attribute()
261261
error.Detail.Should().Be("Attribute 'doesNotExist' does not exist on resource type 'playlists'.");
262262
error.Source.Should().NotBeNull();
263263
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/attributes/doesNotExist");
264-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
264+
error.Meta.Should().HaveRequestBody();
265265
}
266266

267267
[Fact]
@@ -366,7 +366,7 @@ public async Task Cannot_create_resource_with_unknown_relationship()
366366
error.Detail.Should().Be("Relationship 'doesNotExist' does not exist on resource type 'lyrics'.");
367367
error.Source.Should().NotBeNull();
368368
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/doesNotExist");
369-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
369+
error.Meta.Should().HaveRequestBody();
370370
}
371371

372372
[Fact]
@@ -478,7 +478,7 @@ public async Task Cannot_create_resource_with_client_generated_ID()
478478
error.Detail.Should().BeNull();
479479
error.Source.Should().NotBeNull();
480480
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/id");
481-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
481+
error.Meta.Should().HaveRequestBody();
482482
}
483483

484484
[Fact]
@@ -513,7 +513,7 @@ public async Task Cannot_create_resource_for_href_element()
513513
error.Detail.Should().BeNull();
514514
error.Source.Should().NotBeNull();
515515
error.Source.Pointer.Should().Be("/atomic:operations[0]/href");
516-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
516+
error.Meta.Should().HaveRequestBody();
517517
}
518518

519519
[Fact]
@@ -551,7 +551,7 @@ public async Task Cannot_create_resource_for_ref_element()
551551
error.Detail.Should().BeNull();
552552
error.Source.Should().NotBeNull();
553553
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref");
554-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
554+
error.Meta.Should().HaveRequestBody();
555555
}
556556

557557
[Fact]
@@ -585,7 +585,7 @@ public async Task Cannot_create_resource_for_missing_data()
585585
error.Detail.Should().BeNull();
586586
error.Source.Should().NotBeNull();
587587
error.Source.Pointer.Should().Be("/atomic:operations[0]");
588-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
588+
error.Meta.Should().HaveRequestBody();
589589
}
590590

591591
[Fact]
@@ -620,7 +620,7 @@ public async Task Cannot_create_resource_for_null_data()
620620
error.Detail.Should().BeNull();
621621
error.Source.Should().NotBeNull();
622622
error.Source.Pointer.Should().Be("/atomic:operations[0]/data");
623-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
623+
error.Meta.Should().HaveRequestBody();
624624
}
625625

626626
[Fact]
@@ -667,7 +667,7 @@ public async Task Cannot_create_resource_for_array_data()
667667
error.Detail.Should().BeNull();
668668
error.Source.Should().NotBeNull();
669669
error.Source.Pointer.Should().Be("/atomic:operations[0]/data");
670-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
670+
error.Meta.Should().HaveRequestBody();
671671
}
672672

673673
[Fact]
@@ -707,7 +707,7 @@ public async Task Cannot_create_resource_for_missing_type()
707707
error.Detail.Should().BeNull();
708708
error.Source.Should().NotBeNull();
709709
error.Source.Pointer.Should().Be("/atomic:operations[0]/data");
710-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
710+
error.Meta.Should().HaveRequestBody();
711711
}
712712

713713
[Fact]
@@ -745,7 +745,7 @@ public async Task Cannot_create_resource_for_unknown_type()
745745
error.Detail.Should().Be($"Resource type '{Unknown.ResourceType}' does not exist.");
746746
error.Source.Should().NotBeNull();
747747
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/type");
748-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
748+
error.Meta.Should().HaveRequestBody();
749749
}
750750

751751
[Fact]
@@ -790,7 +790,7 @@ public async Task Cannot_create_resource_with_readonly_attribute()
790790
error.Detail.Should().Be("Attribute 'isArchived' on resource type 'playlists' is read-only.");
791791
error.Source.Should().NotBeNull();
792792
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/attributes/isArchived");
793-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
793+
error.Meta.Should().HaveRequestBody();
794794
}
795795

796796
[Fact]
@@ -832,7 +832,7 @@ public async Task Cannot_create_resource_with_incompatible_attribute_value()
832832
error.Detail.Should().Be("Failed to convert attribute 'bornAt' with value '12345' of type 'Number' to type 'DateTimeOffset'.");
833833
error.Source.Should().NotBeNull();
834834
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/attributes/bornAt");
835-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
835+
error.Meta.Should().HaveRequestBody();
836836
}
837837

838838
[Fact]
@@ -985,6 +985,6 @@ public async Task Cannot_assign_attribute_with_blocked_capability()
985985
error.Detail.Should().Be("The attribute 'createdAt' on resource type 'lyrics' cannot be assigned to.");
986986
error.Source.Should().NotBeNull();
987987
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/attributes/createdAt");
988-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
988+
error.Meta.Should().HaveRequestBody();
989989
}
990990
}

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

+4-4
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ public async Task Cannot_create_resource_for_missing_client_generated_ID(ClientI
247247
error.Detail.Should().BeNull();
248248
error.Source.Should().NotBeNull();
249249
error.Source.Pointer.Should().Be("/atomic:operations[0]/data");
250-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
250+
error.Meta.Should().HaveRequestBody();
251251
}
252252

253253
[Theory]
@@ -356,7 +356,7 @@ public async Task Cannot_create_resource_for_incompatible_ID(ClientIdGenerationM
356356
error.Detail.Should().Be($"Failed to convert '{guid}' of type 'String' to type 'Int32'.");
357357
error.Source.Should().NotBeNull();
358358
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/id");
359-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
359+
error.Meta.Should().HaveRequestBody();
360360
}
361361

362362
[Theory]
@@ -456,7 +456,7 @@ public async Task Cannot_create_resource_with_local_ID(ClientIdGenerationMode mo
456456
error.Detail.Should().BeNull();
457457
error.Source.Should().NotBeNull();
458458
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/lid");
459-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
459+
error.Meta.Should().HaveRequestBody();
460460
}
461461

462462
[Theory]
@@ -501,6 +501,6 @@ public async Task Cannot_create_resource_for_ID_and_local_ID(ClientIdGenerationM
501501
error.Detail.Should().BeNull();
502502
error.Source.Should().NotBeNull();
503503
error.Source.Pointer.Should().Be("/atomic:operations[0]/data");
504-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
504+
error.Meta.Should().HaveRequestBody();
505505
}
506506
}

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

+8-8
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ public async Task Cannot_create_for_missing_relationship_type()
238238
error.Detail.Should().BeNull();
239239
error.Source.Should().NotBeNull();
240240
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/performers/data[0]");
241-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
241+
error.Meta.Should().HaveRequestBody();
242242
}
243243

244244
[Fact]
@@ -290,7 +290,7 @@ public async Task Cannot_create_for_unknown_relationship_type()
290290
error.Detail.Should().Be($"Resource type '{Unknown.ResourceType}' does not exist.");
291291
error.Source.Should().NotBeNull();
292292
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/performers/data[0]/type");
293-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
293+
error.Meta.Should().HaveRequestBody();
294294
}
295295

296296
[Fact]
@@ -341,7 +341,7 @@ public async Task Cannot_create_for_missing_relationship_ID()
341341
error.Detail.Should().BeNull();
342342
error.Source.Should().NotBeNull();
343343
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/performers/data[0]");
344-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
344+
error.Meta.Should().HaveRequestBody();
345345
}
346346

347347
[Fact]
@@ -467,7 +467,7 @@ public async Task Cannot_create_on_relationship_type_mismatch()
467467
error.Detail.Should().Be("Type 'playlists' is not convertible to type 'performers' of relationship 'performers'.");
468468
error.Source.Should().NotBeNull();
469469
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/performers/data[0]/type");
470-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
470+
error.Meta.Should().HaveRequestBody();
471471
}
472472

473473
[Fact]
@@ -590,7 +590,7 @@ public async Task Cannot_create_with_missing_data_in_OneToMany_relationship()
590590
error.Detail.Should().BeNull();
591591
error.Source.Should().NotBeNull();
592592
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/performers");
593-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
593+
error.Meta.Should().HaveRequestBody();
594594
}
595595

596596
[Fact]
@@ -635,7 +635,7 @@ public async Task Cannot_create_with_null_data_in_ManyToMany_relationship()
635635
error.Detail.Should().BeNull();
636636
error.Source.Should().NotBeNull();
637637
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/tracks/data");
638-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
638+
error.Meta.Should().HaveRequestBody();
639639
}
640640

641641
[Fact]
@@ -682,7 +682,7 @@ public async Task Cannot_create_with_object_data_in_ManyToMany_relationship()
682682
error.Detail.Should().BeNull();
683683
error.Source.Should().NotBeNull();
684684
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/tracks/data");
685-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
685+
error.Meta.Should().HaveRequestBody();
686686
}
687687

688688
[Fact]
@@ -734,6 +734,6 @@ public async Task Cannot_assign_relationship_with_blocked_capability()
734734
error.Detail.Should().Be("The relationship 'occursIn' on resource type 'musicTracks' cannot be assigned to.");
735735
error.Source.Should().NotBeNull();
736736
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/occursIn");
737-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
737+
error.Meta.Should().HaveRequestBody();
738738
}
739739
}

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

+8-8
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,7 @@ public async Task Cannot_create_for_null_relationship()
304304
error.Detail.Should().BeNull();
305305
error.Source.Should().NotBeNull();
306306
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/lyric");
307-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
307+
error.Meta.Should().HaveRequestBody();
308308
}
309309

310310
[Fact]
@@ -348,7 +348,7 @@ public async Task Cannot_create_for_missing_data_in_relationship()
348348
error.Detail.Should().BeNull();
349349
error.Source.Should().NotBeNull();
350350
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/lyric");
351-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
351+
error.Meta.Should().HaveRequestBody();
352352
}
353353

354354
[Fact]
@@ -400,7 +400,7 @@ public async Task Cannot_create_for_array_data_in_relationship()
400400
error.Detail.Should().BeNull();
401401
error.Source.Should().NotBeNull();
402402
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/lyric/data");
403-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
403+
error.Meta.Should().HaveRequestBody();
404404
}
405405

406406
[Fact]
@@ -448,7 +448,7 @@ public async Task Cannot_create_for_missing_relationship_type()
448448
error.Detail.Should().BeNull();
449449
error.Source.Should().NotBeNull();
450450
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/lyric/data");
451-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
451+
error.Meta.Should().HaveRequestBody();
452452
}
453453

454454
[Fact]
@@ -497,7 +497,7 @@ public async Task Cannot_create_for_unknown_relationship_type()
497497
error.Detail.Should().Be($"Resource type '{Unknown.ResourceType}' does not exist.");
498498
error.Source.Should().NotBeNull();
499499
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/lyric/data/type");
500-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
500+
error.Meta.Should().HaveRequestBody();
501501
}
502502

503503
[Fact]
@@ -545,7 +545,7 @@ public async Task Cannot_create_for_missing_relationship_ID()
545545
error.Detail.Should().BeNull();
546546
error.Source.Should().NotBeNull();
547547
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/lyric/data");
548-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
548+
error.Meta.Should().HaveRequestBody();
549549
}
550550

551551
[Fact]
@@ -651,7 +651,7 @@ public async Task Cannot_create_on_relationship_type_mismatch()
651651
error.Detail.Should().Be("Type 'playlists' is not convertible to type 'lyrics' of relationship 'lyric'.");
652652
error.Source.Should().NotBeNull();
653653
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/lyric/data/type");
654-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
654+
error.Meta.Should().HaveRequestBody();
655655
}
656656

657657
[Fact]
@@ -781,6 +781,6 @@ public async Task Cannot_assign_relationship_with_blocked_capability()
781781
error.Detail.Should().Be("The relationship 'language' on resource type 'lyrics' cannot be assigned to.");
782782
error.Source.Should().NotBeNull();
783783
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/language");
784-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
784+
error.Meta.Should().HaveRequestBody();
785785
}
786786
}

test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Deleting/AtomicDeleteResourceTests.cs

+7-7
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,7 @@ public async Task Cannot_delete_resource_for_href_element()
355355
error.Detail.Should().BeNull();
356356
error.Source.Should().NotBeNull();
357357
error.Source.Pointer.Should().Be("/atomic:operations[0]/href");
358-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
358+
error.Meta.Should().HaveRequestBody();
359359
}
360360

361361
[Fact]
@@ -389,7 +389,7 @@ public async Task Cannot_delete_resource_for_missing_ref_element()
389389
error.Detail.Should().BeNull();
390390
error.Source.Should().NotBeNull();
391391
error.Source.Pointer.Should().Be("/atomic:operations[0]");
392-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
392+
error.Meta.Should().HaveRequestBody();
393393
}
394394

395395
[Fact]
@@ -427,7 +427,7 @@ public async Task Cannot_delete_resource_for_missing_type()
427427
error.Detail.Should().BeNull();
428428
error.Source.Should().NotBeNull();
429429
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref");
430-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
430+
error.Meta.Should().HaveRequestBody();
431431
}
432432

433433
[Fact]
@@ -466,7 +466,7 @@ public async Task Cannot_delete_resource_for_unknown_type()
466466
error.Detail.Should().Be($"Resource type '{Unknown.ResourceType}' does not exist.");
467467
error.Source.Should().NotBeNull();
468468
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref/type");
469-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
469+
error.Meta.Should().HaveRequestBody();
470470
}
471471

472472
[Fact]
@@ -504,7 +504,7 @@ public async Task Cannot_delete_resource_for_missing_ID()
504504
error.Detail.Should().BeNull();
505505
error.Source.Should().NotBeNull();
506506
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref");
507-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
507+
error.Meta.Should().HaveRequestBody();
508508
}
509509

510510
[Fact]
@@ -586,7 +586,7 @@ public async Task Cannot_delete_resource_for_incompatible_ID()
586586
error.Detail.Should().Be($"Failed to convert '{guid}' of type 'String' to type 'Int64'.");
587587
error.Source.Should().NotBeNull();
588588
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref/id");
589-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
589+
error.Meta.Should().HaveRequestBody();
590590
}
591591

592592
[Fact]
@@ -626,6 +626,6 @@ public async Task Cannot_delete_resource_for_ID_and_local_ID()
626626
error.Detail.Should().BeNull();
627627
error.Source.Should().NotBeNull();
628628
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref");
629-
error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
629+
error.Meta.Should().HaveRequestBody();
630630
}
631631
}

0 commit comments

Comments
 (0)