diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
index 4ae453e0c4..c1d943c0d0 100644
--- a/.config/dotnet-tools.json
+++ b/.config/dotnet-tools.json
@@ -3,7 +3,7 @@
"isRoot": true,
"tools": {
"jetbrains.resharper.globaltools": {
- "version": "2024.3.5",
+ "version": "2024.3.6",
"commands": [
"jb"
],
diff --git a/package-versions.props b/package-versions.props
index 2a26bd7b7a..e7c32c98fa 100644
--- a/package-versions.props
+++ b/package-versions.props
@@ -11,7 +11,7 @@
4.12.*
6.0.*
2.1.*
- 7.0.*
+ 7.2.*
2.4.*
2.0.*
9.0.*
diff --git a/test/DapperTests/IntegrationTests/AtomicOperations/AtomicOperationsTests.cs b/test/DapperTests/IntegrationTests/AtomicOperations/AtomicOperationsTests.cs
index bec6919496..64acaaa57f 100644
--- a/test/DapperTests/IntegrationTests/AtomicOperations/AtomicOperationsTests.cs
+++ b/test/DapperTests/IntegrationTests/AtomicOperations/AtomicOperationsTests.cs
@@ -168,20 +168,20 @@ public async Task Can_use_multiple_operations()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(7);
+ responseDocument.Results.Should().HaveCount(7);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource => resource.Type.Should().Be("people"));
- responseDocument.Results[1].Data.SingleValue.ShouldNotBeNull().With(resource => resource.Type.Should().Be("people"));
- responseDocument.Results[2].Data.SingleValue.ShouldNotBeNull().With(resource => resource.Type.Should().Be("tags"));
- responseDocument.Results[3].Data.SingleValue.ShouldNotBeNull().With(resource => resource.Type.Should().Be("todoItems"));
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.Type.Should().Be("people");
+ responseDocument.Results[1].Data.SingleValue.RefShould().NotBeNull().And.Subject.Type.Should().Be("people");
+ responseDocument.Results[2].Data.SingleValue.RefShould().NotBeNull().And.Subject.Type.Should().Be("tags");
+ responseDocument.Results[3].Data.SingleValue.RefShould().NotBeNull().And.Subject.Type.Should().Be("todoItems");
responseDocument.Results[4].Data.Value.Should().BeNull();
- responseDocument.Results[5].Data.SingleValue.ShouldNotBeNull().With(resource => resource.Type.Should().Be("todoItems"));
+ responseDocument.Results[5].Data.SingleValue.RefShould().NotBeNull().And.Subject.Type.Should().Be("todoItems");
responseDocument.Results[6].Data.Value.Should().BeNull();
- long newOwnerId = long.Parse(responseDocument.Results[0].Data.SingleValue!.Id.ShouldNotBeNull());
- long newAssigneeId = long.Parse(responseDocument.Results[1].Data.SingleValue!.Id.ShouldNotBeNull());
- long newTagId = long.Parse(responseDocument.Results[2].Data.SingleValue!.Id.ShouldNotBeNull());
- long newTodoItemId = long.Parse(responseDocument.Results[3].Data.SingleValue!.Id.ShouldNotBeNull());
+ long newOwnerId = long.Parse(responseDocument.Results[0].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
+ long newAssigneeId = long.Parse(responseDocument.Results[1].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
+ long newTagId = long.Parse(responseDocument.Results[2].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
+ long newTodoItemId = long.Parse(responseDocument.Results[3].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
@@ -203,14 +203,14 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
todoItemInDatabase.CreatedAt.Should().Be(DapperTestContext.FrozenTime);
todoItemInDatabase.LastModifiedAt.Should().Be(DapperTestContext.FrozenTime);
- todoItemInDatabase.Owner.ShouldNotBeNull();
+ todoItemInDatabase.Owner.Should().NotBeNull();
todoItemInDatabase.Owner.Id.Should().Be(newOwnerId);
todoItemInDatabase.Assignee.Should().BeNull();
- todoItemInDatabase.Tags.ShouldHaveCount(1);
+ todoItemInDatabase.Tags.Should().HaveCount(1);
todoItemInDatabase.Tags.ElementAt(0).Id.Should().Be(newTagId);
});
- store.SqlCommands.ShouldHaveCount(15);
+ store.SqlCommands.Should().HaveCount(15);
store.SqlCommands[0].With(command =>
{
@@ -220,7 +220,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
RETURNING "Id"
"""));
- command.Parameters.ShouldHaveCount(3);
+ command.Parameters.Should().HaveCount(3);
command.Parameters.Should().Contain("@p1", newOwner.FirstName);
command.Parameters.Should().Contain("@p2", newOwner.LastName);
command.Parameters.Should().Contain("@p3", null);
@@ -234,7 +234,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", newOwnerId);
});
@@ -246,7 +246,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
RETURNING "Id"
"""));
- command.Parameters.ShouldHaveCount(3);
+ command.Parameters.Should().HaveCount(3);
command.Parameters.Should().Contain("@p1", newAssignee.FirstName);
command.Parameters.Should().Contain("@p2", newAssignee.LastName);
command.Parameters.Should().Contain("@p3", null);
@@ -260,7 +260,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", newAssigneeId);
});
@@ -272,7 +272,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
RETURNING "Id"
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", newTag.Name);
command.Parameters.Should().Contain("@p2", null);
});
@@ -285,7 +285,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", newTagId);
});
@@ -297,7 +297,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
RETURNING "Id"
"""));
- command.Parameters.ShouldHaveCount(7);
+ command.Parameters.Should().HaveCount(7);
command.Parameters.Should().Contain("@p1", newTodoItem.Description);
command.Parameters.Should().Contain("@p2", newTodoItem.Priority);
command.Parameters.Should().Contain("@p3", newTodoItem.DurationInHours);
@@ -315,7 +315,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", newTodoItemId);
});
@@ -328,7 +328,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", newTodoItemId);
});
@@ -340,7 +340,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE "Id" = @p2
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", newAssigneeId);
command.Parameters.Should().Contain("@p2", newTodoItemId);
});
@@ -354,7 +354,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", newTodoItemId);
});
@@ -366,7 +366,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE "Id" = @p2
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", DapperTestContext.FrozenTime);
command.Parameters.Should().Contain("@p2", newTodoItemId);
});
@@ -379,7 +379,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE "Id" = @p2
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", newTodoItemId);
command.Parameters.Should().Contain("@p2", newTagId);
});
@@ -392,7 +392,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", newTodoItemId);
});
@@ -403,7 +403,7 @@ DELETE FROM "People"
WHERE "Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", newAssigneeId);
});
}
@@ -469,13 +469,13 @@ public async Task Can_rollback_on_error()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
error.Title.Should().Be("A related resource does not exist.");
error.Detail.Should().Be($"Related resource of type 'todoItems' with ID '{unknownTodoItemId}' in relationship 'assignedTodoItems' does not exist.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[1]");
await _testContext.RunOnDatabaseAsync(async dbContext =>
@@ -484,7 +484,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
peopleInDatabase.Should().BeEmpty();
});
- store.SqlCommands.ShouldHaveCount(5);
+ store.SqlCommands.Should().HaveCount(5);
store.SqlCommands[0].With(command =>
{
@@ -494,7 +494,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
RETURNING "Id"
"""));
- command.Parameters.ShouldHaveCount(3);
+ command.Parameters.Should().HaveCount(3);
command.Parameters.Should().Contain("@p1", null);
command.Parameters.Should().Contain("@p2", newPerson.LastName);
command.Parameters.Should().Contain("@p3", null);
@@ -508,8 +508,8 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
- command.Parameters.ShouldContainKey("@p1").With(value => value.ShouldNotBeNull());
+ command.Parameters.Should().HaveCount(1);
+ command.Parameters.Should().ContainKey("@p1").WhoseValue.Should().NotBeNull();
});
store.SqlCommands[2].With(command =>
@@ -521,8 +521,8 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
- command.Parameters.ShouldContainKey("@p1").With(value => value.ShouldNotBeNull());
+ command.Parameters.Should().HaveCount(1);
+ command.Parameters.Should().ContainKey("@p1").WhoseValue.Should().NotBeNull();
});
store.SqlCommands[3].With(command =>
@@ -533,8 +533,8 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE "Id" = @p2
"""));
- command.Parameters.ShouldHaveCount(2);
- command.Parameters.ShouldContainKey("@p1").With(value => value.ShouldNotBeNull());
+ command.Parameters.Should().HaveCount(2);
+ command.Parameters.Should().ContainKey("@p1").WhoseValue.Should().NotBeNull();
command.Parameters.Should().Contain("@p2", unknownTodoItemId);
});
@@ -546,7 +546,7 @@ SELECT t1."Id"
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", unknownTodoItemId);
});
}
diff --git a/test/DapperTests/IntegrationTests/QueryStrings/FilterTests.cs b/test/DapperTests/IntegrationTests/QueryStrings/FilterTests.cs
index 03ebd81bd9..f7da3533f9 100644
--- a/test/DapperTests/IntegrationTests/QueryStrings/FilterTests.cs
+++ b/test/DapperTests/IntegrationTests/QueryStrings/FilterTests.cs
@@ -50,13 +50,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Type.Should().Be("tags");
responseDocument.Data.ManyValue[0].Id.Should().Be(tags[1].StringId);
responseDocument.Meta.Should().ContainTotal(1);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -67,7 +67,7 @@ SELECT COUNT(*)
WHERE t2."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", 0x00FF00);
});
@@ -81,7 +81,7 @@ SELECT COUNT(*)
ORDER BY t1."Id"
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", 0x00FF00);
});
}
@@ -115,13 +115,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Type.Should().Be("tags");
responseDocument.Data.ManyValue[0].Id.Should().Be(tags[1].StringId);
responseDocument.Meta.Should().ContainTotal(1);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -132,7 +132,7 @@ SELECT COUNT(*)
WHERE t2."Id" IN (@p1, @p2)
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", 0x00FF00);
command.Parameters.Should().Contain("@p2", 0x11EE11);
});
@@ -147,7 +147,7 @@ SELECT COUNT(*)
ORDER BY t1."Id"
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", 0x00FF00);
command.Parameters.Should().Contain("@p2", 0x11EE11);
});
@@ -178,13 +178,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Type.Should().Be("todoItems");
responseDocument.Data.ManyValue[0].Id.Should().Be(person.OwnedTodoItems.ElementAt(1).StringId);
responseDocument.Meta.Should().ContainTotal(1);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -196,7 +196,7 @@ SELECT COUNT(*)
WHERE (t2."Id" = @p1) AND (t3."Id" IS NULL)
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", person.Id);
});
@@ -215,7 +215,7 @@ WHERE t3."Id" IS NULL
ORDER BY t4."Priority", t4."LastModifiedAt" DESC
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", person.Id);
});
}
@@ -245,13 +245,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Type.Should().Be("todoItems");
responseDocument.Data.ManyValue[0].Id.Should().Be(person.OwnedTodoItems.ElementAt(1).StringId);
responseDocument.Meta.Should().ContainTotal(1);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -262,7 +262,7 @@ SELECT COUNT(*)
WHERE (t2."Id" = @p1) AND (t1."DurationInHours" IS NULL)
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", person.Id);
});
@@ -280,7 +280,7 @@ WHERE t2."DurationInHours" IS NULL
ORDER BY t3."Priority", t3."LastModifiedAt" DESC
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", person.Id);
});
}
@@ -313,13 +313,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Type.Should().Be("todoItems");
responseDocument.Data.ManyValue[0].Id.Should().Be(todoItems[1].StringId);
responseDocument.Meta.Should().ContainTotal(1);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -329,7 +329,7 @@ SELECT COUNT(*)
WHERE t1."Priority" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", todoItems[1].Priority);
});
@@ -342,7 +342,7 @@ SELECT COUNT(*)
ORDER BY t1."Priority", t1."LastModifiedAt" DESC
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", todoItems[1].Priority);
});
}
@@ -375,13 +375,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Type.Should().Be("todoItems");
responseDocument.Data.ManyValue[0].Id.Should().Be(person.AssignedTodoItems.ElementAt(1).StringId);
responseDocument.Meta.Should().ContainTotal(1);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -392,7 +392,7 @@ SELECT COUNT(*)
WHERE (t2."Id" = @p1) AND (t1."Description" = @p2)
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", person.Id);
command.Parameters.Should().Contain("@p2", person.AssignedTodoItems.ElementAt(1).Description);
});
@@ -411,7 +411,7 @@ LEFT JOIN (
ORDER BY t3."Priority", t3."LastModifiedAt" DESC
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", person.Id);
command.Parameters.Should().Contain("@p2", person.AssignedTodoItems.ElementAt(1).Description);
});
@@ -445,13 +445,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Type.Should().Be("todoItems");
responseDocument.Data.ManyValue[0].Id.Should().Be(todoItems[1].StringId);
responseDocument.Meta.Should().ContainTotal(1);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -506,13 +506,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Type.Should().Be("todoItems");
responseDocument.Data.ManyValue[0].Id.Should().Be(person.OwnedTodoItems.ElementAt(1).StringId);
responseDocument.Meta.Should().ContainTotal(1);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -523,7 +523,7 @@ SELECT COUNT(*)
WHERE (t2."Id" = @p1) AND (t1."Priority" = @p2)
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", person.Id);
command.Parameters.Should().Contain("@p2", TodoItemPriority.Medium);
});
@@ -542,7 +542,7 @@ LEFT JOIN (
ORDER BY t3."Priority", t3."LastModifiedAt" DESC
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", person.Id);
command.Parameters.Should().Contain("@p2", TodoItemPriority.Medium);
});
@@ -574,13 +574,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Type.Should().Be("todoItems");
responseDocument.Data.ManyValue[0].Id.Should().Be(todoItem.StringId);
responseDocument.Meta.Should().ContainTotal(1);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -590,7 +590,7 @@ SELECT COUNT(*)
WHERE t1."Description" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", "X");
});
@@ -603,7 +603,7 @@ SELECT COUNT(*)
ORDER BY t1."Priority", t1."LastModifiedAt" DESC
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", "X");
});
}
@@ -635,14 +635,14 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(2);
+ responseDocument.Data.ManyValue.Should().HaveCount(2);
responseDocument.Data.ManyValue.Should().AllSatisfy(resource => resource.Type.Should().Be("people"));
responseDocument.Data.ManyValue.Should().ContainSingle(resource => resource.Id == people[1].StringId);
responseDocument.Data.ManyValue.Should().ContainSingle(resource => resource.Id == people[2].StringId);
responseDocument.Meta.Should().ContainTotal(2);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -652,7 +652,7 @@ SELECT COUNT(*)
WHERE (NOT (t1."FirstName" = @p1)) OR (t1."FirstName" IS NULL)
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", "X");
});
@@ -665,7 +665,7 @@ SELECT COUNT(*)
ORDER BY t1."Id"
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", "X");
});
}
@@ -699,13 +699,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Type.Should().Be("todoItems");
responseDocument.Data.ManyValue[0].Id.Should().Be(todoItems[0].StringId);
responseDocument.Meta.Should().ContainTotal(1);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -716,7 +716,7 @@ SELECT COUNT(*)
WHERE (NOT ((t2."FirstName" = @p1) AND (t2."LastName" = @p2))) OR (t2."FirstName" IS NULL) OR (t2."LastName" IS NULL)
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", "X");
command.Parameters.Should().Contain("@p2", "Y");
});
@@ -731,7 +731,7 @@ SELECT COUNT(*)
ORDER BY t1."Priority", t1."LastModifiedAt" DESC
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", "X");
command.Parameters.Should().Contain("@p2", "Y");
});
@@ -768,13 +768,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Type.Should().Be("todoItems");
responseDocument.Data.ManyValue[0].Id.Should().Be(todoItems[1].StringId);
responseDocument.Meta.Should().ContainTotal(1);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -785,7 +785,7 @@ SELECT COUNT(*)
WHERE (t1."Description" LIKE 'T%') AND (NOT (t1."Description" IN (@p1, @p2))) AND (t2."FirstName" = @p3) AND (t1."Description" LIKE '%o%')
"""));
- command.Parameters.ShouldHaveCount(3);
+ command.Parameters.Should().HaveCount(3);
command.Parameters.Should().Contain("@p1", "Four");
command.Parameters.Should().Contain("@p2", "Three");
command.Parameters.Should().Contain("@p3", "Jack");
@@ -801,7 +801,7 @@ SELECT COUNT(*)
ORDER BY t1."Priority", t1."LastModifiedAt" DESC
"""));
- command.Parameters.ShouldHaveCount(3);
+ command.Parameters.Should().HaveCount(3);
command.Parameters.Should().Contain("@p1", "Four");
command.Parameters.Should().Contain("@p2", "Three");
command.Parameters.Should().Contain("@p3", "Jack");
@@ -838,7 +838,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(5);
+ responseDocument.Data.ManyValue.Should().HaveCount(5);
responseDocument.Data.ManyValue.Should().AllSatisfy(resource => resource.Type.Should().Be("tags"));
responseDocument.Data.ManyValue.Should().ContainSingle(resource => resource.Id == tags[0].StringId);
responseDocument.Data.ManyValue.Should().ContainSingle(resource => resource.Id == tags[1].StringId);
@@ -848,7 +848,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Meta.Should().ContainTotal(5);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -903,14 +903,14 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(2);
+ responseDocument.Data.ManyValue.Should().HaveCount(2);
responseDocument.Data.ManyValue.Should().AllSatisfy(resource => resource.Type.Should().Be("todoItems"));
responseDocument.Data.ManyValue.Should().ContainSingle(resource => resource.Id == todoItems[0].StringId);
responseDocument.Data.ManyValue.Should().ContainSingle(resource => resource.Id == todoItems[2].StringId);
responseDocument.Meta.Should().ContainTotal(2);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -920,7 +920,7 @@ SELECT COUNT(*)
WHERE (t1."DurationInHours" > @p1) OR (t1."DurationInHours" <= @p2)
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", 250);
command.Parameters.Should().Contain("@p2", 100);
});
@@ -934,7 +934,7 @@ SELECT COUNT(*)
ORDER BY t1."Priority", t1."LastModifiedAt" DESC
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", 250);
command.Parameters.Should().Contain("@p2", 100);
});
@@ -968,13 +968,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Type.Should().Be("todoItems");
responseDocument.Data.ManyValue[0].Id.Should().Be(todoItems[1].StringId);
responseDocument.Meta.Should().ContainTotal(1);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -990,7 +990,7 @@ SELECT COUNT(*)
) > @p1) AND (NOT (t4."Id" IS NULL))
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", 1);
});
@@ -1009,7 +1009,7 @@ SELECT COUNT(*)
ORDER BY t1."Priority", t1."LastModifiedAt" DESC
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", 1);
});
}
@@ -1052,13 +1052,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Type.Should().Be("todoItems");
responseDocument.Data.ManyValue[0].Id.Should().Be(todoItems[1].StringId);
responseDocument.Meta.Should().ContainTotal(1);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -1078,7 +1078,7 @@ SELECT 1
)
"""));
- command.Parameters.ShouldHaveCount(3);
+ command.Parameters.Should().HaveCount(3);
command.Parameters.Should().Contain("@p1", "Personal");
command.Parameters.Should().Contain("@p2", "Smith");
command.Parameters.Should().Contain("@p3", "Homework");
@@ -1103,7 +1103,7 @@ SELECT 1
ORDER BY t1."Priority", t1."LastModifiedAt" DESC
"""));
- command.Parameters.ShouldHaveCount(3);
+ command.Parameters.Should().HaveCount(3);
command.Parameters.Should().Contain("@p1", "Personal");
command.Parameters.Should().Contain("@p2", "Smith");
command.Parameters.Should().Contain("@p3", "Homework");
@@ -1142,13 +1142,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Type.Should().Be("people");
responseDocument.Data.ManyValue[0].Id.Should().Be(people[2].StringId);
responseDocument.Meta.Should().ContainTotal(1);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -1229,7 +1229,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(3);
+ responseDocument.Data.ManyValue.Should().HaveCount(3);
responseDocument.Data.ManyValue.Should().AllSatisfy(resource => resource.Type.Should().Be("todoItems"));
responseDocument.Data.ManyValue.Should().ContainSingle(resource => resource.Id == todoItems[2].StringId);
responseDocument.Data.ManyValue.Should().ContainSingle(resource => resource.Id == todoItems[3].StringId);
@@ -1237,7 +1237,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Meta.Should().ContainTotal(3);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -1247,7 +1247,7 @@ SELECT COUNT(*)
WHERE (t1."Description" = @p1) AND ((t1."Priority" = @p2) OR (t1."DurationInHours" = @p3))
"""));
- command.Parameters.ShouldHaveCount(3);
+ command.Parameters.Should().HaveCount(3);
command.Parameters.Should().Contain("@p1", "1");
command.Parameters.Should().Contain("@p2", TodoItemPriority.High);
command.Parameters.Should().Contain("@p3", 1);
@@ -1262,7 +1262,7 @@ SELECT COUNT(*)
ORDER BY t1."Priority", t1."LastModifiedAt" DESC
"""));
- command.Parameters.ShouldHaveCount(3);
+ command.Parameters.Should().HaveCount(3);
command.Parameters.Should().Contain("@p1", "1");
command.Parameters.Should().Contain("@p2", TodoItemPriority.High);
command.Parameters.Should().Contain("@p3", 1);
@@ -1292,7 +1292,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
diff --git a/test/DapperTests/IntegrationTests/QueryStrings/IncludeTests.cs b/test/DapperTests/IntegrationTests/QueryStrings/IncludeTests.cs
index a1f06cd736..77805ee1b5 100644
--- a/test/DapperTests/IntegrationTests/QueryStrings/IncludeTests.cs
+++ b/test/DapperTests/IntegrationTests/QueryStrings/IncludeTests.cs
@@ -53,31 +53,31 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(2);
+ responseDocument.Data.ManyValue.Should().HaveCount(2);
responseDocument.Data.ManyValue.Should().AllSatisfy(resource => resource.Type.Should().Be("todoItems"));
responseDocument.Data.ManyValue[0].Id.Should().Be(todoItems[0].StringId);
responseDocument.Data.ManyValue[0].Relationships.With(relationships =>
{
- relationships.ShouldContainKey("owner").With(value =>
+ relationships.Should().ContainKey("owner").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Data.SingleValue.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Data.SingleValue.Should().NotBeNull();
value.Data.SingleValue.Type.Should().Be("people");
value.Data.SingleValue.Id.Should().Be(todoItems[0].Owner.StringId);
});
- relationships.ShouldContainKey("assignee").With(value =>
+ relationships.Should().ContainKey("assignee").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
+ value.Should().NotBeNull();
value.Data.SingleValue.Should().BeNull();
});
- relationships.ShouldContainKey("tags").With(value =>
+ relationships.Should().ContainKey("tags").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Data.ManyValue.ShouldHaveCount(2);
+ value.Should().NotBeNull();
+ value.Data.ManyValue.Should().HaveCount(2);
value.Data.ManyValue.Should().AllSatisfy(resource => resource.Type.Should().Be("tags"));
value.Data.ManyValue[0].Id.Should().Be(todoItems[0].Tags.ElementAt(0).StringId);
value.Data.ManyValue[1].Id.Should().Be(todoItems[0].Tags.ElementAt(1).StringId);
@@ -88,63 +88,63 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Data.ManyValue[1].Relationships.With(relationships =>
{
- relationships.ShouldContainKey("owner").With(value =>
+ relationships.Should().ContainKey("owner").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Data.SingleValue.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Data.SingleValue.Should().NotBeNull();
value.Data.SingleValue.Type.Should().Be("people");
value.Data.SingleValue.Id.Should().Be(todoItems[1].Owner.StringId);
});
- relationships.ShouldContainKey("assignee").With(value =>
+ relationships.Should().ContainKey("assignee").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Data.SingleValue.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Data.SingleValue.Should().NotBeNull();
value.Data.SingleValue.Type.Should().Be("people");
value.Data.SingleValue.Id.Should().Be(todoItems[1].Assignee!.StringId);
});
- relationships.ShouldContainKey("tags").With(value =>
+ relationships.Should().ContainKey("tags").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Data.ManyValue.ShouldHaveCount(2);
+ value.Should().NotBeNull();
+ value.Data.ManyValue.Should().HaveCount(2);
value.Data.ManyValue.Should().AllSatisfy(resource => resource.Type.Should().Be("tags"));
value.Data.ManyValue[0].Id.Should().Be(todoItems[1].Tags.ElementAt(0).StringId);
value.Data.ManyValue[1].Id.Should().Be(todoItems[1].Tags.ElementAt(1).StringId);
});
});
- responseDocument.Included.ShouldHaveCount(6);
+ responseDocument.Included.Should().HaveCount(6);
responseDocument.Included[0].Type.Should().Be("people");
responseDocument.Included[0].Id.Should().Be(owner.StringId);
- responseDocument.Included[0].Attributes.ShouldContainKey("firstName").With(value => value.Should().Be(owner.FirstName));
- responseDocument.Included[0].Attributes.ShouldContainKey("lastName").With(value => value.Should().Be(owner.LastName));
+ responseDocument.Included[0].Attributes.Should().ContainKey("firstName").WhoseValue.Should().Be(owner.FirstName);
+ responseDocument.Included[0].Attributes.Should().ContainKey("lastName").WhoseValue.Should().Be(owner.LastName);
responseDocument.Included[1].Type.Should().Be("tags");
responseDocument.Included[1].Id.Should().Be(todoItems[0].Tags.ElementAt(0).StringId);
- responseDocument.Included[1].Attributes.ShouldContainKey("name").With(value => value.Should().Be(todoItems[0].Tags.ElementAt(0).Name));
+ responseDocument.Included[1].Attributes.Should().ContainKey("name").WhoseValue.Should().Be(todoItems[0].Tags.ElementAt(0).Name);
responseDocument.Included[2].Type.Should().Be("tags");
responseDocument.Included[2].Id.Should().Be(todoItems[0].Tags.ElementAt(1).StringId);
- responseDocument.Included[2].Attributes.ShouldContainKey("name").With(value => value.Should().Be(todoItems[0].Tags.ElementAt(1).Name));
+ responseDocument.Included[2].Attributes.Should().ContainKey("name").WhoseValue.Should().Be(todoItems[0].Tags.ElementAt(1).Name);
responseDocument.Included[3].Type.Should().Be("people");
responseDocument.Included[3].Id.Should().Be(todoItems[1].Assignee!.StringId);
- responseDocument.Included[3].Attributes.ShouldContainKey("firstName").With(value => value.Should().Be(todoItems[1].Assignee!.FirstName));
- responseDocument.Included[3].Attributes.ShouldContainKey("lastName").With(value => value.Should().Be(todoItems[1].Assignee!.LastName));
+ responseDocument.Included[3].Attributes.Should().ContainKey("firstName").WhoseValue.Should().Be(todoItems[1].Assignee!.FirstName);
+ responseDocument.Included[3].Attributes.Should().ContainKey("lastName").WhoseValue.Should().Be(todoItems[1].Assignee!.LastName);
responseDocument.Included[4].Type.Should().Be("tags");
responseDocument.Included[4].Id.Should().Be(todoItems[1].Tags.ElementAt(0).StringId);
- responseDocument.Included[4].Attributes.ShouldContainKey("name").With(value => value.Should().Be(todoItems[1].Tags.ElementAt(0).Name));
+ responseDocument.Included[4].Attributes.Should().ContainKey("name").WhoseValue.Should().Be(todoItems[1].Tags.ElementAt(0).Name);
responseDocument.Included[5].Type.Should().Be("tags");
responseDocument.Included[5].Id.Should().Be(todoItems[1].Tags.ElementAt(1).StringId);
- responseDocument.Included[5].Attributes.ShouldContainKey("name").With(value => value.Should().Be(todoItems[1].Tags.ElementAt(1).Name));
+ responseDocument.Included[5].Attributes.Should().ContainKey("name").WhoseValue.Should().Be(todoItems[1].Tags.ElementAt(1).Name);
responseDocument.Meta.Should().ContainTotal(2);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -199,20 +199,20 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(25);
+ responseDocument.Data.ManyValue.Should().HaveCount(25);
responseDocument.Data.ManyValue.ForEach(resource =>
{
resource.Type.Should().Be("todoItems");
- resource.Attributes.ShouldOnlyContainKeys("description", "priority", "durationInHours", "createdAt", "modifiedAt");
- resource.Relationships.ShouldOnlyContainKeys("owner", "assignee", "tags");
+ resource.Attributes.Should().OnlyContainKeys("description", "priority", "durationInHours", "createdAt", "modifiedAt");
+ resource.Relationships.Should().OnlyContainKeys("owner", "assignee", "tags");
});
- responseDocument.Included.ShouldHaveCount(25 * 15 * 2);
+ responseDocument.Included.Should().HaveCount(25 * 15 * 2);
responseDocument.Meta.Should().ContainTotal(25);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
diff --git a/test/DapperTests/IntegrationTests/QueryStrings/PaginationTests.cs b/test/DapperTests/IntegrationTests/QueryStrings/PaginationTests.cs
index e87469cfbf..854fb176db 100644
--- a/test/DapperTests/IntegrationTests/QueryStrings/PaginationTests.cs
+++ b/test/DapperTests/IntegrationTests/QueryStrings/PaginationTests.cs
@@ -41,7 +41,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.InternalServerError);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.InternalServerError);
diff --git a/test/DapperTests/IntegrationTests/QueryStrings/SortTests.cs b/test/DapperTests/IntegrationTests/QueryStrings/SortTests.cs
index 6a66d5e7e3..488dda2cc3 100644
--- a/test/DapperTests/IntegrationTests/QueryStrings/SortTests.cs
+++ b/test/DapperTests/IntegrationTests/QueryStrings/SortTests.cs
@@ -50,13 +50,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(3);
+ responseDocument.Data.ManyValue.Should().HaveCount(3);
responseDocument.Data.ManyValue.Should().AllSatisfy(resource => resource.Type.Should().Be("todoItems"));
responseDocument.Data.ManyValue[0].Id.Should().Be(todoItems[2].StringId);
responseDocument.Data.ManyValue[1].Id.Should().Be(todoItems[0].StringId);
responseDocument.Data.ManyValue[2].Id.Should().Be(todoItems[1].StringId);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -113,18 +113,18 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(3);
+ responseDocument.Data.ManyValue.Should().HaveCount(3);
responseDocument.Data.ManyValue.Should().AllSatisfy(resource => resource.Type.Should().Be("todoItems"));
responseDocument.Data.ManyValue[0].Id.Should().Be(person.OwnedTodoItems.ElementAt(2).StringId);
responseDocument.Data.ManyValue[1].Id.Should().Be(person.OwnedTodoItems.ElementAt(1).StringId);
responseDocument.Data.ManyValue[2].Id.Should().Be(person.OwnedTodoItems.ElementAt(0).StringId);
- responseDocument.Included.ShouldHaveCount(2);
+ responseDocument.Included.Should().HaveCount(2);
responseDocument.Included.Should().AllSatisfy(resource => resource.Type.Should().Be("tags"));
responseDocument.Included[0].Id.Should().Be(person.OwnedTodoItems.ElementAt(1).Tags.ElementAt(1).StringId);
responseDocument.Included[1].Id.Should().Be(person.OwnedTodoItems.ElementAt(1).Tags.ElementAt(0).StringId);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -135,7 +135,7 @@ SELECT COUNT(*)
WHERE t2."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", person.Id);
});
@@ -150,7 +150,7 @@ SELECT COUNT(*)
ORDER BY t2."DurationInHours" DESC, t3."Name"
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", person.Id);
});
}
@@ -184,13 +184,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(3);
+ responseDocument.Data.ManyValue.Should().HaveCount(3);
responseDocument.Data.ManyValue.Should().AllSatisfy(resource => resource.Type.Should().Be("todoItems"));
responseDocument.Data.ManyValue[0].Id.Should().Be(todoItems[2].StringId);
responseDocument.Data.ManyValue[1].Id.Should().Be(todoItems[0].StringId);
responseDocument.Data.ManyValue[2].Id.Should().Be(todoItems[1].StringId);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -247,13 +247,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(3);
+ responseDocument.Data.ManyValue.Should().HaveCount(3);
responseDocument.Data.ManyValue.Should().AllSatisfy(resource => resource.Type.Should().Be("todoItems"));
responseDocument.Data.ManyValue[0].Id.Should().Be(person.OwnedTodoItems.ElementAt(2).StringId);
responseDocument.Data.ManyValue[1].Id.Should().Be(person.OwnedTodoItems.ElementAt(0).StringId);
responseDocument.Data.ManyValue[2].Id.Should().Be(person.OwnedTodoItems.ElementAt(1).StringId);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -264,7 +264,7 @@ SELECT COUNT(*)
WHERE t2."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", person.Id);
});
@@ -282,7 +282,7 @@ SELECT COUNT(*)
) DESC, t2."Id"
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", person.Id);
});
}
@@ -316,13 +316,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(3);
+ responseDocument.Data.ManyValue.Should().HaveCount(3);
responseDocument.Data.ManyValue.Should().AllSatisfy(resource => resource.Type.Should().Be("todoItems"));
responseDocument.Data.ManyValue[0].Id.Should().Be(person.OwnedTodoItems.ElementAt(2).StringId);
responseDocument.Data.ManyValue[1].Id.Should().Be(person.OwnedTodoItems.ElementAt(0).StringId);
responseDocument.Data.ManyValue[2].Id.Should().Be(person.OwnedTodoItems.ElementAt(1).StringId);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -333,7 +333,7 @@ SELECT COUNT(*)
WHERE t2."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", person.Id);
});
@@ -352,7 +352,7 @@ SELECT COUNT(*)
) DESC, t2."Id", t4."Id"
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", person.Id);
});
}
@@ -386,18 +386,18 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Type.Should().Be("people");
responseDocument.Data.ManyValue[0].Id.Should().Be(person.StringId);
- responseDocument.Included.ShouldHaveCount(4);
+ responseDocument.Included.Should().HaveCount(4);
responseDocument.Included.Should().AllSatisfy(resource => resource.Type.Should().Be("todoItems"));
responseDocument.Included[0].Id.Should().Be(person.OwnedTodoItems.ElementAt(2).StringId);
responseDocument.Included[1].Id.Should().Be(person.OwnedTodoItems.ElementAt(0).StringId);
responseDocument.Included[2].Id.Should().Be(person.OwnedTodoItems.ElementAt(1).StringId);
responseDocument.Included[3].Id.Should().Be(person.OwnedTodoItems.ElementAt(3).StringId);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
diff --git a/test/DapperTests/IntegrationTests/QueryStrings/SparseFieldSets.cs b/test/DapperTests/IntegrationTests/QueryStrings/SparseFieldSets.cs
index af09f014a2..b2e0c68f8c 100644
--- a/test/DapperTests/IntegrationTests/QueryStrings/SparseFieldSets.cs
+++ b/test/DapperTests/IntegrationTests/QueryStrings/SparseFieldSets.cs
@@ -47,44 +47,44 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Type.Should().Be("todoItems");
responseDocument.Data.ManyValue[0].Id.Should().Be(todoItem.StringId);
- responseDocument.Data.ManyValue[0].Attributes.ShouldHaveCount(2);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("description").With(value => value.Should().Be(todoItem.Description));
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("durationInHours").With(value => value.Should().Be(todoItem.DurationInHours));
- responseDocument.Data.ManyValue[0].Relationships.ShouldHaveCount(2);
+ responseDocument.Data.ManyValue[0].Attributes.Should().HaveCount(2);
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("description").WhoseValue.Should().Be(todoItem.Description);
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("durationInHours").WhoseValue.Should().Be(todoItem.DurationInHours);
+ responseDocument.Data.ManyValue[0].Relationships.Should().HaveCount(2);
- responseDocument.Data.ManyValue[0].Relationships.ShouldContainKey("owner").With(value =>
+ responseDocument.Data.ManyValue[0].Relationships.Should().ContainKey("owner").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Data.SingleValue.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Data.SingleValue.Should().NotBeNull();
value.Data.SingleValue.Type.Should().Be("people");
value.Data.SingleValue.Id.Should().Be(todoItem.Owner.StringId);
});
- responseDocument.Data.ManyValue[0].Relationships.ShouldContainKey("assignee").With(value =>
+ responseDocument.Data.ManyValue[0].Relationships.Should().ContainKey("assignee").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Data.SingleValue.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Data.SingleValue.Should().NotBeNull();
value.Data.SingleValue.Type.Should().Be("people");
value.Data.SingleValue.Id.Should().Be(todoItem.Assignee.StringId);
});
- responseDocument.Included.ShouldHaveCount(2);
+ responseDocument.Included.Should().HaveCount(2);
responseDocument.Included.Should().AllSatisfy(resource => resource.Type.Should().Be("people"));
responseDocument.Included[0].Id.Should().Be(todoItem.Owner.StringId);
- responseDocument.Included[0].Attributes.ShouldHaveCount(1);
- responseDocument.Included[0].Attributes.ShouldContainKey("lastName").With(value => value.Should().Be(todoItem.Owner.LastName));
+ responseDocument.Included[0].Attributes.Should().HaveCount(1);
+ responseDocument.Included[0].Attributes.Should().ContainKey("lastName").WhoseValue.Should().Be(todoItem.Owner.LastName);
responseDocument.Included[0].Relationships.Should().BeNull();
responseDocument.Included[1].Id.Should().Be(todoItem.Assignee.StringId);
- responseDocument.Included[1].Attributes.ShouldHaveCount(1);
- responseDocument.Included[1].Attributes.ShouldContainKey("lastName").With(value => value.Should().Be(todoItem.Assignee.LastName));
+ responseDocument.Included[1].Attributes.Should().HaveCount(1);
+ responseDocument.Included[1].Attributes.Should().ContainKey("lastName").WhoseValue.Should().Be(todoItem.Assignee.LastName);
responseDocument.Included[1].Relationships.Should().BeNull();
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -134,14 +134,14 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Type.Should().Be("todoItems");
responseDocument.Data.SingleValue.Id.Should().Be(todoItem.StringId);
- responseDocument.Data.SingleValue.Attributes.ShouldHaveCount(1);
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("description").With(value => value.Should().Be(todoItem.Description));
+ responseDocument.Data.SingleValue.Attributes.Should().HaveCount(1);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("description").WhoseValue.Should().Be(todoItem.Description);
responseDocument.Data.SingleValue.Relationships.Should().BeNull();
- store.SqlCommands.ShouldHaveCount(1);
+ store.SqlCommands.Should().HaveCount(1);
store.SqlCommands[0].With(command =>
{
@@ -151,7 +151,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", todoItem.Id);
});
}
@@ -181,19 +181,19 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Type.Should().Be("tags");
responseDocument.Data.ManyValue[0].Id.Should().Be(todoItem.Tags.ElementAt(0).StringId);
responseDocument.Data.ManyValue[0].Attributes.Should().BeNull();
- responseDocument.Data.ManyValue[0].Relationships.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue[0].Relationships.Should().HaveCount(1);
- responseDocument.Data.ManyValue[0].Relationships.ShouldContainKey("color").With(value =>
+ responseDocument.Data.ManyValue[0].Relationships.Should().ContainKey("color").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
+ value.Should().NotBeNull();
value.Data.Value.Should().BeNull();
});
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -204,7 +204,7 @@ SELECT COUNT(*)
WHERE t2."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", todoItem.Id);
});
@@ -218,7 +218,7 @@ SELECT COUNT(*)
ORDER BY t2."Id"
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", todoItem.Id);
});
}
@@ -246,13 +246,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Type.Should().Be("people");
responseDocument.Data.SingleValue.Id.Should().Be(person.StringId);
responseDocument.Data.SingleValue.Attributes.Should().BeNull();
responseDocument.Data.SingleValue.Relationships.Should().BeNull();
- store.SqlCommands.ShouldHaveCount(1);
+ store.SqlCommands.Should().HaveCount(1);
store.SqlCommands[0].With(command =>
{
@@ -262,7 +262,7 @@ SELECT t1."Id"
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", person.Id);
});
}
@@ -290,13 +290,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Type.Should().Be("people");
responseDocument.Data.SingleValue.Id.Should().Be(person.StringId);
responseDocument.Data.SingleValue.Attributes.Should().BeNull();
responseDocument.Data.SingleValue.Relationships.Should().BeNull();
- store.SqlCommands.ShouldHaveCount(1);
+ store.SqlCommands.Should().HaveCount(1);
store.SqlCommands[0].With(command =>
{
@@ -306,7 +306,7 @@ SELECT t1."Id"
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", person.Id);
});
}
@@ -334,14 +334,14 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Type.Should().Be("people");
responseDocument.Data.SingleValue.Id.Should().Be(person.StringId);
- responseDocument.Data.SingleValue.Attributes.ShouldHaveCount(1);
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("displayName").With(value => value.Should().Be(person.DisplayName));
+ responseDocument.Data.SingleValue.Attributes.Should().HaveCount(1);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("displayName").WhoseValue.Should().Be(person.DisplayName);
responseDocument.Data.SingleValue.Relationships.Should().BeNull();
- store.SqlCommands.ShouldHaveCount(1);
+ store.SqlCommands.Should().HaveCount(1);
store.SqlCommands[0].With(command =>
{
@@ -351,7 +351,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", person.Id);
});
}
@@ -381,17 +381,17 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Type.Should().Be("todoItems");
responseDocument.Data.SingleValue.Id.Should().Be(todoItem.StringId);
- responseDocument.Data.SingleValue.Attributes.ShouldHaveCount(1);
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("description").With(value => value.Should().Be(todoItem.Description));
+ responseDocument.Data.SingleValue.Attributes.Should().HaveCount(1);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("description").WhoseValue.Should().Be(todoItem.Description);
responseDocument.Data.SingleValue.Relationships.Should().BeNull();
- responseDocument.Included.ShouldHaveCount(2);
+ responseDocument.Included.Should().HaveCount(2);
responseDocument.Included.Should().AllSatisfy(resource => resource.Type.Should().Be("tags"));
- store.SqlCommands.ShouldHaveCount(1);
+ store.SqlCommands.Should().HaveCount(1);
store.SqlCommands[0].With(command =>
{
@@ -403,7 +403,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
ORDER BY t2."Id"
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", todoItem.Id);
});
}
diff --git a/test/DapperTests/IntegrationTests/ReadWrite/Relationships/AddToToManyRelationshipTests.cs b/test/DapperTests/IntegrationTests/ReadWrite/Relationships/AddToToManyRelationshipTests.cs
index 2bf6277f10..6f5a87ea33 100644
--- a/test/DapperTests/IntegrationTests/ReadWrite/Relationships/AddToToManyRelationshipTests.cs
+++ b/test/DapperTests/IntegrationTests/ReadWrite/Relationships/AddToToManyRelationshipTests.cs
@@ -73,10 +73,10 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
Person personInDatabase = await dbContext.People.Include(person => person.OwnedTodoItems).FirstWithIdAsync(existingPerson.Id);
- personInDatabase.OwnedTodoItems.ShouldHaveCount(3);
+ personInDatabase.OwnedTodoItems.Should().HaveCount(3);
});
- store.SqlCommands.ShouldHaveCount(1);
+ store.SqlCommands.Should().HaveCount(1);
store.SqlCommands[0].With(command =>
{
@@ -86,7 +86,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE "Id" IN (@p2, @p3)
"""));
- command.Parameters.ShouldHaveCount(3);
+ command.Parameters.Should().HaveCount(3);
command.Parameters.Should().Contain("@p1", existingPerson.Id);
command.Parameters.Should().Contain("@p2", existingTodoItems.ElementAt(0).Id);
command.Parameters.Should().Contain("@p3", existingTodoItems.ElementAt(1).Id);
diff --git a/test/DapperTests/IntegrationTests/ReadWrite/Relationships/FetchRelationshipTests.cs b/test/DapperTests/IntegrationTests/ReadWrite/Relationships/FetchRelationshipTests.cs
index 949494e5f0..d4703dc99a 100644
--- a/test/DapperTests/IntegrationTests/ReadWrite/Relationships/FetchRelationshipTests.cs
+++ b/test/DapperTests/IntegrationTests/ReadWrite/Relationships/FetchRelationshipTests.cs
@@ -46,13 +46,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Type.Should().Be("people");
responseDocument.Data.SingleValue.Id.Should().Be(todoItem.Owner.StringId);
responseDocument.Meta.Should().BeNull();
- store.SqlCommands.ShouldHaveCount(1);
+ store.SqlCommands.Should().HaveCount(1);
store.SqlCommands[0].With(command =>
{
@@ -63,7 +63,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", todoItem.Id);
});
}
@@ -97,7 +97,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Meta.Should().BeNull();
- store.SqlCommands.ShouldHaveCount(1);
+ store.SqlCommands.Should().HaveCount(1);
store.SqlCommands[0].With(command =>
{
@@ -108,7 +108,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", todoItem.Id);
});
}
@@ -139,14 +139,14 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(2);
+ responseDocument.Data.ManyValue.Should().HaveCount(2);
responseDocument.Data.ManyValue.Should().AllSatisfy(resource => resource.Type.Should().Be("tags"));
responseDocument.Data.ManyValue[0].Id.Should().Be(todoItem.Tags.ElementAt(0).StringId);
responseDocument.Data.ManyValue[1].Id.Should().Be(todoItem.Tags.ElementAt(1).StringId);
responseDocument.Meta.Should().ContainTotal(2);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -157,7 +157,7 @@ SELECT COUNT(*)
WHERE t2."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", todoItem.Id);
});
@@ -171,7 +171,7 @@ SELECT COUNT(*)
ORDER BY t2."Id"
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", todoItem.Id);
});
}
@@ -189,7 +189,7 @@ public async Task Cannot_get_relationship_for_unknown_primary_ID()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
diff --git a/test/DapperTests/IntegrationTests/ReadWrite/Relationships/RemoveFromToManyRelationshipTests.cs b/test/DapperTests/IntegrationTests/ReadWrite/Relationships/RemoveFromToManyRelationshipTests.cs
index 82dace581f..ac6be3134e 100644
--- a/test/DapperTests/IntegrationTests/ReadWrite/Relationships/RemoveFromToManyRelationshipTests.cs
+++ b/test/DapperTests/IntegrationTests/ReadWrite/Relationships/RemoveFromToManyRelationshipTests.cs
@@ -70,7 +70,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
Person personInDatabase = await dbContext.People.Include(person => person.AssignedTodoItems).FirstWithIdAsync(existingPerson.Id);
- personInDatabase.AssignedTodoItems.ShouldHaveCount(1);
+ personInDatabase.AssignedTodoItems.Should().HaveCount(1);
personInDatabase.AssignedTodoItems.ElementAt(0).Id.Should().Be(existingPerson.AssignedTodoItems.ElementAt(1).Id);
List todoItemInDatabases = await dbContext.TodoItems.Where(todoItem => todoItem.Assignee == null).ToListAsync();
@@ -78,7 +78,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
todoItemInDatabases.Should().HaveCount(2);
});
- store.SqlCommands.ShouldHaveCount(3);
+ store.SqlCommands.Should().HaveCount(3);
store.SqlCommands[0].With(command =>
{
@@ -93,7 +93,7 @@ LEFT JOIN (
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(3);
+ command.Parameters.Should().HaveCount(3);
command.Parameters.Should().Contain("@p1", existingPerson.Id);
command.Parameters.Should().Contain("@p2", existingPerson.AssignedTodoItems.ElementAt(0).Id);
command.Parameters.Should().Contain("@p3", existingPerson.AssignedTodoItems.ElementAt(2).Id);
@@ -107,7 +107,7 @@ SELECT t1."Id"
WHERE t1."Id" IN (@p1, @p2)
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", existingPerson.AssignedTodoItems.ElementAt(0).Id);
command.Parameters.Should().Contain("@p2", existingPerson.AssignedTodoItems.ElementAt(2).Id);
});
@@ -120,7 +120,7 @@ SELECT t1."Id"
WHERE "Id" IN (@p2, @p3)
"""));
- command.Parameters.ShouldHaveCount(3);
+ command.Parameters.Should().HaveCount(3);
command.Parameters.Should().Contain("@p1", null);
command.Parameters.Should().Contain("@p2", existingPerson.AssignedTodoItems.ElementAt(0).Id);
command.Parameters.Should().Contain("@p3", existingPerson.AssignedTodoItems.ElementAt(2).Id);
@@ -175,7 +175,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
Person personInDatabase = await dbContext.People.Include(person => person.OwnedTodoItems).FirstWithIdAsync(existingPerson.Id);
- personInDatabase.OwnedTodoItems.ShouldHaveCount(1);
+ personInDatabase.OwnedTodoItems.Should().HaveCount(1);
personInDatabase.OwnedTodoItems.ElementAt(0).Id.Should().Be(existingPerson.OwnedTodoItems.ElementAt(1).Id);
List todoItemInDatabases = await dbContext.TodoItems.ToListAsync();
@@ -183,7 +183,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
todoItemInDatabases.Should().HaveCount(1);
});
- store.SqlCommands.ShouldHaveCount(3);
+ store.SqlCommands.Should().HaveCount(3);
store.SqlCommands[0].With(command =>
{
@@ -198,7 +198,7 @@ LEFT JOIN (
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(3);
+ command.Parameters.Should().HaveCount(3);
command.Parameters.Should().Contain("@p1", existingPerson.Id);
command.Parameters.Should().Contain("@p2", existingPerson.OwnedTodoItems.ElementAt(0).Id);
command.Parameters.Should().Contain("@p3", existingPerson.OwnedTodoItems.ElementAt(2).Id);
@@ -212,7 +212,7 @@ SELECT t1."Id"
WHERE t1."Id" IN (@p1, @p2)
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", existingPerson.OwnedTodoItems.ElementAt(0).Id);
command.Parameters.Should().Contain("@p2", existingPerson.OwnedTodoItems.ElementAt(2).Id);
});
@@ -224,7 +224,7 @@ DELETE FROM "TodoItems"
WHERE "Id" IN (@p1, @p2)
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", existingPerson.OwnedTodoItems.ElementAt(0).Id);
command.Parameters.Should().Contain("@p2", existingPerson.OwnedTodoItems.ElementAt(2).Id);
});
diff --git a/test/DapperTests/IntegrationTests/ReadWrite/Relationships/ReplaceToManyRelationshipTests.cs b/test/DapperTests/IntegrationTests/ReadWrite/Relationships/ReplaceToManyRelationshipTests.cs
index d2a4d0865a..a46a34678b 100644
--- a/test/DapperTests/IntegrationTests/ReadWrite/Relationships/ReplaceToManyRelationshipTests.cs
+++ b/test/DapperTests/IntegrationTests/ReadWrite/Relationships/ReplaceToManyRelationshipTests.cs
@@ -59,7 +59,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
personInDatabase.AssignedTodoItems.Should().BeEmpty();
});
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -70,7 +70,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", existingPerson.Id);
});
@@ -82,7 +82,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE "Id" IN (@p2, @p3)
"""));
- command.Parameters.ShouldHaveCount(3);
+ command.Parameters.Should().HaveCount(3);
command.Parameters.Should().Contain("@p1", null);
command.Parameters.Should().Contain("@p2", existingPerson.AssignedTodoItems.ElementAt(0).Id);
command.Parameters.Should().Contain("@p3", existingPerson.AssignedTodoItems.ElementAt(1).Id);
@@ -127,7 +127,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
personInDatabase.OwnedTodoItems.Should().BeEmpty();
});
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -138,7 +138,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", existingPerson.Id);
});
@@ -149,7 +149,7 @@ DELETE FROM "TodoItems"
WHERE "Id" IN (@p1, @p2)
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", existingPerson.OwnedTodoItems.ElementAt(0).Id);
command.Parameters.Should().Contain("@p2", existingPerson.OwnedTodoItems.ElementAt(1).Id);
});
@@ -204,12 +204,12 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
Person personInDatabase = await dbContext.People.Include(person => person.AssignedTodoItems).FirstWithIdAsync(existingPerson.Id);
- personInDatabase.AssignedTodoItems.ShouldHaveCount(2);
+ personInDatabase.AssignedTodoItems.Should().HaveCount(2);
personInDatabase.AssignedTodoItems.ElementAt(0).Id.Should().Be(existingTodoItems.ElementAt(0).Id);
personInDatabase.AssignedTodoItems.ElementAt(1).Id.Should().Be(existingTodoItems.ElementAt(1).Id);
});
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -220,7 +220,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", existingPerson.Id);
});
@@ -232,7 +232,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE "Id" IN (@p2, @p3)
"""));
- command.Parameters.ShouldHaveCount(3);
+ command.Parameters.Should().HaveCount(3);
command.Parameters.Should().Contain("@p1", existingPerson.Id);
command.Parameters.Should().Contain("@p2", existingTodoItems.ElementAt(0).Id);
command.Parameters.Should().Contain("@p3", existingTodoItems.ElementAt(1).Id);
@@ -284,11 +284,11 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
Person personInDatabase = await dbContext.People.Include(person => person.AssignedTodoItems).FirstWithIdAsync(existingPerson.Id);
- personInDatabase.AssignedTodoItems.ShouldHaveCount(1);
+ personInDatabase.AssignedTodoItems.Should().HaveCount(1);
personInDatabase.AssignedTodoItems.ElementAt(0).Id.Should().Be(existingTodoItem.Id);
});
- store.SqlCommands.ShouldHaveCount(3);
+ store.SqlCommands.Should().HaveCount(3);
store.SqlCommands[0].With(command =>
{
@@ -299,7 +299,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", existingPerson.Id);
});
@@ -311,7 +311,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE "Id" = @p2
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", null);
command.Parameters.Should().Contain("@p2", existingPerson.AssignedTodoItems.ElementAt(0).Id);
});
@@ -324,7 +324,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE "Id" = @p2
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", existingPerson.Id);
command.Parameters.Should().Contain("@p2", existingTodoItem.Id);
});
@@ -375,11 +375,11 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
Person personInDatabase = await dbContext.People.Include(person => person.OwnedTodoItems).FirstWithIdAsync(existingPerson.Id);
- personInDatabase.OwnedTodoItems.ShouldHaveCount(1);
+ personInDatabase.OwnedTodoItems.Should().HaveCount(1);
personInDatabase.OwnedTodoItems.ElementAt(0).Id.Should().Be(existingTodoItem.Id);
});
- store.SqlCommands.ShouldHaveCount(3);
+ store.SqlCommands.Should().HaveCount(3);
store.SqlCommands[0].With(command =>
{
@@ -390,7 +390,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", existingPerson.Id);
});
@@ -401,7 +401,7 @@ DELETE FROM "TodoItems"
WHERE "Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", existingPerson.OwnedTodoItems.ElementAt(0).Id);
});
@@ -413,7 +413,7 @@ DELETE FROM "TodoItems"
WHERE "Id" = @p2
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", existingPerson.Id);
command.Parameters.Should().Contain("@p2", existingTodoItem.Id);
});
diff --git a/test/DapperTests/IntegrationTests/ReadWrite/Relationships/UpdateToOneRelationshipTests.cs b/test/DapperTests/IntegrationTests/ReadWrite/Relationships/UpdateToOneRelationshipTests.cs
index 5f3b2ad0fb..bab60bf29b 100644
--- a/test/DapperTests/IntegrationTests/ReadWrite/Relationships/UpdateToOneRelationshipTests.cs
+++ b/test/DapperTests/IntegrationTests/ReadWrite/Relationships/UpdateToOneRelationshipTests.cs
@@ -65,7 +65,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
loginAccountInDatabase.Person.Should().BeNull();
});
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -76,7 +76,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", existingPerson.Id);
});
@@ -88,7 +88,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE "Id" = @p2
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", null);
command.Parameters.Should().Contain("@p2", existingPerson.Id);
});
@@ -137,7 +137,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
personInDatabase.Account.Should().BeNull();
});
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -148,7 +148,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", existingLoginAccount.Id);
});
@@ -160,7 +160,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE "Id" = @p2
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", null);
command.Parameters.Should().Contain("@p2", existingLoginAccount.Person.Id);
});
@@ -196,7 +196,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Should().BeEmpty();
- store.SqlCommands.ShouldHaveCount(1);
+ store.SqlCommands.Should().HaveCount(1);
store.SqlCommands[0].With(command =>
{
@@ -207,7 +207,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", existingLoginAccount.Id);
});
}
@@ -240,7 +240,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
@@ -248,7 +248,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
error.Detail.Should().Be("The relationship 'recovery' on resource type 'loginAccounts' cannot be cleared because it is a required relationship.");
error.Source.Should().BeNull();
- store.SqlCommands.ShouldHaveCount(1);
+ store.SqlCommands.Should().HaveCount(1);
store.SqlCommands[0].With(command =>
{
@@ -259,7 +259,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", existingLoginAccount.Id);
});
}
@@ -292,7 +292,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
@@ -300,7 +300,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
error.Detail.Should().Be("The relationship 'account' on resource type 'accountRecoveries' cannot be cleared because it is a required relationship.");
error.Source.Should().BeNull();
- store.SqlCommands.ShouldHaveCount(1);
+ store.SqlCommands.Should().HaveCount(1);
store.SqlCommands[0].With(command =>
{
@@ -311,7 +311,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", existingAccountRecovery.Id);
});
}
@@ -354,7 +354,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
todoItemInDatabase.Assignee.Should().BeNull();
});
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -365,7 +365,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", existingTodoItem.Id);
});
@@ -377,7 +377,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE "Id" = @p2
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", null);
command.Parameters.Should().Contain("@p2", existingTodoItem.Id);
});
@@ -411,7 +411,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
@@ -419,7 +419,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
error.Detail.Should().Be("The relationship 'owner' on resource type 'todoItems' cannot be cleared because it is a required relationship.");
error.Source.Should().BeNull();
- store.SqlCommands.ShouldHaveCount(1);
+ store.SqlCommands.Should().HaveCount(1);
store.SqlCommands[0].With(command =>
{
@@ -430,7 +430,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", existingTodoItem.Id);
});
}
@@ -475,11 +475,11 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
Person personInDatabase = await dbContext.People.Include(person => person.Account).FirstWithIdAsync(existingPerson.Id);
- personInDatabase.Account.ShouldNotBeNull();
+ personInDatabase.Account.Should().NotBeNull();
personInDatabase.Account.Id.Should().Be(existingLoginAccount.Id);
});
- store.SqlCommands.ShouldHaveCount(3);
+ store.SqlCommands.Should().HaveCount(3);
store.SqlCommands[0].With(command =>
{
@@ -490,7 +490,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", existingPerson.Id);
});
@@ -502,7 +502,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE "AccountId" = @p2
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", null);
command.Parameters.Should().Contain("@p2", existingLoginAccount.Id);
});
@@ -515,7 +515,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE "Id" = @p2
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", existingLoginAccount.Id);
command.Parameters.Should().Contain("@p2", existingPerson.Id);
});
@@ -562,11 +562,11 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
LoginAccount loginAccountInDatabase =
await dbContext.LoginAccounts.Include(loginAccount => loginAccount.Person).FirstWithIdAsync(existingLoginAccount.Id);
- loginAccountInDatabase.Person.ShouldNotBeNull();
+ loginAccountInDatabase.Person.Should().NotBeNull();
loginAccountInDatabase.Person.Id.Should().Be(existingPerson.Id);
});
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -577,7 +577,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", existingLoginAccount.Id);
});
@@ -589,7 +589,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE "Id" = @p2
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", existingLoginAccount.Id);
command.Parameters.Should().Contain("@p2", existingPerson.Id);
});
@@ -635,11 +635,11 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
TodoItem todoItemInDatabase = await dbContext.TodoItems.Include(todoItem => todoItem.Assignee).FirstWithIdAsync(existingTodoItem.Id);
- todoItemInDatabase.Assignee.ShouldNotBeNull();
+ todoItemInDatabase.Assignee.Should().NotBeNull();
todoItemInDatabase.Assignee.Id.Should().Be(existingPerson.Id);
});
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -650,7 +650,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", existingTodoItem.Id);
});
@@ -662,7 +662,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE "Id" = @p2
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", existingPerson.Id);
command.Parameters.Should().Contain("@p2", existingTodoItem.Id);
});
@@ -711,7 +711,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
Person personInDatabase1 = await dbContext.People.Include(person => person.Account).FirstWithIdAsync(existingPerson1.Id);
- personInDatabase1.Account.ShouldNotBeNull();
+ personInDatabase1.Account.Should().NotBeNull();
personInDatabase1.Account.Id.Should().Be(existingPerson2.Account.Id);
Person personInDatabase2 = await dbContext.People.Include(person => person.Account).FirstWithIdAsync(existingPerson2.Id);
@@ -719,7 +719,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
personInDatabase2.Account.Should().BeNull();
});
- store.SqlCommands.ShouldHaveCount(3);
+ store.SqlCommands.Should().HaveCount(3);
store.SqlCommands[0].With(command =>
{
@@ -730,7 +730,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", existingPerson1.Id);
});
@@ -742,7 +742,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE "AccountId" = @p2
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", null);
command.Parameters.Should().Contain("@p2", existingPerson2.Account.Id);
});
@@ -755,7 +755,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE "Id" = @p2
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", existingPerson2.Account.Id);
command.Parameters.Should().Contain("@p2", existingPerson1.Id);
});
@@ -805,7 +805,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
LoginAccount loginAccountInDatabase1 =
await dbContext.LoginAccounts.Include(loginAccount => loginAccount.Person).FirstWithIdAsync(existingLoginAccount1.Id);
- loginAccountInDatabase1.Person.ShouldNotBeNull();
+ loginAccountInDatabase1.Person.Should().NotBeNull();
loginAccountInDatabase1.Person.Id.Should().Be(existingLoginAccount2.Person.Id);
LoginAccount loginAccountInDatabase2 =
@@ -814,7 +814,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
loginAccountInDatabase2.Person.Should().BeNull();
});
- store.SqlCommands.ShouldHaveCount(3);
+ store.SqlCommands.Should().HaveCount(3);
store.SqlCommands[0].With(command =>
{
@@ -825,7 +825,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", existingLoginAccount1.Id);
});
@@ -837,7 +837,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE "Id" = @p2
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", null);
command.Parameters.Should().Contain("@p2", existingLoginAccount1.Person.Id);
});
@@ -850,7 +850,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE "Id" = @p2
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", existingLoginAccount1.Id);
command.Parameters.Should().Contain("@p2", existingLoginAccount2.Person.Id);
});
@@ -898,7 +898,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
LoginAccount loginAccountInDatabase1 =
await dbContext.LoginAccounts.Include(loginAccount => loginAccount.Recovery).FirstWithIdAsync(existingLoginAccount1.Id);
- loginAccountInDatabase1.Recovery.ShouldNotBeNull();
+ loginAccountInDatabase1.Recovery.Should().NotBeNull();
loginAccountInDatabase1.Recovery.Id.Should().Be(existingLoginAccount2.Recovery.Id);
LoginAccount? loginAccountInDatabase2 = await dbContext.LoginAccounts.Include(loginAccount => loginAccount.Recovery)
@@ -907,7 +907,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
loginAccountInDatabase2.Should().BeNull();
});
- store.SqlCommands.ShouldHaveCount(3);
+ store.SqlCommands.Should().HaveCount(3);
store.SqlCommands[0].With(command =>
{
@@ -918,7 +918,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", existingLoginAccount1.Id);
});
@@ -929,7 +929,7 @@ DELETE FROM "LoginAccounts"
WHERE "RecoveryId" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", existingLoginAccount2.Recovery.Id);
});
@@ -941,7 +941,7 @@ DELETE FROM "LoginAccounts"
WHERE "Id" = @p2
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", existingLoginAccount2.Recovery.Id);
command.Parameters.Should().Contain("@p2", existingLoginAccount1.Id);
});
@@ -989,7 +989,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
AccountRecovery accountRecoveryInDatabase1 =
await dbContext.AccountRecoveries.Include(recovery => recovery.Account).FirstWithIdAsync(existingAccountRecovery1.Id);
- accountRecoveryInDatabase1.Account.ShouldNotBeNull();
+ accountRecoveryInDatabase1.Account.Should().NotBeNull();
accountRecoveryInDatabase1.Account.Id.Should().Be(existingAccountRecovery2.Account.Id);
AccountRecovery accountRecoveryInDatabase2 =
@@ -998,7 +998,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
accountRecoveryInDatabase2.Account.Should().BeNull();
});
- store.SqlCommands.ShouldHaveCount(3);
+ store.SqlCommands.Should().HaveCount(3);
store.SqlCommands[0].With(command =>
{
@@ -1009,7 +1009,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", existingAccountRecovery1.Id);
});
@@ -1020,7 +1020,7 @@ DELETE FROM "LoginAccounts"
WHERE "Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", existingAccountRecovery1.Account.Id);
});
@@ -1032,7 +1032,7 @@ DELETE FROM "LoginAccounts"
WHERE "Id" = @p2
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", existingAccountRecovery1.Id);
command.Parameters.Should().Contain("@p2", existingAccountRecovery2.Account.Id);
});
@@ -1081,11 +1081,11 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
TodoItem todoItemInDatabase1 = await dbContext.TodoItems.Include(todoItem => todoItem.Assignee).FirstWithIdAsync(existingTodoItem1.Id);
- todoItemInDatabase1.Assignee.ShouldNotBeNull();
+ todoItemInDatabase1.Assignee.Should().NotBeNull();
todoItemInDatabase1.Assignee.Id.Should().Be(existingTodoItem2.Assignee.Id);
});
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -1096,7 +1096,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", existingTodoItem1.Id);
});
@@ -1108,7 +1108,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE "Id" = @p2
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", existingTodoItem2.Assignee.Id);
command.Parameters.Should().Contain("@p2", existingTodoItem1.Id);
});
@@ -1155,11 +1155,11 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
TodoItem todoItemInDatabase1 = await dbContext.TodoItems.Include(todoItem => todoItem.Owner).FirstWithIdAsync(existingTodoItem1.Id);
- todoItemInDatabase1.Owner.ShouldNotBeNull();
+ todoItemInDatabase1.Owner.Should().NotBeNull();
todoItemInDatabase1.Owner.Id.Should().Be(existingTodoItem2.Owner.Id);
});
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -1170,7 +1170,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", existingTodoItem1.Id);
});
@@ -1182,7 +1182,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE "Id" = @p2
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", existingTodoItem2.Owner.Id);
command.Parameters.Should().Contain("@p2", existingTodoItem1.Id);
});
diff --git a/test/DapperTests/IntegrationTests/ReadWrite/Resources/CreateResourceTests.cs b/test/DapperTests/IntegrationTests/ReadWrite/Resources/CreateResourceTests.cs
index 1f3a540315..ce74e99839 100644
--- a/test/DapperTests/IntegrationTests/ReadWrite/Resources/CreateResourceTests.cs
+++ b/test/DapperTests/IntegrationTests/ReadWrite/Resources/CreateResourceTests.cs
@@ -92,17 +92,17 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Created);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Type.Should().Be("todoItems");
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("description").With(value => value.Should().Be(newTodoItem.Description));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("priority").With(value => value.Should().Be(newTodoItem.Priority));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("durationInHours").With(value => value.Should().Be(newTodoItem.DurationInHours));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("createdAt").With(value => value.Should().Be(DapperTestContext.FrozenTime));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("modifiedAt").With(value => value.Should().BeNull());
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("description").WhoseValue.Should().Be(newTodoItem.Description);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("priority").WhoseValue.Should().Be(newTodoItem.Priority);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("durationInHours").WhoseValue.Should().Be(newTodoItem.DurationInHours);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("createdAt").WhoseValue.Should().Be(DapperTestContext.FrozenTime);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("modifiedAt").WhoseValue.Should().BeNull();
- responseDocument.Data.SingleValue.Relationships.ShouldOnlyContainKeys("owner", "assignee", "tags");
+ responseDocument.Data.SingleValue.Relationships.Should().OnlyContainKeys("owner", "assignee", "tags");
- long newTodoItemId = long.Parse(responseDocument.Data.SingleValue.Id.ShouldNotBeNull());
+ long newTodoItemId = long.Parse(responseDocument.Data.SingleValue.Id.Should().NotBeNull().And.Subject);
httpResponse.Headers.Location.Should().Be($"/todoItems/{newTodoItemId}");
await _testContext.RunOnDatabaseAsync(async dbContext =>
@@ -125,15 +125,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
todoItemInDatabase.CreatedAt.Should().Be(DapperTestContext.FrozenTime);
todoItemInDatabase.LastModifiedAt.Should().BeNull();
- todoItemInDatabase.Owner.ShouldNotBeNull();
+ todoItemInDatabase.Owner.Should().NotBeNull();
todoItemInDatabase.Owner.Id.Should().Be(existingPerson.Id);
- todoItemInDatabase.Assignee.ShouldNotBeNull();
+ todoItemInDatabase.Assignee.Should().NotBeNull();
todoItemInDatabase.Assignee.Id.Should().Be(existingPerson.Id);
- todoItemInDatabase.Tags.ShouldHaveCount(1);
+ todoItemInDatabase.Tags.Should().HaveCount(1);
todoItemInDatabase.Tags.ElementAt(0).Id.Should().Be(existingTag.Id);
});
- store.SqlCommands.ShouldHaveCount(3);
+ store.SqlCommands.Should().HaveCount(3);
store.SqlCommands[0].With(command =>
{
@@ -143,7 +143,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
RETURNING "Id"
"""));
- command.Parameters.ShouldHaveCount(7);
+ command.Parameters.Should().HaveCount(7);
command.Parameters.Should().Contain("@p1", newTodoItem.Description);
command.Parameters.Should().Contain("@p2", newTodoItem.Priority);
command.Parameters.Should().Contain("@p3", newTodoItem.DurationInHours);
@@ -161,7 +161,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE "Id" = @p2
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", newTodoItemId);
command.Parameters.Should().Contain("@p2", existingTag.Id);
});
@@ -174,7 +174,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", newTodoItemId);
});
}
@@ -228,16 +228,16 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Created);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Type.Should().Be("todoItems");
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("description").With(value => value.Should().Be(newTodoItem.Description));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("priority").With(value => value.Should().Be(newTodoItem.Priority));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("durationInHours").With(value => value.Should().BeNull());
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("createdAt").With(value => value.Should().Be(DapperTestContext.FrozenTime));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("modifiedAt").With(value => value.Should().BeNull());
- responseDocument.Data.SingleValue.Relationships.ShouldOnlyContainKeys("owner", "assignee", "tags");
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("description").WhoseValue.Should().Be(newTodoItem.Description);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("priority").WhoseValue.Should().Be(newTodoItem.Priority);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("durationInHours").WhoseValue.Should().BeNull();
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("createdAt").WhoseValue.Should().Be(DapperTestContext.FrozenTime);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("modifiedAt").WhoseValue.Should().BeNull();
+ responseDocument.Data.SingleValue.Relationships.Should().OnlyContainKeys("owner", "assignee", "tags");
- long newTodoItemId = long.Parse(responseDocument.Data.SingleValue.Id.ShouldNotBeNull());
+ long newTodoItemId = long.Parse(responseDocument.Data.SingleValue.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
@@ -259,13 +259,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
todoItemInDatabase.CreatedAt.Should().Be(DapperTestContext.FrozenTime);
todoItemInDatabase.LastModifiedAt.Should().BeNull();
- todoItemInDatabase.Owner.ShouldNotBeNull();
+ todoItemInDatabase.Owner.Should().NotBeNull();
todoItemInDatabase.Owner.Id.Should().Be(existingPerson.Id);
todoItemInDatabase.Assignee.Should().BeNull();
todoItemInDatabase.Tags.Should().BeEmpty();
});
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -275,7 +275,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
RETURNING "Id"
"""));
- command.Parameters.ShouldHaveCount(7);
+ command.Parameters.Should().HaveCount(7);
command.Parameters.Should().Contain("@p1", newTodoItem.Description);
command.Parameters.Should().Contain("@p2", newTodoItem.Priority);
command.Parameters.Should().Contain("@p3", null);
@@ -293,7 +293,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", newTodoItemId);
});
}
@@ -324,27 +324,27 @@ public async Task Cannot_create_resource_without_required_fields()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(3);
+ responseDocument.Errors.Should().HaveCount(3);
ErrorObject error1 = responseDocument.Errors[0];
error1.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error1.Title.Should().Be("Input validation failed.");
error1.Detail.Should().Be("The Owner field is required.");
- error1.Source.ShouldNotBeNull();
+ error1.Source.Should().NotBeNull();
error1.Source.Pointer.Should().Be("/data/relationships/owner/data");
ErrorObject error2 = responseDocument.Errors[1];
error2.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error2.Title.Should().Be("Input validation failed.");
error2.Detail.Should().Be("The Priority field is required.");
- error2.Source.ShouldNotBeNull();
+ error2.Source.Should().NotBeNull();
error2.Source.Pointer.Should().Be("/data/attributes/priority");
ErrorObject error3 = responseDocument.Errors[2];
error3.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error3.Title.Should().Be("Input validation failed.");
error3.Detail.Should().Be("The Description field is required.");
- error3.Source.ShouldNotBeNull();
+ error3.Source.Should().NotBeNull();
error3.Source.Pointer.Should().Be("/data/attributes/description");
store.SqlCommands.Should().BeEmpty();
@@ -407,13 +407,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Created);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Type.Should().Be("loginAccounts");
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("userName").With(value => value.Should().Be(newUserName));
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("userName").WhoseValue.Should().Be(newUserName);
responseDocument.Data.SingleValue.Attributes.Should().NotContainKey("lastUsedAt");
- responseDocument.Data.SingleValue.Relationships.ShouldOnlyContainKeys("recovery", "person");
+ responseDocument.Data.SingleValue.Relationships.Should().OnlyContainKeys("recovery", "person");
- long newLoginAccountId = long.Parse(responseDocument.Data.SingleValue.Id.ShouldNotBeNull());
+ long newLoginAccountId = long.Parse(responseDocument.Data.SingleValue.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
@@ -431,13 +431,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
loginAccountInDatabase.UserName.Should().Be(newUserName);
loginAccountInDatabase.LastUsedAt.Should().BeNull();
- loginAccountInDatabase.Recovery.ShouldNotBeNull();
+ loginAccountInDatabase.Recovery.Should().NotBeNull();
loginAccountInDatabase.Recovery.Id.Should().Be(existingAccountRecovery.Id);
- loginAccountInDatabase.Person.ShouldNotBeNull();
+ loginAccountInDatabase.Person.Should().NotBeNull();
loginAccountInDatabase.Person.Id.Should().Be(existingPerson.Id);
});
- store.SqlCommands.ShouldHaveCount(4);
+ store.SqlCommands.Should().HaveCount(4);
store.SqlCommands[0].With(command =>
{
@@ -446,7 +446,7 @@ DELETE FROM "LoginAccounts"
WHERE "RecoveryId" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", existingAccountRecovery.Id);
});
@@ -458,7 +458,7 @@ DELETE FROM "LoginAccounts"
RETURNING "Id"
"""));
- command.Parameters.ShouldHaveCount(3);
+ command.Parameters.Should().HaveCount(3);
command.Parameters.Should().Contain("@p1", newUserName);
command.Parameters.Should().Contain("@p2", null);
command.Parameters.Should().Contain("@p3", existingAccountRecovery.Id);
@@ -472,7 +472,7 @@ DELETE FROM "LoginAccounts"
WHERE "Id" = @p2
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", newLoginAccountId);
command.Parameters.Should().Contain("@p2", existingPerson.Id);
});
@@ -485,7 +485,7 @@ DELETE FROM "LoginAccounts"
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", newLoginAccountId);
});
}
@@ -520,14 +520,14 @@ public async Task Can_create_resource_with_calculated_attribute()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Created);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Type.Should().Be("people");
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("firstName").With(value => value.Should().Be(newPerson.FirstName));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("lastName").With(value => value.Should().Be(newPerson.LastName));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("displayName").With(value => value.Should().Be(newPerson.DisplayName));
- responseDocument.Data.SingleValue.Relationships.ShouldOnlyContainKeys("account", "ownedTodoItems", "assignedTodoItems");
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("firstName").WhoseValue.Should().Be(newPerson.FirstName);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("lastName").WhoseValue.Should().Be(newPerson.LastName);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("displayName").WhoseValue.Should().Be(newPerson.DisplayName);
+ responseDocument.Data.SingleValue.Relationships.Should().OnlyContainKeys("account", "ownedTodoItems", "assignedTodoItems");
- long newPersonId = long.Parse(responseDocument.Data.SingleValue.Id.ShouldNotBeNull());
+ long newPersonId = long.Parse(responseDocument.Data.SingleValue.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
@@ -538,7 +538,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
personInDatabase.DisplayName.Should().Be(newPerson.DisplayName);
});
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -548,7 +548,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
RETURNING "Id"
"""));
- command.Parameters.ShouldHaveCount(3);
+ command.Parameters.Should().HaveCount(3);
command.Parameters.Should().Contain("@p1", newPerson.FirstName);
command.Parameters.Should().Contain("@p2", newPerson.LastName);
command.Parameters.Should().Contain("@p3", null);
@@ -562,7 +562,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", newPersonId);
});
}
@@ -623,11 +623,11 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
colorInDatabase.Green.Should().Be(newColor.Green);
colorInDatabase.Blue.Should().Be(newColor.Blue);
- colorInDatabase.Tag.ShouldNotBeNull();
+ colorInDatabase.Tag.Should().NotBeNull();
colorInDatabase.Tag.Id.Should().Be(existingTag.Id);
});
- store.SqlCommands.ShouldHaveCount(3);
+ store.SqlCommands.Should().HaveCount(3);
store.SqlCommands[0].With(command =>
{
@@ -636,7 +636,7 @@ DELETE FROM "RgbColors"
WHERE "TagId" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", existingTag.Id);
});
@@ -648,7 +648,7 @@ DELETE FROM "RgbColors"
RETURNING "Id"
""", true));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", newColor.Id);
command.Parameters.Should().Contain("@p2", existingTag.Id);
});
@@ -661,7 +661,7 @@ SELECT t1."Id"
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", newColor.Id);
});
}
@@ -713,7 +713,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Conflict);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Conflict);
@@ -721,7 +721,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
error.Detail.Should().Be($"Another resource of type 'rgbColors' with ID '{existingColor.StringId}' already exists.");
error.Source.Should().BeNull();
- store.SqlCommands.ShouldHaveCount(3);
+ store.SqlCommands.Should().HaveCount(3);
store.SqlCommands[0].With(command =>
{
@@ -730,7 +730,7 @@ DELETE FROM "RgbColors"
WHERE "TagId" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", existingTag.Id);
});
@@ -742,7 +742,7 @@ DELETE FROM "RgbColors"
RETURNING "Id"
""", true));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", existingColor.Id);
command.Parameters.Should().Contain("@p2", existingTag.Id);
});
@@ -755,7 +755,7 @@ SELECT t1."Id"
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", existingColor.Id);
});
}
diff --git a/test/DapperTests/IntegrationTests/ReadWrite/Resources/DeleteResourceTests.cs b/test/DapperTests/IntegrationTests/ReadWrite/Resources/DeleteResourceTests.cs
index 842f736ee9..566c546c73 100644
--- a/test/DapperTests/IntegrationTests/ReadWrite/Resources/DeleteResourceTests.cs
+++ b/test/DapperTests/IntegrationTests/ReadWrite/Resources/DeleteResourceTests.cs
@@ -59,10 +59,10 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
List tags = await dbContext.Tags.Where(tag => tag.TodoItem == null).ToListAsync();
- tags.ShouldHaveCount(1);
+ tags.Should().HaveCount(1);
});
- store.SqlCommands.ShouldHaveCount(1);
+ store.SqlCommands.Should().HaveCount(1);
store.SqlCommands[0].With(command =>
{
@@ -71,7 +71,7 @@ DELETE FROM "TodoItems"
WHERE "Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", existingTodoItem.Id);
});
}
@@ -93,7 +93,7 @@ public async Task Cannot_delete_unknown_resource()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
@@ -101,7 +101,7 @@ public async Task Cannot_delete_unknown_resource()
error.Detail.Should().Be($"Resource of type 'todoItems' with ID '{unknownTodoItemId}' does not exist.");
error.Source.Should().BeNull();
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -110,7 +110,7 @@ DELETE FROM "TodoItems"
WHERE "Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", unknownTodoItemId);
});
@@ -122,7 +122,7 @@ SELECT t1."Id"
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", unknownTodoItemId);
});
}
diff --git a/test/DapperTests/IntegrationTests/ReadWrite/Resources/FetchResourceTests.cs b/test/DapperTests/IntegrationTests/ReadWrite/Resources/FetchResourceTests.cs
index 20d08e1b9f..bd7139e5c4 100644
--- a/test/DapperTests/IntegrationTests/ReadWrite/Resources/FetchResourceTests.cs
+++ b/test/DapperTests/IntegrationTests/ReadWrite/Resources/FetchResourceTests.cs
@@ -49,28 +49,28 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(2);
+ responseDocument.Data.ManyValue.Should().HaveCount(2);
responseDocument.Data.ManyValue.Should().AllSatisfy(resource => resource.Type.Should().Be("todoItems"));
responseDocument.Data.ManyValue[0].Id.Should().Be(todoItems[1].StringId);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("description").With(value => value.Should().Be(todoItems[1].Description));
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("priority").With(value => value.Should().Be(todoItems[1].Priority));
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("durationInHours").With(value => value.Should().Be(todoItems[1].DurationInHours));
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("createdAt").With(value => value.Should().Be(todoItems[1].CreatedAt));
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("modifiedAt").With(value => value.Should().Be(todoItems[1].LastModifiedAt));
- responseDocument.Data.ManyValue[0].Relationships.ShouldOnlyContainKeys("owner", "assignee", "tags");
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("description").WhoseValue.Should().Be(todoItems[1].Description);
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("priority").WhoseValue.Should().Be(todoItems[1].Priority);
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("durationInHours").WhoseValue.Should().Be(todoItems[1].DurationInHours);
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("createdAt").WhoseValue.Should().Be(todoItems[1].CreatedAt);
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("modifiedAt").WhoseValue.Should().Be(todoItems[1].LastModifiedAt);
+ responseDocument.Data.ManyValue[0].Relationships.Should().OnlyContainKeys("owner", "assignee", "tags");
responseDocument.Data.ManyValue[1].Id.Should().Be(todoItems[0].StringId);
- responseDocument.Data.ManyValue[1].Attributes.ShouldContainKey("description").With(value => value.Should().Be(todoItems[0].Description));
- responseDocument.Data.ManyValue[1].Attributes.ShouldContainKey("priority").With(value => value.Should().Be(todoItems[0].Priority));
- responseDocument.Data.ManyValue[1].Attributes.ShouldContainKey("durationInHours").With(value => value.Should().Be(todoItems[0].DurationInHours));
- responseDocument.Data.ManyValue[1].Attributes.ShouldContainKey("createdAt").With(value => value.Should().Be(todoItems[0].CreatedAt));
- responseDocument.Data.ManyValue[1].Attributes.ShouldContainKey("modifiedAt").With(value => value.Should().Be(todoItems[0].LastModifiedAt));
- responseDocument.Data.ManyValue[1].Relationships.ShouldOnlyContainKeys("owner", "assignee", "tags");
+ responseDocument.Data.ManyValue[1].Attributes.Should().ContainKey("description").WhoseValue.Should().Be(todoItems[0].Description);
+ responseDocument.Data.ManyValue[1].Attributes.Should().ContainKey("priority").WhoseValue.Should().Be(todoItems[0].Priority);
+ responseDocument.Data.ManyValue[1].Attributes.Should().ContainKey("durationInHours").WhoseValue.Should().Be(todoItems[0].DurationInHours);
+ responseDocument.Data.ManyValue[1].Attributes.Should().ContainKey("createdAt").WhoseValue.Should().Be(todoItems[0].CreatedAt);
+ responseDocument.Data.ManyValue[1].Attributes.Should().ContainKey("modifiedAt").WhoseValue.Should().Be(todoItems[0].LastModifiedAt);
+ responseDocument.Data.ManyValue[1].Relationships.Should().OnlyContainKeys("owner", "assignee", "tags");
responseDocument.Meta.Should().ContainTotal(2);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -118,19 +118,19 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Type.Should().Be("todoItems");
responseDocument.Data.SingleValue.Id.Should().Be(todoItem.StringId);
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("description").With(value => value.Should().Be(todoItem.Description));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("priority").With(value => value.Should().Be(todoItem.Priority));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("durationInHours").With(value => value.Should().Be(todoItem.DurationInHours));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("createdAt").With(value => value.Should().Be(todoItem.CreatedAt));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("modifiedAt").With(value => value.Should().Be(todoItem.LastModifiedAt));
- responseDocument.Data.SingleValue.Relationships.ShouldOnlyContainKeys("owner", "assignee", "tags");
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("description").WhoseValue.Should().Be(todoItem.Description);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("priority").WhoseValue.Should().Be(todoItem.Priority);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("durationInHours").WhoseValue.Should().Be(todoItem.DurationInHours);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("createdAt").WhoseValue.Should().Be(todoItem.CreatedAt);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("modifiedAt").WhoseValue.Should().Be(todoItem.LastModifiedAt);
+ responseDocument.Data.SingleValue.Relationships.Should().OnlyContainKeys("owner", "assignee", "tags");
responseDocument.Meta.Should().BeNull();
- store.SqlCommands.ShouldHaveCount(1);
+ store.SqlCommands.Should().HaveCount(1);
store.SqlCommands[0].With(command =>
{
@@ -140,7 +140,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", todoItem.Id);
});
}
@@ -162,7 +162,7 @@ public async Task Cannot_get_unknown_primary_resource_by_ID()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
@@ -170,7 +170,7 @@ public async Task Cannot_get_unknown_primary_resource_by_ID()
error.Detail.Should().Be($"Resource of type 'todoItems' with ID '{unknownTodoItemId}' does not exist.");
error.Source.Should().BeNull();
- store.SqlCommands.ShouldHaveCount(1);
+ store.SqlCommands.Should().HaveCount(1);
store.SqlCommands[0].With(command =>
{
@@ -180,7 +180,7 @@ public async Task Cannot_get_unknown_primary_resource_by_ID()
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", unknownTodoItemId);
});
}
@@ -211,20 +211,20 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(2);
+ responseDocument.Data.ManyValue.Should().HaveCount(2);
responseDocument.Data.ManyValue.Should().AllSatisfy(resource => resource.Type.Should().Be("tags"));
responseDocument.Data.ManyValue[0].Id.Should().Be(todoItem.Tags.ElementAt(0).StringId);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("name").With(value => value.Should().Be(todoItem.Tags.ElementAt(0).Name));
- responseDocument.Data.ManyValue[0].Relationships.ShouldOnlyContainKeys("todoItem", "color");
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("name").WhoseValue.Should().Be(todoItem.Tags.ElementAt(0).Name);
+ responseDocument.Data.ManyValue[0].Relationships.Should().OnlyContainKeys("todoItem", "color");
responseDocument.Data.ManyValue[1].Id.Should().Be(todoItem.Tags.ElementAt(1).StringId);
- responseDocument.Data.ManyValue[1].Attributes.ShouldContainKey("name").With(value => value.Should().Be(todoItem.Tags.ElementAt(1).Name));
- responseDocument.Data.ManyValue[1].Relationships.ShouldOnlyContainKeys("todoItem", "color");
+ responseDocument.Data.ManyValue[1].Attributes.Should().ContainKey("name").WhoseValue.Should().Be(todoItem.Tags.ElementAt(1).Name);
+ responseDocument.Data.ManyValue[1].Relationships.Should().OnlyContainKeys("todoItem", "color");
responseDocument.Meta.Should().ContainTotal(2);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -235,7 +235,7 @@ SELECT COUNT(*)
WHERE t2."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", todoItem.Id);
});
@@ -249,7 +249,7 @@ SELECT COUNT(*)
ORDER BY t2."Id"
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", todoItem.Id);
});
}
@@ -278,17 +278,17 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Type.Should().Be("people");
responseDocument.Data.SingleValue.Id.Should().Be(todoItem.Owner.StringId);
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("firstName").With(value => value.Should().Be(todoItem.Owner.FirstName));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("lastName").With(value => value.Should().Be(todoItem.Owner.LastName));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("displayName").With(value => value.Should().Be(todoItem.Owner.DisplayName));
- responseDocument.Data.SingleValue.Relationships.ShouldOnlyContainKeys("account", "ownedTodoItems", "assignedTodoItems");
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("firstName").WhoseValue.Should().Be(todoItem.Owner.FirstName);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("lastName").WhoseValue.Should().Be(todoItem.Owner.LastName);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("displayName").WhoseValue.Should().Be(todoItem.Owner.DisplayName);
+ responseDocument.Data.SingleValue.Relationships.Should().OnlyContainKeys("account", "ownedTodoItems", "assignedTodoItems");
responseDocument.Meta.Should().BeNull();
- store.SqlCommands.ShouldHaveCount(1);
+ store.SqlCommands.Should().HaveCount(1);
store.SqlCommands[0].With(command =>
{
@@ -299,7 +299,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", todoItem.Id);
});
}
@@ -332,7 +332,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Meta.Should().BeNull();
- store.SqlCommands.ShouldHaveCount(1);
+ store.SqlCommands.Should().HaveCount(1);
store.SqlCommands[0].With(command =>
{
@@ -343,7 +343,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", todoItem.Id);
});
}
diff --git a/test/DapperTests/IntegrationTests/ReadWrite/Resources/UpdateResourceTests.cs b/test/DapperTests/IntegrationTests/ReadWrite/Resources/UpdateResourceTests.cs
index b248db2e02..dc8bccf5ee 100644
--- a/test/DapperTests/IntegrationTests/ReadWrite/Resources/UpdateResourceTests.cs
+++ b/test/DapperTests/IntegrationTests/ReadWrite/Resources/UpdateResourceTests.cs
@@ -69,11 +69,11 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
Tag tagInDatabase = await dbContext.Tags.Include(tag => tag.Color).FirstWithIdAsync(existingTag.Id);
tagInDatabase.Name.Should().Be(existingTag.Name);
- tagInDatabase.Color.ShouldNotBeNull();
+ tagInDatabase.Color.Should().NotBeNull();
tagInDatabase.Color.Id.Should().Be(existingTag.Color.Id);
});
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -83,7 +83,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", existingTag.Id);
});
@@ -95,7 +95,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", existingTag.Id);
});
}
@@ -143,15 +143,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Type.Should().Be("todoItems");
responseDocument.Data.SingleValue.Id.Should().Be(existingTodoItem.StringId);
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("description").With(value => value.Should().Be(newDescription));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("priority").With(value => value.Should().Be(existingTodoItem.Priority));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("durationInHours").With(value => value.Should().Be(newDurationInHours));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("createdAt").With(value => value.Should().Be(existingTodoItem.CreatedAt));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("modifiedAt").With(value => value.Should().Be(DapperTestContext.FrozenTime));
- responseDocument.Data.SingleValue.Relationships.ShouldOnlyContainKeys("owner", "assignee", "tags");
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("description").WhoseValue.Should().Be(newDescription);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("priority").WhoseValue.Should().Be(existingTodoItem.Priority);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("durationInHours").WhoseValue.Should().Be(newDurationInHours);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("createdAt").WhoseValue.Should().Be(existingTodoItem.CreatedAt);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("modifiedAt").WhoseValue.Should().Be(DapperTestContext.FrozenTime);
+ responseDocument.Data.SingleValue.Relationships.Should().OnlyContainKeys("owner", "assignee", "tags");
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
@@ -173,15 +173,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
todoItemInDatabase.CreatedAt.Should().Be(existingTodoItem.CreatedAt);
todoItemInDatabase.LastModifiedAt.Should().Be(DapperTestContext.FrozenTime);
- todoItemInDatabase.Owner.ShouldNotBeNull();
+ todoItemInDatabase.Owner.Should().NotBeNull();
todoItemInDatabase.Owner.Id.Should().Be(existingTodoItem.Owner.Id);
- todoItemInDatabase.Assignee.ShouldNotBeNull();
+ todoItemInDatabase.Assignee.Should().NotBeNull();
todoItemInDatabase.Assignee.Id.Should().Be(existingTodoItem.Assignee.Id);
- todoItemInDatabase.Tags.ShouldHaveCount(1);
+ todoItemInDatabase.Tags.Should().HaveCount(1);
todoItemInDatabase.Tags.ElementAt(0).Id.Should().Be(existingTodoItem.Tags.ElementAt(0).Id);
});
- store.SqlCommands.ShouldHaveCount(3);
+ store.SqlCommands.Should().HaveCount(3);
store.SqlCommands[0].With(command =>
{
@@ -191,7 +191,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", existingTodoItem.Id);
});
@@ -203,7 +203,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE "Id" = @p4
"""));
- command.Parameters.ShouldHaveCount(4);
+ command.Parameters.Should().HaveCount(4);
command.Parameters.Should().Contain("@p1", newDescription);
command.Parameters.Should().Contain("@p2", newDurationInHours);
command.Parameters.Should().Contain("@p3", DapperTestContext.FrozenTime);
@@ -218,7 +218,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", existingTodoItem.Id);
});
}
@@ -300,15 +300,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Type.Should().Be("todoItems");
responseDocument.Data.SingleValue.Id.Should().Be(existingTodoItem.StringId);
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("description").With(value => value.Should().Be(newTodoItem.Description));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("priority").With(value => value.Should().Be(newTodoItem.Priority));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("durationInHours").With(value => value.Should().Be(newTodoItem.DurationInHours));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("createdAt").With(value => value.Should().Be(existingTodoItem.CreatedAt));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("modifiedAt").With(value => value.Should().Be(DapperTestContext.FrozenTime));
- responseDocument.Data.SingleValue.Relationships.ShouldOnlyContainKeys("owner", "assignee", "tags");
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("description").WhoseValue.Should().Be(newTodoItem.Description);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("priority").WhoseValue.Should().Be(newTodoItem.Priority);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("durationInHours").WhoseValue.Should().Be(newTodoItem.DurationInHours);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("createdAt").WhoseValue.Should().Be(existingTodoItem.CreatedAt);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("modifiedAt").WhoseValue.Should().Be(DapperTestContext.FrozenTime);
+ responseDocument.Data.SingleValue.Relationships.Should().OnlyContainKeys("owner", "assignee", "tags");
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
@@ -330,15 +330,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
todoItemInDatabase.CreatedAt.Should().Be(existingTodoItem.CreatedAt);
todoItemInDatabase.LastModifiedAt.Should().Be(DapperTestContext.FrozenTime);
- todoItemInDatabase.Owner.ShouldNotBeNull();
+ todoItemInDatabase.Owner.Should().NotBeNull();
todoItemInDatabase.Owner.Id.Should().Be(existingPerson1.Id);
- todoItemInDatabase.Assignee.ShouldNotBeNull();
+ todoItemInDatabase.Assignee.Should().NotBeNull();
todoItemInDatabase.Assignee.Id.Should().Be(existingPerson2.Id);
- todoItemInDatabase.Tags.ShouldHaveCount(1);
+ todoItemInDatabase.Tags.Should().HaveCount(1);
todoItemInDatabase.Tags.ElementAt(0).Id.Should().Be(existingTag.Id);
});
- store.SqlCommands.ShouldHaveCount(5);
+ store.SqlCommands.Should().HaveCount(5);
store.SqlCommands[0].With(command =>
{
@@ -351,7 +351,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", existingTodoItem.Id);
});
@@ -363,7 +363,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE "Id" = @p7
"""));
- command.Parameters.ShouldHaveCount(7);
+ command.Parameters.Should().HaveCount(7);
command.Parameters.Should().Contain("@p1", newTodoItem.Description);
command.Parameters.Should().Contain("@p2", newTodoItem.Priority);
command.Parameters.Should().Contain("@p3", newTodoItem.DurationInHours);
@@ -381,7 +381,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE "Id" IN (@p2, @p3)
"""));
- command.Parameters.ShouldHaveCount(3);
+ command.Parameters.Should().HaveCount(3);
command.Parameters.Should().Contain("@p1", null);
command.Parameters.Should().Contain("@p2", existingTodoItem.Tags.ElementAt(0).Id);
command.Parameters.Should().Contain("@p3", existingTodoItem.Tags.ElementAt(1).Id);
@@ -395,7 +395,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE "Id" = @p2
"""));
- command.Parameters.ShouldHaveCount(2);
+ command.Parameters.Should().HaveCount(2);
command.Parameters.Should().Contain("@p1", existingTodoItem.Id);
command.Parameters.Should().Contain("@p2", existingTag.Id);
});
@@ -408,7 +408,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
WHERE t1."Id" = @p1
"""));
- command.Parameters.ShouldHaveCount(1);
+ command.Parameters.Should().HaveCount(1);
command.Parameters.Should().Contain("@p1", existingTodoItem.Id);
});
}
diff --git a/test/DapperTests/IntegrationTests/Sql/SubQueryInJoinTests.cs b/test/DapperTests/IntegrationTests/Sql/SubQueryInJoinTests.cs
index e9b2b001a5..8b7d18d2d2 100644
--- a/test/DapperTests/IntegrationTests/Sql/SubQueryInJoinTests.cs
+++ b/test/DapperTests/IntegrationTests/Sql/SubQueryInJoinTests.cs
@@ -44,7 +44,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -93,7 +93,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -142,7 +142,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -191,7 +191,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -244,7 +244,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -300,7 +300,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -361,7 +361,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -415,7 +415,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -472,7 +472,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -531,7 +531,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
@@ -592,7 +592,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- store.SqlCommands.ShouldHaveCount(2);
+ store.SqlCommands.Should().HaveCount(2);
store.SqlCommands[0].With(command =>
{
diff --git a/test/DiscoveryTests/ServiceDiscoveryFacadeTests.cs b/test/DiscoveryTests/ServiceDiscoveryFacadeTests.cs
index e4f16dbb1f..eeca3cdb89 100644
--- a/test/DiscoveryTests/ServiceDiscoveryFacadeTests.cs
+++ b/test/DiscoveryTests/ServiceDiscoveryFacadeTests.cs
@@ -8,7 +8,6 @@
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions;
-using TestBuildingBlocks;
using Xunit;
namespace DiscoveryTests;
@@ -37,10 +36,10 @@ public void Can_add_resources_from_assembly_to_graph()
var resourceGraph = serviceProvider.GetRequiredService();
ResourceType? personType = resourceGraph.FindResourceType(typeof(Person));
- personType.ShouldNotBeNull();
+ personType.Should().NotBeNull();
ResourceType? todoItemType = resourceGraph.FindResourceType(typeof(TodoItem));
- todoItemType.ShouldNotBeNull();
+ todoItemType.Should().NotBeNull();
}
[Fact]
@@ -57,7 +56,7 @@ public void Can_add_resource_from_current_assembly_to_graph()
var resourceGraph = serviceProvider.GetRequiredService();
ResourceType? resourceType = resourceGraph.FindResourceType(typeof(PrivateResource));
- resourceType.ShouldNotBeNull();
+ resourceType.Should().NotBeNull();
}
[Fact]
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/Archiving/ArchiveTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/Archiving/ArchiveTests.cs
index b80d7c3e3c..97506ec5d6 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/Archiving/ArchiveTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/Archiving/ArchiveTests.cs
@@ -44,9 +44,9 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Id.Should().Be(broadcast.StringId);
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("archivedAt").With(value => value.Should().Be(broadcast.ArchivedAt));
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("archivedAt").WhoseValue.Should().Be(broadcast.ArchivedAt);
}
[Fact]
@@ -70,9 +70,9 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Id.Should().Be(broadcast.StringId);
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("archivedAt").With(value => value.Should().BeNull());
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("archivedAt").WhoseValue.Should().BeNull();
}
[Fact]
@@ -97,9 +97,9 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(broadcasts[1].StringId);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("archivedAt").With(value => value.Should().BeNull());
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("archivedAt").WhoseValue.Should().BeNull();
}
[Fact]
@@ -124,12 +124,12 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(2);
+ responseDocument.Data.ManyValue.Should().HaveCount(2);
responseDocument.Data.ManyValue[0].Id.Should().Be(broadcasts[0].StringId);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("archivedAt").With(value => value.Should().Be(broadcasts[0].ArchivedAt));
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("archivedAt").WhoseValue.Should().Be(broadcasts[0].ArchivedAt);
responseDocument.Data.ManyValue[1].Id.Should().Be(broadcasts[1].StringId);
- responseDocument.Data.ManyValue[1].Attributes.ShouldContainKey("archivedAt").With(value => value.Should().BeNull());
+ responseDocument.Data.ManyValue[1].Attributes.Should().ContainKey("archivedAt").WhoseValue.Should().BeNull();
}
[Fact]
@@ -154,12 +154,12 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Id.Should().Be(station.StringId);
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].Id.Should().Be(station.Broadcasts.ElementAt(1).StringId);
- responseDocument.Included[0].Attributes.ShouldContainKey("archivedAt").With(value => value.Should().BeNull());
+ responseDocument.Included[0].Attributes.Should().ContainKey("archivedAt").WhoseValue.Should().BeNull();
}
[Fact]
@@ -184,14 +184,14 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Id.Should().Be(station.StringId);
- responseDocument.Included.ShouldHaveCount(2);
+ responseDocument.Included.Should().HaveCount(2);
responseDocument.Included[0].Id.Should().Be(station.Broadcasts.ElementAt(0).StringId);
- responseDocument.Included[0].Attributes.ShouldContainKey("archivedAt").With(value => value.Should().Be(station.Broadcasts.ElementAt(0).ArchivedAt));
+ responseDocument.Included[0].Attributes.Should().ContainKey("archivedAt").WhoseValue.Should().Be(station.Broadcasts.ElementAt(0).ArchivedAt);
responseDocument.Included[1].Id.Should().Be(station.Broadcasts.ElementAt(1).StringId);
- responseDocument.Included[1].Attributes.ShouldContainKey("archivedAt").With(value => value.Should().BeNull());
+ responseDocument.Included[1].Attributes.Should().ContainKey("archivedAt").WhoseValue.Should().BeNull();
}
[Fact]
@@ -215,9 +215,9 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Id.Should().Be(comment.AppliesTo.StringId);
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("archivedAt").With(value => value.Should().Be(comment.AppliesTo.ArchivedAt));
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("archivedAt").WhoseValue.Should().Be(comment.AppliesTo.ArchivedAt);
}
[Fact]
@@ -242,9 +242,9 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(station.Broadcasts.ElementAt(1).StringId);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("archivedAt").With(value => value.Should().BeNull());
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("archivedAt").WhoseValue.Should().BeNull();
}
[Fact]
@@ -271,12 +271,12 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
DateTimeOffset archivedAt0 = station.Broadcasts.ElementAt(0).ArchivedAt!.Value;
- responseDocument.Data.ManyValue.ShouldHaveCount(2);
+ responseDocument.Data.ManyValue.Should().HaveCount(2);
responseDocument.Data.ManyValue[0].Id.Should().Be(station.Broadcasts.ElementAt(0).StringId);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("archivedAt").With(value => value.Should().Be(archivedAt0));
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("archivedAt").WhoseValue.Should().Be(archivedAt0);
responseDocument.Data.ManyValue[1].Id.Should().Be(station.Broadcasts.ElementAt(1).StringId);
- responseDocument.Data.ManyValue[1].Attributes.ShouldContainKey("archivedAt").With(value => value.Should().BeNull());
+ responseDocument.Data.ManyValue[1].Attributes.Should().ContainKey("archivedAt").WhoseValue.Should().BeNull();
}
[Fact]
@@ -302,12 +302,12 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(network.Stations.ElementAt(0).StringId);
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].Id.Should().Be(network.Stations.ElementAt(0).Broadcasts.ElementAt(1).StringId);
- responseDocument.Included[0].Attributes.ShouldContainKey("archivedAt").With(value => value.Should().BeNull());
+ responseDocument.Included[0].Attributes.Should().ContainKey("archivedAt").WhoseValue.Should().BeNull();
}
[Fact]
@@ -335,14 +335,14 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
DateTimeOffset archivedAt0 = network.Stations.ElementAt(0).Broadcasts.ElementAt(0).ArchivedAt!.Value;
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(network.Stations.ElementAt(0).StringId);
- responseDocument.Included.ShouldHaveCount(2);
+ responseDocument.Included.Should().HaveCount(2);
responseDocument.Included[0].Id.Should().Be(network.Stations.ElementAt(0).Broadcasts.ElementAt(0).StringId);
- responseDocument.Included[0].Attributes.ShouldContainKey("archivedAt").With(value => value.Should().Be(archivedAt0));
+ responseDocument.Included[0].Attributes.Should().ContainKey("archivedAt").WhoseValue.Should().Be(archivedAt0);
responseDocument.Included[1].Id.Should().Be(network.Stations.ElementAt(0).Broadcasts.ElementAt(1).StringId);
- responseDocument.Included[1].Attributes.ShouldContainKey("archivedAt").With(value => value.Should().BeNull());
+ responseDocument.Included[1].Attributes.Should().ContainKey("archivedAt").WhoseValue.Should().BeNull();
}
[Fact]
@@ -367,7 +367,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(station.Broadcasts.ElementAt(1).StringId);
}
@@ -393,7 +393,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(2);
+ responseDocument.Data.ManyValue.Should().HaveCount(2);
responseDocument.Data.ManyValue[0].Id.Should().Be(station.Broadcasts.ElementAt(0).StringId);
responseDocument.Data.ManyValue[1].Id.Should().Be(station.Broadcasts.ElementAt(1).StringId);
}
@@ -425,10 +425,10 @@ public async Task Can_create_unarchived_resource()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Created);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("title").With(value => value.Should().Be(newBroadcast.Title));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("airedAt").With(value => value.Should().Be(newBroadcast.AiredAt));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("archivedAt").With(value => value.Should().BeNull());
+ responseDocument.Data.SingleValue.Should().NotBeNull();
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("title").WhoseValue.Should().Be(newBroadcast.Title);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("airedAt").WhoseValue.Should().Be(newBroadcast.AiredAt);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("archivedAt").WhoseValue.Should().BeNull();
}
[Fact]
@@ -459,7 +459,7 @@ public async Task Cannot_create_archived_resource()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Forbidden);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Forbidden);
@@ -591,7 +591,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Forbidden);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Forbidden);
@@ -650,7 +650,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Forbidden);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Forbidden);
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Controllers/AtomicCustomConstrainedOperationsControllerTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Controllers/AtomicCustomConstrainedOperationsControllerTests.cs
index 3cdf4f20c0..b515ff7c13 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Controllers/AtomicCustomConstrainedOperationsControllerTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Controllers/AtomicCustomConstrainedOperationsControllerTests.cs
@@ -65,7 +65,7 @@ public async Task Can_create_resources_for_matching_resource_type()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(2);
+ responseDocument.Results.Should().HaveCount(2);
}
[Fact]
@@ -98,13 +98,13 @@ public async Task Cannot_create_resource_for_inaccessible_operation()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Forbidden);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Forbidden);
error.Title.Should().Be("The requested operation is not accessible.");
error.Detail.Should().Be("The 'add' resource operation is not accessible for resource type 'performers'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]");
}
@@ -147,13 +147,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Forbidden);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Forbidden);
error.Title.Should().Be("The requested operation is not accessible.");
error.Detail.Should().Be("The 'update' resource operation is not accessible for resource type 'musicTracks'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]");
}
@@ -203,13 +203,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Forbidden);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Forbidden);
error.Title.Should().Be("The requested operation is not accessible.");
error.Detail.Should().Be("The 'add' relationship operation is not accessible for relationship 'performers' on resource type 'musicTracks'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]");
}
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Controllers/AtomicDefaultConstrainedOperationsControllerTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Controllers/AtomicDefaultConstrainedOperationsControllerTests.cs
index 0b60bfe782..bec1bdc883 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Controllers/AtomicDefaultConstrainedOperationsControllerTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Controllers/AtomicDefaultConstrainedOperationsControllerTests.cs
@@ -55,13 +55,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Forbidden);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Forbidden);
error.Title.Should().Be("The requested operation is not accessible.");
error.Detail.Should().Be("The 'remove' resource operation is not accessible for resource type 'textLanguages'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]");
}
@@ -147,27 +147,27 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Forbidden);
- responseDocument.Errors.ShouldHaveCount(3);
+ responseDocument.Errors.Should().HaveCount(3);
ErrorObject error1 = responseDocument.Errors[0];
error1.StatusCode.Should().Be(HttpStatusCode.Forbidden);
error1.Title.Should().Be("The requested operation is not accessible.");
error1.Detail.Should().Be("The 'update' relationship operation is not accessible for relationship 'lyrics' on resource type 'textLanguages'.");
- error1.Source.ShouldNotBeNull();
+ error1.Source.Should().NotBeNull();
error1.Source.Pointer.Should().Be("/atomic:operations[0]");
ErrorObject error2 = responseDocument.Errors[1];
error2.StatusCode.Should().Be(HttpStatusCode.Forbidden);
error2.Title.Should().Be("The requested operation is not accessible.");
error2.Detail.Should().Be("The 'add' relationship operation is not accessible for relationship 'lyrics' on resource type 'textLanguages'.");
- error2.Source.ShouldNotBeNull();
+ error2.Source.Should().NotBeNull();
error2.Source.Pointer.Should().Be("/atomic:operations[1]");
ErrorObject error3 = responseDocument.Errors[2];
error3.StatusCode.Should().Be(HttpStatusCode.Forbidden);
error3.Title.Should().Be("The requested operation is not accessible.");
error3.Detail.Should().Be("The 'remove' relationship operation is not accessible for relationship 'lyrics' on resource type 'textLanguages'.");
- error3.Source.ShouldNotBeNull();
+ error3.Source.Should().NotBeNull();
error3.Source.Pointer.Should().Be("/atomic:operations[2]");
}
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Creating/AtomicCreateResourceTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Creating/AtomicCreateResourceTests.cs
index 2438aca27a..c4f70fe60d 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Creating/AtomicCreateResourceTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Creating/AtomicCreateResourceTests.cs
@@ -65,17 +65,17 @@ public async Task Can_create_resource()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(1);
+ responseDocument.Results.Should().HaveCount(1);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("performers");
- resource.Attributes.ShouldContainKey("artistName").With(value => value.Should().Be(newArtistName));
- resource.Attributes.ShouldContainKey("bornAt").With(value => value.Should().Be(newBornAt));
+ resource.Attributes.Should().ContainKey("artistName").WhoseValue.Should().Be(newArtistName);
+ resource.Attributes.Should().ContainKey("bornAt").WhoseValue.Should().Be(newBornAt);
resource.Relationships.Should().BeNull();
});
- int newPerformerId = int.Parse(responseDocument.Results[0].Data.SingleValue!.Id.ShouldNotBeNull());
+ int newPerformerId = int.Parse(responseDocument.Results[0].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
@@ -128,33 +128,30 @@ public async Task Can_create_resources()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(elementCount);
+ responseDocument.Results.Should().HaveCount(elementCount);
for (int index = 0; index < elementCount; index++)
{
- responseDocument.Results[index].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[index].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
- resource.ShouldNotBeNull();
+ resource.Should().NotBeNull();
resource.Type.Should().Be("musicTracks");
- resource.Attributes.ShouldContainKey("title").With(value => value.Should().Be(newTracks[index].Title));
+ resource.Attributes.Should().ContainKey("title").WhoseValue.Should().Be(newTracks[index].Title);
+ resource.Attributes.Should().ContainKey("lengthInSeconds").WhoseValue.As().Should().BeApproximately(newTracks[index].LengthInSeconds);
+ resource.Attributes.Should().ContainKey("genre").WhoseValue.Should().Be(newTracks[index].Genre);
+ resource.Attributes.Should().ContainKey("releasedAt").WhoseValue.Should().Be(newTracks[index].ReleasedAt);
- resource.Attributes.ShouldContainKey("lengthInSeconds")
- .With(value => value.As().Should().BeApproximately(newTracks[index].LengthInSeconds));
-
- resource.Attributes.ShouldContainKey("genre").With(value => value.Should().Be(newTracks[index].Genre));
- resource.Attributes.ShouldContainKey("releasedAt").With(value => value.Should().Be(newTracks[index].ReleasedAt));
-
- resource.Relationships.ShouldNotBeEmpty();
+ resource.Relationships.Should().NotBeEmpty();
});
}
- Guid[] newTrackIds = responseDocument.Results.Select(result => Guid.Parse(result.Data.SingleValue!.Id.ShouldNotBeNull())).ToArray();
+ Guid[] newTrackIds = responseDocument.Results.Select(result => Guid.Parse(result.Data.SingleValue!.Id.Should().NotBeNull().And.Subject)).ToArray();
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
List tracksInDatabase = await dbContext.MusicTracks.Where(musicTrack => newTrackIds.Contains(musicTrack.Id)).ToListAsync();
- tracksInDatabase.ShouldHaveCount(elementCount);
+ tracksInDatabase.Should().HaveCount(elementCount);
for (int index = 0; index < elementCount; index++)
{
@@ -201,17 +198,17 @@ public async Task Can_create_resource_without_attributes_or_relationships()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(1);
+ responseDocument.Results.Should().HaveCount(1);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("performers");
- resource.Attributes.ShouldContainKey("artistName").With(value => value.Should().BeNull());
- resource.Attributes.ShouldContainKey("bornAt").With(value => value.Should().Be(default(DateTimeOffset)));
+ resource.Attributes.Should().ContainKey("artistName").WhoseValue.Should().BeNull();
+ resource.Attributes.Should().ContainKey("bornAt").WhoseValue.Should().Be(default(DateTimeOffset));
resource.Relationships.Should().BeNull();
});
- int newPerformerId = int.Parse(responseDocument.Results[0].Data.SingleValue!.Id.ShouldNotBeNull());
+ int newPerformerId = int.Parse(responseDocument.Results[0].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
@@ -256,15 +253,15 @@ public async Task Cannot_create_resource_with_unknown_attribute()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Unknown attribute found.");
error.Detail.Should().Be("Attribute 'doesNotExist' does not exist on resource type 'playlists'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/attributes/doesNotExist");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -304,16 +301,16 @@ public async Task Can_create_resource_with_unknown_attribute()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(1);
+ responseDocument.Results.Should().HaveCount(1);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("playlists");
- resource.Attributes.ShouldContainKey("name").With(value => value.Should().Be(newName));
- resource.Relationships.ShouldNotBeEmpty();
+ resource.Attributes.Should().ContainKey("name").WhoseValue.Should().Be(newName);
+ resource.Relationships.Should().NotBeEmpty();
});
- long newPlaylistId = long.Parse(responseDocument.Results[0].Data.SingleValue!.Id.ShouldNotBeNull());
+ long newPlaylistId = long.Parse(responseDocument.Results[0].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
@@ -361,15 +358,15 @@ public async Task Cannot_create_resource_with_unknown_relationship()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Unknown relationship found.");
error.Detail.Should().Be("Relationship 'doesNotExist' does not exist on resource type 'lyrics'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/doesNotExist");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -419,22 +416,22 @@ public async Task Can_create_resource_with_unknown_relationship()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(1);
+ responseDocument.Results.Should().HaveCount(1);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("lyrics");
- resource.Attributes.ShouldNotBeEmpty();
- resource.Relationships.ShouldNotBeEmpty();
+ resource.Attributes.Should().NotBeEmpty();
+ resource.Relationships.Should().NotBeEmpty();
});
- long newLyricId = long.Parse(responseDocument.Results[0].Data.SingleValue!.Id.ShouldNotBeNull());
+ long newLyricId = long.Parse(responseDocument.Results[0].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
Lyric lyricInDatabase = await dbContext.Lyrics.FirstWithIdAsync(newLyricId);
- lyricInDatabase.ShouldNotBeNull();
+ lyricInDatabase.Should().NotBeNull();
});
}
@@ -473,15 +470,15 @@ public async Task Cannot_create_resource_with_client_generated_ID()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Forbidden);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Forbidden);
error.Title.Should().Be("Failed to deserialize request body: The use of client-generated IDs is disabled.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/id");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -508,15 +505,15 @@ public async Task Cannot_create_resource_for_href_element()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'href' element is not supported.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/href");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -546,15 +543,15 @@ public async Task Cannot_create_resource_for_ref_element()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'relationship' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -580,15 +577,15 @@ public async Task Cannot_create_resource_for_missing_data()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'data' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -615,15 +612,15 @@ public async Task Cannot_create_resource_for_null_data()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Expected an object, instead of 'null'.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -662,15 +659,15 @@ public async Task Cannot_create_resource_for_array_data()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Expected an object, instead of an array.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -702,15 +699,15 @@ public async Task Cannot_create_resource_for_missing_type()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'type' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -740,15 +737,15 @@ public async Task Cannot_create_resource_for_unknown_type()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Unknown resource type found.");
error.Detail.Should().Be($"Resource type '{Unknown.ResourceType}' does not exist.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/type");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -785,15 +782,15 @@ public async Task Cannot_create_resource_with_readonly_attribute()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Attribute is read-only.");
error.Detail.Should().Be("Attribute 'isArchived' on resource type 'playlists' is read-only.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/attributes/isArchived");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -827,15 +824,15 @@ public async Task Cannot_create_resource_with_incompatible_attribute_value()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Incompatible attribute value found.");
error.Detail.Should().Be("Failed to convert attribute 'bornAt' with value '12345' of type 'Number' to type 'DateTimeOffset'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/attributes/bornAt");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -911,16 +908,16 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(1);
+ responseDocument.Results.Should().HaveCount(1);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("musicTracks");
- resource.Attributes.ShouldContainKey("title").With(value => value.Should().Be(newTitle));
- resource.Relationships.ShouldNotBeEmpty();
+ resource.Attributes.Should().ContainKey("title").WhoseValue.Should().Be(newTitle);
+ resource.Relationships.Should().NotBeEmpty();
});
- Guid newTrackId = Guid.Parse(responseDocument.Results[0].Data.SingleValue!.Id.ShouldNotBeNull());
+ Guid newTrackId = Guid.Parse(responseDocument.Results[0].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
@@ -938,13 +935,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
trackInDatabase.Title.Should().Be(newTitle);
- trackInDatabase.Lyric.ShouldNotBeNull();
+ trackInDatabase.Lyric.Should().NotBeNull();
trackInDatabase.Lyric.Id.Should().Be(existingLyric.Id);
- trackInDatabase.OwnedBy.ShouldNotBeNull();
+ trackInDatabase.OwnedBy.Should().NotBeNull();
trackInDatabase.OwnedBy.Id.Should().Be(existingCompany.Id);
- trackInDatabase.Performers.ShouldHaveCount(1);
+ trackInDatabase.Performers.Should().HaveCount(1);
trackInDatabase.Performers[0].Id.Should().Be(existingPerformer.Id);
});
}
@@ -980,14 +977,14 @@ public async Task Cannot_assign_attribute_with_blocked_capability()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Attribute value cannot be assigned when creating resource.");
error.Detail.Should().Be("The attribute 'createdAt' on resource type 'lyrics' cannot be assigned to.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/attributes/createdAt");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Creating/AtomicCreateResourceWithClientGeneratedIdTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Creating/AtomicCreateResourceWithClientGeneratedIdTests.cs
index e20d8d45ff..8675f54c3d 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Creating/AtomicCreateResourceWithClientGeneratedIdTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Creating/AtomicCreateResourceWithClientGeneratedIdTests.cs
@@ -73,14 +73,14 @@ public async Task Can_create_resource_with_client_generated_guid_ID_having_side_
string isoCode = $"{newLanguage.IsoCode}{ImplicitlyChangingTextLanguageDefinition.Suffix}";
- responseDocument.Results.ShouldHaveCount(1);
+ responseDocument.Results.Should().HaveCount(1);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("textLanguages");
- resource.Attributes.ShouldContainKey("isoCode").With(value => value.Should().Be(isoCode));
+ resource.Attributes.Should().ContainKey("isoCode").WhoseValue.Should().Be(isoCode);
resource.Attributes.Should().NotContainKey("isRightToLeft");
- resource.Relationships.ShouldNotBeEmpty();
+ resource.Relationships.Should().NotBeEmpty();
});
await _testContext.RunOnDatabaseAsync(async dbContext =>
@@ -183,16 +183,16 @@ public async Task Can_create_resource_for_missing_client_generated_ID_having_sid
string isoCode = $"{newIsoCode}{ImplicitlyChangingTextLanguageDefinition.Suffix}";
- responseDocument.Results.ShouldHaveCount(1);
+ responseDocument.Results.Should().HaveCount(1);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("textLanguages");
- resource.Attributes.ShouldContainKey("isoCode").With(value => value.Should().Be(isoCode));
- resource.Relationships.ShouldNotBeEmpty();
+ resource.Attributes.Should().ContainKey("isoCode").WhoseValue.Should().Be(isoCode);
+ resource.Relationships.Should().NotBeEmpty();
});
- Guid newLanguageId = Guid.Parse(responseDocument.Results[0].Data.SingleValue!.Id.ShouldNotBeNull());
+ Guid newLanguageId = Guid.Parse(responseDocument.Results[0].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
@@ -239,15 +239,15 @@ public async Task Cannot_create_resource_for_missing_client_generated_ID(ClientI
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'id' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Theory]
@@ -299,13 +299,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Conflict);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Conflict);
error.Title.Should().Be("Another resource with the specified ID already exists.");
error.Detail.Should().Be($"Another resource of type 'textLanguages' with ID '{languageToCreate.StringId}' already exists.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]");
error.Meta.Should().NotContainKey("requestBody");
}
@@ -348,15 +348,15 @@ public async Task Cannot_create_resource_for_incompatible_ID(ClientIdGenerationM
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Incompatible 'id' value found.");
error.Detail.Should().Be($"Failed to convert '{guid}' of type 'String' to type 'Int32'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/id");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Theory]
@@ -397,16 +397,16 @@ public async Task Can_create_resource_with_local_ID(ClientIdGenerationMode mode)
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(1);
+ responseDocument.Results.Should().HaveCount(1);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("musicTracks");
- resource.Attributes.ShouldContainKey("title").With(value => value.Should().Be(newTitle));
+ resource.Attributes.Should().ContainKey("title").WhoseValue.Should().Be(newTitle);
resource.Relationships.Should().BeNull();
});
- Guid newTrackId = Guid.Parse(responseDocument.Results[0].Data.SingleValue!.Id.ShouldNotBeNull());
+ Guid newTrackId = Guid.Parse(responseDocument.Results[0].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
@@ -448,15 +448,15 @@ public async Task Cannot_create_resource_with_local_ID(ClientIdGenerationMode mo
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'lid' element cannot be used because a client-generated ID is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/lid");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Theory]
@@ -493,14 +493,14 @@ public async Task Cannot_create_resource_for_ID_and_local_ID(ClientIdGenerationM
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'id' and 'lid' element are mutually exclusive.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Creating/AtomicCreateResourceWithToManyRelationshipTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Creating/AtomicCreateResourceWithToManyRelationshipTests.cs
index 0d4d367c12..775b6d2197 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Creating/AtomicCreateResourceWithToManyRelationshipTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Creating/AtomicCreateResourceWithToManyRelationshipTests.cs
@@ -83,22 +83,22 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(1);
+ responseDocument.Results.Should().HaveCount(1);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("musicTracks");
- resource.Attributes.ShouldNotBeEmpty();
- resource.Relationships.ShouldNotBeEmpty();
+ resource.Attributes.Should().NotBeEmpty();
+ resource.Relationships.Should().NotBeEmpty();
});
- Guid newTrackId = Guid.Parse(responseDocument.Results[0].Data.SingleValue!.Id.ShouldNotBeNull());
+ Guid newTrackId = Guid.Parse(responseDocument.Results[0].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
MusicTrack trackInDatabase = await dbContext.MusicTracks.Include(musicTrack => musicTrack.Performers).FirstWithIdAsync(newTrackId);
- trackInDatabase.Performers.ShouldHaveCount(2);
+ trackInDatabase.Performers.Should().HaveCount(2);
trackInDatabase.Performers.Should().ContainSingle(performer => performer.Id == existingPerformers[0].Id);
trackInDatabase.Performers.Should().ContainSingle(performer => performer.Id == existingPerformers[1].Id);
});
@@ -168,22 +168,22 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(1);
+ responseDocument.Results.Should().HaveCount(1);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("playlists");
- resource.Attributes.ShouldNotBeEmpty();
- resource.Relationships.ShouldNotBeEmpty();
+ resource.Attributes.Should().NotBeEmpty();
+ resource.Relationships.Should().NotBeEmpty();
});
- long newPlaylistId = long.Parse(responseDocument.Results[0].Data.SingleValue!.Id.ShouldNotBeNull());
+ long newPlaylistId = long.Parse(responseDocument.Results[0].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
Playlist playlistInDatabase = await dbContext.Playlists.Include(playlist => playlist.Tracks).FirstWithIdAsync(newPlaylistId);
- playlistInDatabase.Tracks.ShouldHaveCount(3);
+ playlistInDatabase.Tracks.Should().HaveCount(3);
playlistInDatabase.Tracks.Should().ContainSingle(musicTrack => musicTrack.Id == existingTracks[0].Id);
playlistInDatabase.Tracks.Should().ContainSingle(musicTrack => musicTrack.Id == existingTracks[1].Id);
playlistInDatabase.Tracks.Should().ContainSingle(musicTrack => musicTrack.Id == existingTracks[2].Id);
@@ -230,15 +230,15 @@ public async Task Cannot_create_for_missing_relationship_type()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'type' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/performers/data[0]");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -282,15 +282,15 @@ public async Task Cannot_create_for_unknown_relationship_type()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Unknown resource type found.");
error.Detail.Should().Be($"Resource type '{Unknown.ResourceType}' does not exist.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/performers/data[0]/type");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -333,15 +333,15 @@ public async Task Cannot_create_for_missing_relationship_ID()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'id' or 'lid' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/performers/data[0]");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -399,13 +399,13 @@ public async Task Cannot_create_for_unknown_relationship_IDs()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(2);
+ responseDocument.Errors.Should().HaveCount(2);
ErrorObject error1 = responseDocument.Errors[0];
error1.StatusCode.Should().Be(HttpStatusCode.NotFound);
error1.Title.Should().Be("A related resource does not exist.");
error1.Detail.Should().Be($"Related resource of type 'performers' with ID '{performerId1}' in relationship 'performers' does not exist.");
- error1.Source.ShouldNotBeNull();
+ error1.Source.Should().NotBeNull();
error1.Source.Pointer.Should().Be("/atomic:operations[0]");
error1.Meta.Should().NotContainKey("requestBody");
@@ -413,7 +413,7 @@ public async Task Cannot_create_for_unknown_relationship_IDs()
error2.StatusCode.Should().Be(HttpStatusCode.NotFound);
error2.Title.Should().Be("A related resource does not exist.");
error2.Detail.Should().Be($"Related resource of type 'performers' with ID '{performerId2}' in relationship 'performers' does not exist.");
- error2.Source.ShouldNotBeNull();
+ error2.Source.Should().NotBeNull();
error2.Source.Pointer.Should().Be("/atomic:operations[0]");
error2.Meta.Should().NotContainKey("requestBody");
}
@@ -459,15 +459,15 @@ public async Task Cannot_create_on_relationship_type_mismatch()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Conflict);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Conflict);
error.Title.Should().Be("Failed to deserialize request body: Incompatible resource type found.");
error.Detail.Should().Be("Type 'playlists' is not convertible to type 'performers' of relationship 'performers'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/performers/data[0]/type");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -529,22 +529,22 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(1);
+ responseDocument.Results.Should().HaveCount(1);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("musicTracks");
- resource.Attributes.ShouldNotBeEmpty();
- resource.Relationships.ShouldNotBeEmpty();
+ resource.Attributes.Should().NotBeEmpty();
+ resource.Relationships.Should().NotBeEmpty();
});
- Guid newTrackId = Guid.Parse(responseDocument.Results[0].Data.SingleValue!.Id.ShouldNotBeNull());
+ Guid newTrackId = Guid.Parse(responseDocument.Results[0].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
MusicTrack trackInDatabase = await dbContext.MusicTracks.Include(musicTrack => musicTrack.Performers).FirstWithIdAsync(newTrackId);
- trackInDatabase.Performers.ShouldHaveCount(1);
+ trackInDatabase.Performers.Should().HaveCount(1);
trackInDatabase.Performers[0].Id.Should().Be(existingPerformer.Id);
});
}
@@ -582,15 +582,15 @@ public async Task Cannot_create_with_missing_data_in_OneToMany_relationship()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'data' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/performers");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -627,15 +627,15 @@ public async Task Cannot_create_with_null_data_in_ManyToMany_relationship()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Expected an array, instead of 'null'.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/tracks/data");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -674,15 +674,15 @@ public async Task Cannot_create_with_object_data_in_ManyToMany_relationship()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Expected an array, instead of an object.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/tracks/data");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -726,14 +726,14 @@ public async Task Cannot_assign_relationship_with_blocked_capability()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Relationship cannot be assigned.");
error.Detail.Should().Be("The relationship 'occursIn' on resource type 'musicTracks' cannot be assigned to.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/occursIn");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Creating/AtomicCreateResourceWithToOneRelationshipTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Creating/AtomicCreateResourceWithToOneRelationshipTests.cs
index a522105806..ff60ccbf87 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Creating/AtomicCreateResourceWithToOneRelationshipTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Creating/AtomicCreateResourceWithToOneRelationshipTests.cs
@@ -77,22 +77,22 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(1);
+ responseDocument.Results.Should().HaveCount(1);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("lyrics");
- resource.Attributes.ShouldNotBeEmpty();
- resource.Relationships.ShouldNotBeEmpty();
+ resource.Attributes.Should().NotBeEmpty();
+ resource.Relationships.Should().NotBeEmpty();
});
- long newLyricId = long.Parse(responseDocument.Results[0].Data.SingleValue!.Id.ShouldNotBeNull());
+ long newLyricId = long.Parse(responseDocument.Results[0].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
Lyric lyricInDatabase = await dbContext.Lyrics.Include(lyric => lyric.Track).FirstWithIdAsync(newLyricId);
- lyricInDatabase.Track.ShouldNotBeNull();
+ lyricInDatabase.Track.Should().NotBeNull();
lyricInDatabase.Track.Id.Should().Be(existingTrack.Id);
});
}
@@ -148,22 +148,22 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(1);
+ responseDocument.Results.Should().HaveCount(1);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("musicTracks");
- resource.Attributes.ShouldNotBeEmpty();
- resource.Relationships.ShouldNotBeEmpty();
+ resource.Attributes.Should().NotBeEmpty();
+ resource.Relationships.Should().NotBeEmpty();
});
- Guid newTrackId = Guid.Parse(responseDocument.Results[0].Data.SingleValue!.Id.ShouldNotBeNull());
+ Guid newTrackId = Guid.Parse(responseDocument.Results[0].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
MusicTrack trackInDatabase = await dbContext.MusicTracks.Include(musicTrack => musicTrack.Lyric).FirstWithIdAsync(newTrackId);
- trackInDatabase.Lyric.ShouldNotBeNull();
+ trackInDatabase.Lyric.Should().NotBeNull();
trackInDatabase.Lyric.Id.Should().Be(existingLyric.Id);
});
}
@@ -225,18 +225,18 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(elementCount);
+ responseDocument.Results.Should().HaveCount(elementCount);
for (int index = 0; index < elementCount; index++)
{
- responseDocument.Results[index].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[index].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("musicTracks");
- resource.Attributes.ShouldContainKey("title").With(value => value.Should().Be(newTrackTitles[index]));
+ resource.Attributes.Should().ContainKey("title").WhoseValue.Should().Be(newTrackTitles[index]);
});
}
- Guid[] newTrackIds = responseDocument.Results.Select(result => Guid.Parse(result.Data.SingleValue!.Id.ShouldNotBeNull())).ToArray();
+ Guid[] newTrackIds = responseDocument.Results.Select(result => Guid.Parse(result.Data.SingleValue!.Id.Should().NotBeNull().And.Subject)).ToArray();
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
@@ -251,7 +251,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// @formatter:wrap_after_property_in_chained_method_calls restore
// @formatter:wrap_chained_method_calls restore
- tracksInDatabase.ShouldHaveCount(elementCount);
+ tracksInDatabase.Should().HaveCount(elementCount);
for (int index = 0; index < elementCount; index++)
{
@@ -259,7 +259,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
trackInDatabase.Title.Should().Be(newTrackTitles[index]);
- trackInDatabase.OwnedBy.ShouldNotBeNull();
+ trackInDatabase.OwnedBy.Should().NotBeNull();
trackInDatabase.OwnedBy.Id.Should().Be(existingCompany.Id);
}
});
@@ -296,15 +296,15 @@ public async Task Cannot_create_for_null_relationship()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Expected an object, instead of 'null'.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/lyric");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -340,15 +340,15 @@ public async Task Cannot_create_for_missing_data_in_relationship()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'data' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/lyric");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -392,15 +392,15 @@ public async Task Cannot_create_for_array_data_in_relationship()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Expected an object or 'null', instead of an array.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/lyric/data");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -440,15 +440,15 @@ public async Task Cannot_create_for_missing_relationship_type()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'type' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/lyric/data");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -489,15 +489,15 @@ public async Task Cannot_create_for_unknown_relationship_type()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Unknown resource type found.");
error.Detail.Should().Be($"Resource type '{Unknown.ResourceType}' does not exist.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/lyric/data/type");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -537,15 +537,15 @@ public async Task Cannot_create_for_missing_relationship_ID()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'id' or 'lid' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/lyric/data");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -594,13 +594,13 @@ public async Task Cannot_create_with_unknown_relationship_ID()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
error.Title.Should().Be("A related resource does not exist.");
error.Detail.Should().Be($"Related resource of type 'lyrics' with ID '{lyricId}' in relationship 'lyric' does not exist.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]");
error.Meta.Should().NotContainKey("requestBody");
}
@@ -643,15 +643,15 @@ public async Task Cannot_create_on_relationship_type_mismatch()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Conflict);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Conflict);
error.Title.Should().Be("Failed to deserialize request body: Incompatible resource type found.");
error.Detail.Should().Be("Type 'playlists' is not convertible to type 'lyrics' of relationship 'lyric'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/lyric/data/type");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -715,22 +715,22 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(1);
+ responseDocument.Results.Should().HaveCount(1);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("musicTracks");
- resource.Attributes.ShouldNotBeEmpty();
- resource.Relationships.ShouldNotBeEmpty();
+ resource.Attributes.Should().NotBeEmpty();
+ resource.Relationships.Should().NotBeEmpty();
});
- Guid newTrackId = Guid.Parse(responseDocument.Results[0].Data.SingleValue!.Id.ShouldNotBeNull());
+ Guid newTrackId = Guid.Parse(responseDocument.Results[0].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
MusicTrack trackInDatabase = await dbContext.MusicTracks.Include(musicTrack => musicTrack.OwnedBy).FirstWithIdAsync(newTrackId);
- trackInDatabase.OwnedBy.ShouldNotBeNull();
+ trackInDatabase.OwnedBy.Should().NotBeNull();
trackInDatabase.OwnedBy.Id.Should().Be(existingCompany.Id);
});
}
@@ -773,14 +773,14 @@ public async Task Cannot_assign_relationship_with_blocked_capability()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Relationship cannot be assigned.");
error.Detail.Should().Be("The relationship 'language' on resource type 'lyrics' cannot be assigned to.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/language");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Deleting/AtomicDeleteResourceTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Deleting/AtomicDeleteResourceTests.cs
index cbc3280aed..c8c00b1a54 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Deleting/AtomicDeleteResourceTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Deleting/AtomicDeleteResourceTests.cs
@@ -319,7 +319,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
MusicTrack? trackInDatabase = await dbContext.MusicTracks.FirstWithIdOrDefaultAsync(existingPlaylist.Tracks[0].Id);
- trackInDatabase.ShouldNotBeNull();
+ trackInDatabase.Should().NotBeNull();
});
}
@@ -347,15 +347,15 @@ public async Task Cannot_delete_resource_for_href_element()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'href' element is not supported.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/href");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -381,15 +381,15 @@ public async Task Cannot_delete_resource_for_missing_ref_element()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'ref' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -419,15 +419,15 @@ public async Task Cannot_delete_resource_for_missing_type()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'type' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -458,15 +458,15 @@ public async Task Cannot_delete_resource_for_unknown_type()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Unknown resource type found.");
error.Detail.Should().Be($"Resource type '{Unknown.ResourceType}' does not exist.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref/type");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -496,15 +496,15 @@ public async Task Cannot_delete_resource_for_missing_ID()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'id' or 'lid' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -537,13 +537,13 @@ public async Task Cannot_delete_resource_for_unknown_ID()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
error.Title.Should().Be("The requested resource does not exist.");
error.Detail.Should().Be($"Resource of type 'performers' with ID '{performerId}' does not exist.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]");
error.Meta.Should().NotContainKey("requestBody");
}
@@ -578,15 +578,15 @@ public async Task Cannot_delete_resource_for_incompatible_ID()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Incompatible 'id' value found.");
error.Detail.Should().Be($"Failed to convert '{guid}' of type 'String' to type 'Int64'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref/id");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -618,14 +618,14 @@ public async Task Cannot_delete_resource_for_ID_and_local_ID()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'id' and 'lid' element are mutually exclusive.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Links/AtomicAbsoluteLinksTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Links/AtomicAbsoluteLinksTests.cs
index 4686e55244..24423438bc 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Links/AtomicAbsoluteLinksTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Links/AtomicAbsoluteLinksTests.cs
@@ -80,37 +80,37 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(2);
+ responseDocument.Results.Should().HaveCount(2);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
string languageLink = $"{HostPrefix}/textLanguages/{existingLanguage.StringId}";
- resource.ShouldNotBeNull();
- resource.Links.ShouldNotBeNull();
+ resource.Should().NotBeNull();
+ resource.Links.Should().NotBeNull();
resource.Links.Self.Should().Be(languageLink);
- resource.Relationships.ShouldContainKey("lyrics").With(value =>
+ resource.Relationships.Should().ContainKey("lyrics").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{languageLink}/relationships/lyrics");
value.Links.Related.Should().Be($"{languageLink}/lyrics");
});
});
- responseDocument.Results[1].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[1].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
string companyLink = $"{HostPrefix}/recordCompanies/{existingCompany.StringId}";
- resource.ShouldNotBeNull();
- resource.Links.ShouldNotBeNull();
+ resource.Should().NotBeNull();
+ resource.Links.Should().NotBeNull();
resource.Links.Self.Should().Be(companyLink);
- resource.Relationships.ShouldContainKey("tracks").With(value =>
+ resource.Relationships.Should().ContainKey("tracks").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{companyLink}/relationships/tracks");
value.Links.Related.Should().Be($"{companyLink}/tracks");
});
@@ -156,11 +156,11 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(1);
+ responseDocument.Results.Should().HaveCount(1);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
- resource.ShouldNotBeNull();
+ resource.Should().NotBeNull();
resource.Links.Should().BeNull();
resource.Relationships.Should().BeNull();
});
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Links/AtomicRelativeLinksWithNamespaceTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Links/AtomicRelativeLinksWithNamespaceTests.cs
index 86b8ad9846..6d5bd1797e 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Links/AtomicRelativeLinksWithNamespaceTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Links/AtomicRelativeLinksWithNamespaceTests.cs
@@ -73,39 +73,39 @@ public async Task Create_resource_with_side_effects_returns_relative_links()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(2);
+ responseDocument.Results.Should().HaveCount(2);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Results[0].Data.SingleValue.Should().NotBeNull();
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
- string languageLink = $"/api/textLanguages/{Guid.Parse(resource.Id.ShouldNotBeNull())}";
+ string languageLink = $"/api/textLanguages/{Guid.Parse(resource.Id.Should().NotBeNull().And.Subject)}";
- resource.Links.ShouldNotBeNull();
+ resource.Links.Should().NotBeNull();
resource.Links.Self.Should().Be(languageLink);
- resource.Relationships.ShouldContainKey("lyrics").With(value =>
+ resource.Relationships.Should().ContainKey("lyrics").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{languageLink}/relationships/lyrics");
value.Links.Related.Should().Be($"{languageLink}/lyrics");
});
});
- responseDocument.Results[1].Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Results[1].Data.SingleValue.Should().NotBeNull();
- responseDocument.Results[1].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[1].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
- string companyLink = $"/api/recordCompanies/{short.Parse(resource.Id.ShouldNotBeNull())}";
+ string companyLink = $"/api/recordCompanies/{short.Parse(resource.Id.Should().NotBeNull().And.Subject)}";
- resource.Links.ShouldNotBeNull();
+ resource.Links.Should().NotBeNull();
resource.Links.Self.Should().Be(companyLink);
- resource.Relationships.ShouldContainKey("tracks").With(value =>
+ resource.Relationships.Should().ContainKey("tracks").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{companyLink}/relationships/tracks");
value.Links.Related.Should().Be($"{companyLink}/tracks");
});
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/LocalIds/AtomicLocalIdTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/LocalIds/AtomicLocalIdTests.cs
index e65b218764..fb02b6df3f 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/LocalIds/AtomicLocalIdTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/LocalIds/AtomicLocalIdTests.cs
@@ -80,25 +80,25 @@ public async Task Can_create_resource_with_ManyToOne_relationship_using_local_ID
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(2);
+ responseDocument.Results.Should().HaveCount(2);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("recordCompanies");
resource.Lid.Should().BeNull();
- resource.Attributes.ShouldContainKey("name").With(value => value.Should().Be(newCompany.Name));
- resource.Attributes.ShouldContainKey("countryOfResidence").With(value => value.Should().Be(newCompany.CountryOfResidence));
+ resource.Attributes.Should().ContainKey("name").WhoseValue.Should().Be(newCompany.Name);
+ resource.Attributes.Should().ContainKey("countryOfResidence").WhoseValue.Should().Be(newCompany.CountryOfResidence);
});
- responseDocument.Results[1].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[1].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("musicTracks");
resource.Lid.Should().BeNull();
- resource.Attributes.ShouldContainKey("title").With(value => value.Should().Be(newTrackTitle));
+ resource.Attributes.Should().ContainKey("title").WhoseValue.Should().Be(newTrackTitle);
});
- short newCompanyId = short.Parse(responseDocument.Results[0].Data.SingleValue!.Id.ShouldNotBeNull());
- Guid newTrackId = Guid.Parse(responseDocument.Results[1].Data.SingleValue!.Id.ShouldNotBeNull());
+ short newCompanyId = short.Parse(responseDocument.Results[0].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
+ Guid newTrackId = Guid.Parse(responseDocument.Results[1].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
@@ -106,7 +106,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
trackInDatabase.Title.Should().Be(newTrackTitle);
- trackInDatabase.OwnedBy.ShouldNotBeNull();
+ trackInDatabase.OwnedBy.Should().NotBeNull();
trackInDatabase.OwnedBy.Id.Should().Be(newCompanyId);
trackInDatabase.OwnedBy.Name.Should().Be(newCompany.Name);
trackInDatabase.OwnedBy.CountryOfResidence.Should().Be(newCompany.CountryOfResidence);
@@ -177,25 +177,25 @@ public async Task Can_create_resource_with_OneToMany_relationship_using_local_ID
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(2);
+ responseDocument.Results.Should().HaveCount(2);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("performers");
resource.Lid.Should().BeNull();
- resource.Attributes.ShouldContainKey("artistName").With(value => value.Should().Be(newPerformer.ArtistName));
- resource.Attributes.ShouldContainKey("bornAt").With(value => value.Should().Be(newPerformer.BornAt));
+ resource.Attributes.Should().ContainKey("artistName").WhoseValue.Should().Be(newPerformer.ArtistName);
+ resource.Attributes.Should().ContainKey("bornAt").WhoseValue.Should().Be(newPerformer.BornAt);
});
- responseDocument.Results[1].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[1].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("musicTracks");
resource.Lid.Should().BeNull();
- resource.Attributes.ShouldContainKey("title").With(value => value.Should().Be(newTrackTitle));
+ resource.Attributes.Should().ContainKey("title").WhoseValue.Should().Be(newTrackTitle);
});
- int newPerformerId = int.Parse(responseDocument.Results[0].Data.SingleValue!.Id.ShouldNotBeNull());
- Guid newTrackId = Guid.Parse(responseDocument.Results[1].Data.SingleValue!.Id.ShouldNotBeNull());
+ int newPerformerId = int.Parse(responseDocument.Results[0].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
+ Guid newTrackId = Guid.Parse(responseDocument.Results[1].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
@@ -203,7 +203,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
trackInDatabase.Title.Should().Be(newTrackTitle);
- trackInDatabase.Performers.ShouldHaveCount(1);
+ trackInDatabase.Performers.Should().HaveCount(1);
trackInDatabase.Performers[0].Id.Should().Be(newPerformerId);
trackInDatabase.Performers[0].ArtistName.Should().Be(newPerformer.ArtistName);
trackInDatabase.Performers[0].BornAt.Should().Be(newPerformer.BornAt);
@@ -273,24 +273,24 @@ public async Task Can_create_resource_with_ManyToMany_relationship_using_local_I
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(2);
+ responseDocument.Results.Should().HaveCount(2);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("musicTracks");
resource.Lid.Should().BeNull();
- resource.Attributes.ShouldContainKey("title").With(value => value.Should().Be(newTrackTitle));
+ resource.Attributes.Should().ContainKey("title").WhoseValue.Should().Be(newTrackTitle);
});
- responseDocument.Results[1].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[1].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("playlists");
resource.Lid.Should().BeNull();
- resource.Attributes.ShouldContainKey("name").With(value => value.Should().Be(newPlaylistName));
+ resource.Attributes.Should().ContainKey("name").WhoseValue.Should().Be(newPlaylistName);
});
- Guid newTrackId = Guid.Parse(responseDocument.Results[0].Data.SingleValue!.Id.ShouldNotBeNull());
- long newPlaylistId = long.Parse(responseDocument.Results[1].Data.SingleValue!.Id.ShouldNotBeNull());
+ Guid newTrackId = Guid.Parse(responseDocument.Results[0].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
+ long newPlaylistId = long.Parse(responseDocument.Results[1].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
@@ -298,7 +298,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
playlistInDatabase.Name.Should().Be(newPlaylistName);
- playlistInDatabase.Tracks.ShouldHaveCount(1);
+ playlistInDatabase.Tracks.Should().HaveCount(1);
playlistInDatabase.Tracks[0].Id.Should().Be(newTrackId);
playlistInDatabase.Tracks[0].Title.Should().Be(newTrackTitle);
});
@@ -360,13 +360,13 @@ public async Task Cannot_consume_local_ID_that_is_assigned_in_same_operation()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("Local ID cannot be both defined and used within the same operation.");
error.Detail.Should().Be("Local ID 'company-1' cannot be both defined and used within the same operation.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[1]");
}
@@ -427,13 +427,13 @@ public async Task Cannot_reassign_local_ID()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("Another local ID with the same name is already defined at this point.");
error.Detail.Should().Be("Another local ID with name 'playlist-1' is already defined at this point.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[2]");
}
@@ -487,19 +487,19 @@ public async Task Can_update_resource_using_local_ID()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(2);
+ responseDocument.Results.Should().HaveCount(2);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("musicTracks");
resource.Lid.Should().BeNull();
- resource.Attributes.ShouldContainKey("title").With(value => value.Should().Be(newTrackTitle));
- resource.Attributes.ShouldContainKey("genre").With(value => value.Should().BeNull());
+ resource.Attributes.Should().ContainKey("title").WhoseValue.Should().Be(newTrackTitle);
+ resource.Attributes.Should().ContainKey("genre").WhoseValue.Should().BeNull();
});
responseDocument.Results[1].Data.Value.Should().BeNull();
- Guid newTrackId = Guid.Parse(responseDocument.Results[0].Data.SingleValue!.Id.ShouldNotBeNull());
+ Guid newTrackId = Guid.Parse(responseDocument.Results[0].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
@@ -607,34 +607,34 @@ public async Task Can_update_resource_with_relationships_using_local_ID()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(4);
+ responseDocument.Results.Should().HaveCount(4);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("musicTracks");
resource.Lid.Should().BeNull();
- resource.Attributes.ShouldContainKey("title").With(value => value.Should().Be(newTrackTitle));
+ resource.Attributes.Should().ContainKey("title").WhoseValue.Should().Be(newTrackTitle);
});
- responseDocument.Results[1].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[1].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("performers");
resource.Lid.Should().BeNull();
- resource.Attributes.ShouldContainKey("artistName").With(value => value.Should().Be(newArtistName));
+ resource.Attributes.Should().ContainKey("artistName").WhoseValue.Should().Be(newArtistName);
});
- responseDocument.Results[2].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[2].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("recordCompanies");
resource.Lid.Should().BeNull();
- resource.Attributes.ShouldContainKey("name").With(value => value.Should().Be(newCompanyName));
+ resource.Attributes.Should().ContainKey("name").WhoseValue.Should().Be(newCompanyName);
});
responseDocument.Results[3].Data.Value.Should().BeNull();
- Guid newTrackId = Guid.Parse(responseDocument.Results[0].Data.SingleValue!.Id.ShouldNotBeNull());
- int newPerformerId = int.Parse(responseDocument.Results[1].Data.SingleValue!.Id.ShouldNotBeNull());
- short newCompanyId = short.Parse(responseDocument.Results[2].Data.SingleValue!.Id.ShouldNotBeNull());
+ Guid newTrackId = Guid.Parse(responseDocument.Results[0].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
+ int newPerformerId = int.Parse(responseDocument.Results[1].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
+ short newCompanyId = short.Parse(responseDocument.Results[2].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
@@ -651,10 +651,10 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
trackInDatabase.Title.Should().Be(newTrackTitle);
- trackInDatabase.OwnedBy.ShouldNotBeNull();
+ trackInDatabase.OwnedBy.Should().NotBeNull();
trackInDatabase.OwnedBy.Id.Should().Be(newCompanyId);
- trackInDatabase.Performers.ShouldHaveCount(1);
+ trackInDatabase.Performers.Should().HaveCount(1);
trackInDatabase.Performers[0].Id.Should().Be(newPerformerId);
trackInDatabase.Performers[0].ArtistName.Should().Be(newArtistName);
});
@@ -726,26 +726,26 @@ public async Task Can_create_ManyToOne_relationship_using_local_ID()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(3);
+ responseDocument.Results.Should().HaveCount(3);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("musicTracks");
resource.Lid.Should().BeNull();
- resource.Attributes.ShouldContainKey("title").With(value => value.Should().Be(newTrackTitle));
+ resource.Attributes.Should().ContainKey("title").WhoseValue.Should().Be(newTrackTitle);
});
- responseDocument.Results[1].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[1].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("recordCompanies");
resource.Lid.Should().BeNull();
- resource.Attributes.ShouldContainKey("name").With(value => value.Should().Be(newCompanyName));
+ resource.Attributes.Should().ContainKey("name").WhoseValue.Should().Be(newCompanyName);
});
responseDocument.Results[2].Data.Value.Should().BeNull();
- Guid newTrackId = Guid.Parse(responseDocument.Results[0].Data.SingleValue!.Id.ShouldNotBeNull());
- short newCompanyId = short.Parse(responseDocument.Results[1].Data.SingleValue!.Id.ShouldNotBeNull());
+ Guid newTrackId = Guid.Parse(responseDocument.Results[0].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
+ short newCompanyId = short.Parse(responseDocument.Results[1].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
@@ -753,7 +753,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
trackInDatabase.Title.Should().Be(newTrackTitle);
- trackInDatabase.OwnedBy.ShouldNotBeNull();
+ trackInDatabase.OwnedBy.Should().NotBeNull();
trackInDatabase.OwnedBy.Id.Should().Be(newCompanyId);
trackInDatabase.OwnedBy.Name.Should().Be(newCompanyName);
});
@@ -828,26 +828,26 @@ public async Task Can_create_OneToMany_relationship_using_local_ID()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(3);
+ responseDocument.Results.Should().HaveCount(3);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("musicTracks");
resource.Lid.Should().BeNull();
- resource.Attributes.ShouldContainKey("title").With(value => value.Should().Be(newTrackTitle));
+ resource.Attributes.Should().ContainKey("title").WhoseValue.Should().Be(newTrackTitle);
});
- responseDocument.Results[1].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[1].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("performers");
resource.Lid.Should().BeNull();
- resource.Attributes.ShouldContainKey("artistName").With(value => value.Should().Be(newArtistName));
+ resource.Attributes.Should().ContainKey("artistName").WhoseValue.Should().Be(newArtistName);
});
responseDocument.Results[2].Data.Value.Should().BeNull();
- Guid newTrackId = Guid.Parse(responseDocument.Results[0].Data.SingleValue!.Id.ShouldNotBeNull());
- int newPerformerId = int.Parse(responseDocument.Results[1].Data.SingleValue!.Id.ShouldNotBeNull());
+ Guid newTrackId = Guid.Parse(responseDocument.Results[0].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
+ int newPerformerId = int.Parse(responseDocument.Results[1].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
@@ -855,7 +855,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
trackInDatabase.Title.Should().Be(newTrackTitle);
- trackInDatabase.Performers.ShouldHaveCount(1);
+ trackInDatabase.Performers.Should().HaveCount(1);
trackInDatabase.Performers[0].Id.Should().Be(newPerformerId);
trackInDatabase.Performers[0].ArtistName.Should().Be(newArtistName);
});
@@ -930,26 +930,26 @@ public async Task Can_create_ManyToMany_relationship_using_local_ID()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(3);
+ responseDocument.Results.Should().HaveCount(3);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("playlists");
resource.Lid.Should().BeNull();
- resource.Attributes.ShouldContainKey("name").With(value => value.Should().Be(newPlaylistName));
+ resource.Attributes.Should().ContainKey("name").WhoseValue.Should().Be(newPlaylistName);
});
- responseDocument.Results[1].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[1].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("musicTracks");
resource.Lid.Should().BeNull();
- resource.Attributes.ShouldContainKey("title").With(value => value.Should().Be(newTrackTitle));
+ resource.Attributes.Should().ContainKey("title").WhoseValue.Should().Be(newTrackTitle);
});
responseDocument.Results[2].Data.Value.Should().BeNull();
- long newPlaylistId = long.Parse(responseDocument.Results[0].Data.SingleValue!.Id.ShouldNotBeNull());
- Guid newTrackId = Guid.Parse(responseDocument.Results[1].Data.SingleValue!.Id.ShouldNotBeNull());
+ long newPlaylistId = long.Parse(responseDocument.Results[0].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
+ Guid newTrackId = Guid.Parse(responseDocument.Results[1].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
@@ -957,7 +957,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
playlistInDatabase.Name.Should().Be(newPlaylistName);
- playlistInDatabase.Tracks.ShouldHaveCount(1);
+ playlistInDatabase.Tracks.Should().HaveCount(1);
playlistInDatabase.Tracks[0].Id.Should().Be(newTrackId);
playlistInDatabase.Tracks[0].Title.Should().Be(newTrackTitle);
});
@@ -1054,26 +1054,26 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(3);
+ responseDocument.Results.Should().HaveCount(3);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("musicTracks");
resource.Lid.Should().BeNull();
- resource.Attributes.ShouldContainKey("title").With(value => value.Should().Be(newTrackTitle));
+ resource.Attributes.Should().ContainKey("title").WhoseValue.Should().Be(newTrackTitle);
});
- responseDocument.Results[1].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[1].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("performers");
resource.Lid.Should().BeNull();
- resource.Attributes.ShouldContainKey("artistName").With(value => value.Should().Be(newArtistName));
+ resource.Attributes.Should().ContainKey("artistName").WhoseValue.Should().Be(newArtistName);
});
responseDocument.Results[2].Data.Value.Should().BeNull();
- Guid newTrackId = Guid.Parse(responseDocument.Results[0].Data.SingleValue!.Id.ShouldNotBeNull());
- int newPerformerId = int.Parse(responseDocument.Results[1].Data.SingleValue!.Id.ShouldNotBeNull());
+ Guid newTrackId = Guid.Parse(responseDocument.Results[0].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
+ int newPerformerId = int.Parse(responseDocument.Results[1].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
@@ -1081,7 +1081,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
trackInDatabase.Title.Should().Be(newTrackTitle);
- trackInDatabase.Performers.ShouldHaveCount(1);
+ trackInDatabase.Performers.Should().HaveCount(1);
trackInDatabase.Performers[0].Id.Should().Be(newPerformerId);
trackInDatabase.Performers[0].ArtistName.Should().Be(newArtistName);
});
@@ -1178,26 +1178,26 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(3);
+ responseDocument.Results.Should().HaveCount(3);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("playlists");
resource.Lid.Should().BeNull();
- resource.Attributes.ShouldContainKey("name").With(value => value.Should().Be(newPlaylistName));
+ resource.Attributes.Should().ContainKey("name").WhoseValue.Should().Be(newPlaylistName);
});
- responseDocument.Results[1].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[1].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("musicTracks");
resource.Lid.Should().BeNull();
- resource.Attributes.ShouldContainKey("title").With(value => value.Should().Be(newTrackTitle));
+ resource.Attributes.Should().ContainKey("title").WhoseValue.Should().Be(newTrackTitle);
});
responseDocument.Results[2].Data.Value.Should().BeNull();
- long newPlaylistId = long.Parse(responseDocument.Results[0].Data.SingleValue!.Id.ShouldNotBeNull());
- Guid newTrackId = Guid.Parse(responseDocument.Results[1].Data.SingleValue!.Id.ShouldNotBeNull());
+ long newPlaylistId = long.Parse(responseDocument.Results[0].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
+ Guid newTrackId = Guid.Parse(responseDocument.Results[1].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
@@ -1205,7 +1205,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
playlistInDatabase.Name.Should().Be(newPlaylistName);
- playlistInDatabase.Tracks.ShouldHaveCount(1);
+ playlistInDatabase.Tracks.Should().HaveCount(1);
playlistInDatabase.Tracks[0].Id.Should().Be(newTrackId);
playlistInDatabase.Tracks[0].Title.Should().Be(newTrackTitle);
});
@@ -1302,26 +1302,26 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(3);
+ responseDocument.Results.Should().HaveCount(3);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("musicTracks");
resource.Lid.Should().BeNull();
- resource.Attributes.ShouldContainKey("title").With(value => value.Should().Be(newTrackTitle));
+ resource.Attributes.Should().ContainKey("title").WhoseValue.Should().Be(newTrackTitle);
});
- responseDocument.Results[1].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[1].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("performers");
resource.Lid.Should().BeNull();
- resource.Attributes.ShouldContainKey("artistName").With(value => value.Should().Be(newArtistName));
+ resource.Attributes.Should().ContainKey("artistName").WhoseValue.Should().Be(newArtistName);
});
responseDocument.Results[2].Data.Value.Should().BeNull();
- Guid newTrackId = Guid.Parse(responseDocument.Results[0].Data.SingleValue!.Id.ShouldNotBeNull());
- int newPerformerId = int.Parse(responseDocument.Results[1].Data.SingleValue!.Id.ShouldNotBeNull());
+ Guid newTrackId = Guid.Parse(responseDocument.Results[0].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
+ int newPerformerId = int.Parse(responseDocument.Results[1].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
@@ -1329,7 +1329,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
trackInDatabase.Title.Should().Be(newTrackTitle);
- trackInDatabase.Performers.ShouldHaveCount(2);
+ trackInDatabase.Performers.Should().HaveCount(2);
trackInDatabase.Performers[0].Id.Should().Be(existingPerformer.Id);
trackInDatabase.Performers[0].ArtistName.Should().Be(existingPerformer.ArtistName);
@@ -1448,28 +1448,28 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(4);
+ responseDocument.Results.Should().HaveCount(4);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("playlists");
resource.Lid.Should().BeNull();
- resource.Attributes.ShouldContainKey("name").With(value => value.Should().Be(newPlaylistName));
+ resource.Attributes.Should().ContainKey("name").WhoseValue.Should().Be(newPlaylistName);
});
- responseDocument.Results[1].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[1].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("musicTracks");
resource.Lid.Should().BeNull();
- resource.Attributes.ShouldContainKey("title").With(value => value.Should().Be(newTrackTitle));
+ resource.Attributes.Should().ContainKey("title").WhoseValue.Should().Be(newTrackTitle);
});
responseDocument.Results[2].Data.Value.Should().BeNull();
responseDocument.Results[3].Data.Value.Should().BeNull();
- long newPlaylistId = long.Parse(responseDocument.Results[0].Data.SingleValue!.Id.ShouldNotBeNull());
- Guid newTrackId = Guid.Parse(responseDocument.Results[1].Data.SingleValue!.Id.ShouldNotBeNull());
+ long newPlaylistId = long.Parse(responseDocument.Results[0].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
+ Guid newTrackId = Guid.Parse(responseDocument.Results[1].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
@@ -1477,7 +1477,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
playlistInDatabase.Name.Should().Be(newPlaylistName);
- playlistInDatabase.Tracks.ShouldHaveCount(3);
+ playlistInDatabase.Tracks.Should().HaveCount(3);
playlistInDatabase.Tracks.Should().ContainSingle(musicTrack => musicTrack.Id == existingTracks[0].Id);
playlistInDatabase.Tracks.Should().ContainSingle(musicTrack => musicTrack.Id == existingTracks[1].Id);
playlistInDatabase.Tracks.Should().ContainSingle(musicTrack => musicTrack.Id == newTrackId);
@@ -1605,32 +1605,32 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(4);
+ responseDocument.Results.Should().HaveCount(4);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("performers");
resource.Lid.Should().BeNull();
- resource.Attributes.ShouldContainKey("artistName").With(value => value.Should().Be(newArtistName1));
+ resource.Attributes.Should().ContainKey("artistName").WhoseValue.Should().Be(newArtistName1);
});
- responseDocument.Results[1].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[1].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("performers");
resource.Lid.Should().BeNull();
- resource.Attributes.ShouldContainKey("artistName").With(value => value.Should().Be(newArtistName2));
+ resource.Attributes.Should().ContainKey("artistName").WhoseValue.Should().Be(newArtistName2);
});
- responseDocument.Results[2].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[2].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("musicTracks");
resource.Lid.Should().BeNull();
- resource.Attributes.ShouldContainKey("title").With(value => value.Should().Be(newTrackTitle));
+ resource.Attributes.Should().ContainKey("title").WhoseValue.Should().Be(newTrackTitle);
});
responseDocument.Results[3].Data.Value.Should().BeNull();
- Guid newTrackId = Guid.Parse(responseDocument.Results[2].Data.SingleValue!.Id.ShouldNotBeNull());
+ Guid newTrackId = Guid.Parse(responseDocument.Results[2].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
@@ -1638,7 +1638,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
trackInDatabase.Title.Should().Be(newTrackTitle);
- trackInDatabase.Performers.ShouldHaveCount(1);
+ trackInDatabase.Performers.Should().HaveCount(1);
trackInDatabase.Performers[0].Id.Should().Be(existingPerformer.Id);
trackInDatabase.Performers[0].ArtistName.Should().Be(existingPerformer.ArtistName);
});
@@ -1743,13 +1743,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(4);
+ responseDocument.Results.Should().HaveCount(4);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("musicTracks");
resource.Lid.Should().BeNull();
- resource.Attributes.ShouldContainKey("title").With(value => value.Should().Be(newTrackTitle));
+ resource.Attributes.Should().ContainKey("title").WhoseValue.Should().Be(newTrackTitle);
});
responseDocument.Results[1].Data.Value.Should().BeNull();
@@ -1762,7 +1762,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
Playlist playlistInDatabase = await dbContext.Playlists.Include(playlist => playlist.Tracks).FirstWithIdAsync(existingPlaylist.Id);
- playlistInDatabase.Tracks.ShouldHaveCount(1);
+ playlistInDatabase.Tracks.Should().HaveCount(1);
playlistInDatabase.Tracks[0].Id.Should().Be(existingPlaylist.Tracks[0].Id);
});
}
@@ -1812,18 +1812,18 @@ public async Task Can_delete_resource_using_local_ID()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(2);
+ responseDocument.Results.Should().HaveCount(2);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("musicTracks");
resource.Lid.Should().BeNull();
- resource.Attributes.ShouldContainKey("title").With(value => value.Should().Be(newTrackTitle));
+ resource.Attributes.Should().ContainKey("title").WhoseValue.Should().Be(newTrackTitle);
});
responseDocument.Results[1].Data.Value.Should().BeNull();
- Guid newTrackId = Guid.Parse(responseDocument.Results[0].Data.SingleValue!.Id.ShouldNotBeNull());
+ Guid newTrackId = Guid.Parse(responseDocument.Results[0].Data.SingleValue!.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
@@ -1870,13 +1870,13 @@ public async Task Cannot_consume_unassigned_local_ID_in_ref()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("Server-generated value for local ID is not available at this point.");
error.Detail.Should().Be($"Server-generated value for local ID '{Unknown.LocalId}' is not available at this point.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[1]");
}
@@ -1920,13 +1920,13 @@ public async Task Cannot_consume_unassigned_local_ID_in_data_element()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("Server-generated value for local ID is not available at this point.");
error.Detail.Should().Be($"Server-generated value for local ID '{Unknown.LocalId}' is not available at this point.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[1]");
}
@@ -1984,13 +1984,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("Server-generated value for local ID is not available at this point.");
error.Detail.Should().Be($"Server-generated value for local ID '{Unknown.LocalId}' is not available at this point.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[1]");
}
@@ -2047,13 +2047,13 @@ public async Task Cannot_consume_unassigned_local_ID_in_relationship_data_elemen
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("Server-generated value for local ID is not available at this point.");
error.Detail.Should().Be($"Server-generated value for local ID '{Unknown.LocalId}' is not available at this point.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[1]");
}
@@ -2113,13 +2113,13 @@ public async Task Cannot_consume_unassigned_local_ID_in_relationship_data_array(
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("Server-generated value for local ID is not available at this point.");
error.Detail.Should().Be($"Server-generated value for local ID '{Unknown.LocalId}' is not available at this point.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[1]");
}
@@ -2178,13 +2178,13 @@ public async Task Cannot_consume_local_ID_of_different_type_in_same_operation()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("Incompatible type in Local ID usage.");
error.Detail.Should().Be("Local ID 'track-1' belongs to resource type 'musicTracks' instead of 'recordCompanies'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[1]");
}
@@ -2242,13 +2242,13 @@ public async Task Cannot_consume_local_ID_of_different_type_in_ref()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("Incompatible type in Local ID usage.");
error.Detail.Should().Be("Local ID 'company-1' belongs to resource type 'recordCompanies' instead of 'musicTracks'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[2]");
}
@@ -2303,13 +2303,13 @@ public async Task Cannot_consume_local_ID_of_different_type_in_data_element()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("Incompatible type in Local ID usage.");
error.Detail.Should().Be("Local ID 'performer-1' belongs to resource type 'performers' instead of 'playlists'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[2]");
}
@@ -2384,13 +2384,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("Incompatible type in Local ID usage.");
error.Detail.Should().Be("Local ID 'company-1' belongs to resource type 'recordCompanies' instead of 'performers'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[2]");
}
@@ -2463,13 +2463,13 @@ public async Task Cannot_consume_local_ID_of_different_type_in_relationship_data
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("Incompatible type in Local ID usage.");
error.Detail.Should().Be("Local ID 'playlist-1' belongs to resource type 'playlists' instead of 'recordCompanies'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[2]");
}
@@ -2539,13 +2539,13 @@ public async Task Cannot_consume_local_ID_of_different_type_in_relationship_data
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("Incompatible type in Local ID usage.");
error.Detail.Should().Be("Local ID 'performer-1' belongs to resource type 'performers' instead of 'musicTracks'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[2]");
}
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Meta/AtomicResourceMetaTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Meta/AtomicResourceMetaTests.cs
index 4d4982f732..1ab1d848ac 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Meta/AtomicResourceMetaTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Meta/AtomicResourceMetaTests.cs
@@ -83,24 +83,24 @@ public async Task Returns_resource_meta_in_create_resource_with_side_effects()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(2);
+ responseDocument.Results.Should().HaveCount(2);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
- resource.Meta.ShouldHaveCount(1);
+ resource.Meta.Should().HaveCount(1);
- resource.Meta.ShouldContainKey("copyright").With(value =>
+ resource.Meta.Should().ContainKey("copyright").WhoseValue.With(value =>
{
JsonElement element = value.Should().BeOfType().Subject;
element.GetString().Should().Be("(C) 2018. All rights reserved.");
});
});
- responseDocument.Results[1].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[1].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
- resource.Meta.ShouldHaveCount(1);
+ resource.Meta.Should().HaveCount(1);
- resource.Meta.ShouldContainKey("copyright").With(value =>
+ resource.Meta.Should().ContainKey("copyright").WhoseValue.With(value =>
{
JsonElement element = value.Should().BeOfType().Subject;
element.GetString().Should().Be("(C) 1994. All rights reserved.");
@@ -155,13 +155,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(1);
+ responseDocument.Results.Should().HaveCount(1);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
- resource.Meta.ShouldHaveCount(1);
+ resource.Meta.Should().HaveCount(1);
- resource.Meta.ShouldContainKey("notice").With(value =>
+ resource.Meta.Should().ContainKey("notice").WhoseValue.With(value =>
{
JsonElement element = value.Should().BeOfType().Subject;
element.GetString().Should().Be(TextLanguageMetaDefinition.NoticeText);
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Meta/AtomicResponseMetaTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Meta/AtomicResponseMetaTests.cs
index 88e7115f66..b111ee47fb 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Meta/AtomicResponseMetaTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Meta/AtomicResponseMetaTests.cs
@@ -60,26 +60,26 @@ public async Task Returns_top_level_meta_in_create_resource_with_side_effects()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Meta.ShouldHaveCount(3);
+ responseDocument.Meta.Should().HaveCount(3);
- responseDocument.Meta.ShouldContainKey("license").With(value =>
+ responseDocument.Meta.Should().ContainKey("license").WhoseValue.With(value =>
{
JsonElement element = value.Should().BeOfType().Subject;
element.GetString().Should().Be("MIT");
});
- responseDocument.Meta.ShouldContainKey("projectUrl").With(value =>
+ responseDocument.Meta.Should().ContainKey("projectUrl").WhoseValue.With(value =>
{
JsonElement element = value.Should().BeOfType().Subject;
element.GetString().Should().Be("https://github.com/json-api-dotnet/JsonApiDotNetCore/");
});
- responseDocument.Meta.ShouldContainKey("versions").With(value =>
+ responseDocument.Meta.Should().ContainKey("versions").WhoseValue.With(value =>
{
JsonElement element = value.Should().BeOfType().Subject;
string?[] versionArray = element.EnumerateArray().Select(arrayItem => arrayItem.GetString()).ToArray();
- versionArray.ShouldHaveCount(4);
+ versionArray.Should().HaveCount(4);
versionArray.Should().Contain("v4.0.0");
versionArray.Should().Contain("v3.1.0");
versionArray.Should().Contain("v2.5.2");
@@ -126,26 +126,26 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Meta.ShouldHaveCount(3);
+ responseDocument.Meta.Should().HaveCount(3);
- responseDocument.Meta.ShouldContainKey("license").With(value =>
+ responseDocument.Meta.Should().ContainKey("license").WhoseValue.With(value =>
{
JsonElement element = value.Should().BeOfType().Subject;
element.GetString().Should().Be("MIT");
});
- responseDocument.Meta.ShouldContainKey("projectUrl").With(value =>
+ responseDocument.Meta.Should().ContainKey("projectUrl").WhoseValue.With(value =>
{
JsonElement element = value.Should().BeOfType().Subject;
element.GetString().Should().Be("https://github.com/json-api-dotnet/JsonApiDotNetCore/");
});
- responseDocument.Meta.ShouldContainKey("versions").With(value =>
+ responseDocument.Meta.Should().ContainKey("versions").WhoseValue.With(value =>
{
JsonElement element = value.Should().BeOfType().Subject;
string?[] versionArray = element.EnumerateArray().Select(arrayItem => arrayItem.GetString()).ToArray();
- versionArray.ShouldHaveCount(4);
+ versionArray.Should().HaveCount(4);
versionArray.Should().Contain("v4.0.0");
versionArray.Should().Contain("v3.1.0");
versionArray.Should().Contain("v2.5.2");
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Mixed/AtomicLoggingTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Mixed/AtomicLoggingTests.cs
index 34618f95f8..1662f9387f 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Mixed/AtomicLoggingTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Mixed/AtomicLoggingTests.cs
@@ -67,13 +67,13 @@ public async Task Logs_unhandled_exception_at_Error_level()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.InternalServerError);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.InternalServerError);
error.Title.Should().Be("An unhandled error occurred while processing an operation in this request.");
error.Detail.Should().Be("Simulated failure.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]");
IReadOnlyList logMessages = loggerProvider.GetMessages();
@@ -111,7 +111,7 @@ public async Task Logs_invalid_request_body_error_at_Information_level()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
IReadOnlyList logMessages = loggerProvider.GetMessages();
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Mixed/AtomicRequestBodyTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Mixed/AtomicRequestBodyTests.cs
index bedb5d7da2..e4d67f457f 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Mixed/AtomicRequestBodyTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Mixed/AtomicRequestBodyTests.cs
@@ -30,10 +30,10 @@ public async Task Cannot_process_for_missing_request_body()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be(JsonApiMediaType.AtomicOperations.ToString());
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
@@ -57,14 +57,14 @@ public async Task Cannot_process_for_null_request_body()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Expected an object, instead of 'null'.");
error.Detail.Should().BeNull();
error.Source.Should().BeNull();
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -81,7 +81,7 @@ public async Task Cannot_process_for_broken_JSON_request_body()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
@@ -110,14 +110,14 @@ public async Task Cannot_process_for_missing_operations_array()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: No operations found.");
error.Detail.Should().BeNull();
error.Source.Should().BeNull();
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -137,14 +137,14 @@ public async Task Cannot_process_empty_operations_array()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: No operations found.");
error.Detail.Should().BeNull();
error.Source.Should().BeNull();
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -167,15 +167,15 @@ public async Task Cannot_process_null_operation()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Expected an object, instead of 'null'.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -208,7 +208,7 @@ public async Task Cannot_process_for_unknown_operation_code()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Mixed/MaximumOperationsPerRequestTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Mixed/MaximumOperationsPerRequestTests.cs
index f24e25a216..0173e1c6d4 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Mixed/MaximumOperationsPerRequestTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Mixed/MaximumOperationsPerRequestTests.cs
@@ -65,15 +65,15 @@ public async Task Cannot_process_more_operations_than_maximum()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Too many operations in request.");
error.Detail.Should().Be("The number of operations in this request (3) is higher than the maximum of 2.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/ModelStateValidation/AtomicModelStateValidationTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/ModelStateValidation/AtomicModelStateValidationTests.cs
index 09596c2f00..18e7640d22 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/ModelStateValidation/AtomicModelStateValidationTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/ModelStateValidation/AtomicModelStateValidationTests.cs
@@ -51,20 +51,20 @@ public async Task Cannot_create_resource_with_multiple_violations()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(2);
+ responseDocument.Errors.Should().HaveCount(2);
ErrorObject error1 = responseDocument.Errors[0];
error1.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error1.Title.Should().Be("Input validation failed.");
error1.Detail.Should().Be("The Title field is required.");
- error1.Source.ShouldNotBeNull();
+ error1.Source.Should().NotBeNull();
error1.Source.Pointer.Should().Be("/atomic:operations[0]/data/attributes/title");
ErrorObject error2 = responseDocument.Errors[1];
error2.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error2.Title.Should().Be("Input validation failed.");
error2.Detail.Should().Be("The field LengthInSeconds must be between 1 and 1440.");
- error2.Source.ShouldNotBeNull();
+ error2.Source.Should().NotBeNull();
error2.Source.Pointer.Should().Be("/atomic:operations[0]/data/attributes/lengthInSeconds");
}
@@ -104,13 +104,13 @@ public async Task Cannot_create_resource_when_violation_from_custom_ValidationAt
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Input validation failed.");
error.Detail.Should().Be("ReleasedAt must be in the past.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/attributes/releasedAt");
}
@@ -168,15 +168,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(1);
+ responseDocument.Results.Should().HaveCount(1);
- long newPlaylistId = long.Parse(responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().Id.ShouldNotBeNull());
+ long newPlaylistId = long.Parse(responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
Playlist playlistInDatabase = await dbContext.Playlists.Include(playlist => playlist.Tracks).FirstWithIdAsync(newPlaylistId);
- playlistInDatabase.Tracks.ShouldHaveCount(1);
+ playlistInDatabase.Tracks.Should().HaveCount(1);
playlistInDatabase.Tracks[0].Id.Should().Be(existingTrack.Id);
});
}
@@ -222,20 +222,20 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(2);
+ responseDocument.Errors.Should().HaveCount(2);
ErrorObject error1 = responseDocument.Errors[0];
error1.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error1.Title.Should().Be("Input validation failed.");
error1.Detail.Should().Be("The Title field is required.");
- error1.Source.ShouldNotBeNull();
+ error1.Source.Should().NotBeNull();
error1.Source.Pointer.Should().Be("/atomic:operations[0]/data/attributes/title");
ErrorObject error2 = responseDocument.Errors[1];
error2.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error2.Title.Should().Be("Input validation failed.");
error2.Detail.Should().Be("The field LengthInSeconds must be between 1 and 1440.");
- error2.Source.ShouldNotBeNull();
+ error2.Source.Should().NotBeNull();
error2.Source.Pointer.Should().Be("/atomic:operations[0]/data/attributes/lengthInSeconds");
}
@@ -348,7 +348,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
Playlist playlistInDatabase = await dbContext.Playlists.Include(playlist => playlist.Tracks).FirstWithIdAsync(existingPlaylist.Id);
- playlistInDatabase.Tracks.ShouldHaveCount(1);
+ playlistInDatabase.Tracks.Should().HaveCount(1);
playlistInDatabase.Tracks[0].Id.Should().Be(existingTrack.Id);
});
}
@@ -402,7 +402,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
MusicTrack trackInDatabase = await dbContext.MusicTracks.Include(musicTrack => musicTrack.OwnedBy).FirstWithIdAsync(existingTrack.Id);
- trackInDatabase.OwnedBy.ShouldNotBeNull();
+ trackInDatabase.OwnedBy.Should().NotBeNull();
trackInDatabase.OwnedBy.Id.Should().Be(existingCompany.Id);
});
}
@@ -459,7 +459,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
Playlist playlistInDatabase = await dbContext.Playlists.Include(playlist => playlist.Tracks).FirstWithIdAsync(existingPlaylist.Id);
- playlistInDatabase.Tracks.ShouldHaveCount(1);
+ playlistInDatabase.Tracks.Should().HaveCount(1);
playlistInDatabase.Tracks[0].Id.Should().Be(existingTrack.Id);
});
}
@@ -509,20 +509,20 @@ public async Task Validates_all_operations_before_execution_starts()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(2);
+ responseDocument.Errors.Should().HaveCount(2);
ErrorObject error1 = responseDocument.Errors[0];
error1.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error1.Title.Should().Be("Input validation failed.");
error1.Detail.Should().Be("The Name field is required.");
- error1.Source.ShouldNotBeNull();
+ error1.Source.Should().NotBeNull();
error1.Source.Pointer.Should().Be("/atomic:operations[0]/data/attributes/name");
ErrorObject error2 = responseDocument.Errors[1];
error2.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error2.Title.Should().Be("Input validation failed.");
error2.Detail.Should().Be("The field LengthInSeconds must be between 1 and 1440.");
- error2.Source.ShouldNotBeNull();
+ error2.Source.Should().NotBeNull();
error2.Source.Pointer.Should().Be("/atomic:operations[1]/data/attributes/lengthInSeconds");
}
@@ -593,7 +593,7 @@ public async Task Does_not_exceed_MaxModelValidationErrors()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(3);
+ responseDocument.Errors.Should().HaveCount(3);
ErrorObject error1 = responseDocument.Errors[0];
error1.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
@@ -605,14 +605,14 @@ public async Task Does_not_exceed_MaxModelValidationErrors()
error2.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error2.Title.Should().Be("Input validation failed.");
error2.Detail.Should().Be("The Name field is required.");
- error2.Source.ShouldNotBeNull();
+ error2.Source.Should().NotBeNull();
error2.Source.Pointer.Should().Be("/atomic:operations[0]/data/attributes/name");
ErrorObject error3 = responseDocument.Errors[2];
error3.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error3.Title.Should().Be("Input validation failed.");
error3.Detail.Should().Be("The Name field is required.");
- error3.Source.ShouldNotBeNull();
+ error3.Source.Should().NotBeNull();
error3.Source.Pointer.Should().Be("/atomic:operations[1]/data/attributes/name");
}
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/QueryStrings/AtomicQueryStringTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/QueryStrings/AtomicQueryStringTests.cs
index e979e164c9..a635e12fb6 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/QueryStrings/AtomicQueryStringTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/QueryStrings/AtomicQueryStringTests.cs
@@ -53,13 +53,13 @@ public async Task Cannot_include_at_operations_endpoint()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("Usage of one or more query string parameters is not allowed at the requested endpoint.");
error.Detail.Should().Be("The parameter 'include' cannot be used at this endpoint.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("include");
}
@@ -93,13 +93,13 @@ public async Task Cannot_filter_at_operations_endpoint()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("Usage of one or more query string parameters is not allowed at the requested endpoint.");
error.Detail.Should().Be("The parameter 'filter' cannot be used at this endpoint.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("filter");
}
@@ -133,13 +133,13 @@ public async Task Cannot_sort_at_operations_endpoint()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("Usage of one or more query string parameters is not allowed at the requested endpoint.");
error.Detail.Should().Be("The parameter 'sort' cannot be used at this endpoint.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("sort");
}
@@ -173,13 +173,13 @@ public async Task Cannot_use_pagination_number_at_operations_endpoint()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("Usage of one or more query string parameters is not allowed at the requested endpoint.");
error.Detail.Should().Be("The parameter 'page[number]' cannot be used at this endpoint.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("page[number]");
}
@@ -213,13 +213,13 @@ public async Task Cannot_use_pagination_size_at_operations_endpoint()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("Usage of one or more query string parameters is not allowed at the requested endpoint.");
error.Detail.Should().Be("The parameter 'page[size]' cannot be used at this endpoint.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("page[size]");
}
@@ -253,13 +253,13 @@ public async Task Cannot_use_sparse_fieldset_at_operations_endpoint()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("Usage of one or more query string parameters is not allowed at the requested endpoint.");
error.Detail.Should().Be("The parameter 'fields[recordCompanies]' cannot be used at this endpoint.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("fields[recordCompanies]");
}
@@ -290,7 +290,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(musicTracks[2].StringId);
}
@@ -327,7 +327,7 @@ public async Task Cannot_use_Queryable_handler_at_operations_endpoint()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
@@ -336,7 +336,7 @@ public async Task Cannot_use_Queryable_handler_at_operations_endpoint()
error.Detail.Should().Be("Query string parameter 'isRecentlyReleased' is unknown. " +
"Set 'AllowUnknownQueryStringParameters' to 'true' in options to ignore unknown parameters.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("isRecentlyReleased");
}
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/ResourceDefinitions/Serialization/AtomicSerializationResourceDefinitionTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/ResourceDefinitions/Serialization/AtomicSerializationResourceDefinitionTests.cs
index 8e3c2ac7f9..cb0325882e 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/ResourceDefinitions/Serialization/AtomicSerializationResourceDefinitionTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/ResourceDefinitions/Serialization/AtomicSerializationResourceDefinitionTests.cs
@@ -88,28 +88,28 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(2);
+ responseDocument.Results.Should().HaveCount(2);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
- resource.Attributes.ShouldContainKey("name").With(value => value.Should().Be(newCompanies[0].Name.ToUpperInvariant()));
+ resource.Attributes.Should().ContainKey("name").WhoseValue.Should().Be(newCompanies[0].Name.ToUpperInvariant());
string countryOfResidence = newCompanies[0].CountryOfResidence!.ToUpperInvariant();
- resource.Attributes.ShouldContainKey("countryOfResidence").With(value => value.Should().Be(countryOfResidence));
+ resource.Attributes.Should().ContainKey("countryOfResidence").WhoseValue.Should().Be(countryOfResidence);
});
- responseDocument.Results[1].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[1].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
- resource.Attributes.ShouldContainKey("name").With(value => value.Should().Be(newCompanies[1].Name.ToUpperInvariant()));
+ resource.Attributes.Should().ContainKey("name").WhoseValue.Should().Be(newCompanies[1].Name.ToUpperInvariant());
string countryOfResidence = newCompanies[1].CountryOfResidence!.ToUpperInvariant();
- resource.Attributes.ShouldContainKey("countryOfResidence").With(value => value.Should().Be(countryOfResidence));
+ resource.Attributes.Should().ContainKey("countryOfResidence").WhoseValue.Should().Be(countryOfResidence);
});
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
List companiesInDatabase = await dbContext.RecordCompanies.ToListAsync();
- companiesInDatabase.ShouldHaveCount(2);
+ companiesInDatabase.Should().HaveCount(2);
companiesInDatabase[0].Name.Should().Be(newCompanies[0].Name.ToUpperInvariant());
companiesInDatabase[0].CountryOfResidence.Should().Be(newCompanies[0].CountryOfResidence);
@@ -181,7 +181,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(1);
+ responseDocument.Results.Should().HaveCount(1);
hitCounter.HitExtensibilityPoints.Should().BeEmpty();
}
@@ -240,28 +240,28 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(2);
+ responseDocument.Results.Should().HaveCount(2);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
- resource.Attributes.ShouldContainKey("name").With(value => value.Should().Be(existingCompanies[0].Name));
+ resource.Attributes.Should().ContainKey("name").WhoseValue.Should().Be(existingCompanies[0].Name);
string countryOfResidence = existingCompanies[0].CountryOfResidence!.ToUpperInvariant();
- resource.Attributes.ShouldContainKey("countryOfResidence").With(value => value.Should().Be(countryOfResidence));
+ resource.Attributes.Should().ContainKey("countryOfResidence").WhoseValue.Should().Be(countryOfResidence);
});
- responseDocument.Results[1].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[1].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
- resource.Attributes.ShouldContainKey("name").With(value => value.Should().Be(existingCompanies[1].Name));
+ resource.Attributes.Should().ContainKey("name").WhoseValue.Should().Be(existingCompanies[1].Name);
string countryOfResidence = existingCompanies[1].CountryOfResidence!.ToUpperInvariant();
- resource.Attributes.ShouldContainKey("countryOfResidence").With(value => value.Should().Be(countryOfResidence));
+ resource.Attributes.Should().ContainKey("countryOfResidence").WhoseValue.Should().Be(countryOfResidence);
});
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
List companiesInDatabase = await dbContext.RecordCompanies.ToListAsync();
- companiesInDatabase.ShouldHaveCount(2);
+ companiesInDatabase.Should().HaveCount(2);
companiesInDatabase[0].Name.Should().Be(existingCompanies[0].Name);
companiesInDatabase[0].CountryOfResidence.Should().Be(existingCompanies[0].CountryOfResidence);
@@ -332,7 +332,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(1);
+ responseDocument.Results.Should().HaveCount(1);
hitCounter.HitExtensibilityPoints.Should().BeEmpty();
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/ResourceDefinitions/SparseFieldSets/AtomicSparseFieldSetResourceDefinitionTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/ResourceDefinitions/SparseFieldSets/AtomicSparseFieldSetResourceDefinitionTests.cs
index 983a9c5213..9263d1ec32 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/ResourceDefinitions/SparseFieldSets/AtomicSparseFieldSetResourceDefinitionTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/ResourceDefinitions/SparseFieldSets/AtomicSparseFieldSetResourceDefinitionTests.cs
@@ -86,17 +86,17 @@ public async Task Hides_text_in_create_resource_with_side_effects()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(2);
+ responseDocument.Results.Should().HaveCount(2);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
- resource.Attributes.ShouldContainKey("format").With(value => value.Should().Be(newLyrics[0].Format));
+ resource.Attributes.Should().ContainKey("format").WhoseValue.Should().Be(newLyrics[0].Format);
resource.Attributes.Should().NotContainKey("text");
});
- responseDocument.Results[1].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[1].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
- resource.Attributes.ShouldContainKey("format").With(value => value.Should().Be(newLyrics[1].Format));
+ resource.Attributes.Should().ContainKey("format").WhoseValue.Should().Be(newLyrics[1].Format);
resource.Attributes.Should().NotContainKey("text");
});
@@ -165,17 +165,17 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(2);
+ responseDocument.Results.Should().HaveCount(2);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
- resource.Attributes.ShouldContainKey("format").With(value => value.Should().Be(existingLyrics[0].Format));
+ resource.Attributes.Should().ContainKey("format").WhoseValue.Should().Be(existingLyrics[0].Format);
resource.Attributes.Should().NotContainKey("text");
});
- responseDocument.Results[1].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[1].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
- resource.Attributes.ShouldContainKey("format").With(value => value.Should().Be(existingLyrics[1].Format));
+ resource.Attributes.Should().ContainKey("format").WhoseValue.Should().Be(existingLyrics[1].Format);
resource.Attributes.Should().NotContainKey("text");
});
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Transactions/AtomicRollbackTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Transactions/AtomicRollbackTests.cs
index b4f393d901..f27e6c4a93 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Transactions/AtomicRollbackTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Transactions/AtomicRollbackTests.cs
@@ -88,13 +88,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
error.Title.Should().Be("A related resource does not exist.");
error.Detail.Should().Be($"Related resource of type 'performers' with ID '{unknownPerformerId}' in relationship 'performers' does not exist.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[1]");
await _testContext.RunOnDatabaseAsync(async dbContext =>
@@ -168,13 +168,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
error.Title.Should().Be("A related resource does not exist.");
error.Detail.Should().Be($"Related resource of type 'performers' with ID '{unknownPerformerId}' in relationship 'performers' does not exist.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[1]");
await _testContext.RunOnDatabaseAsync(async dbContext =>
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Transactions/AtomicTransactionConsistencyTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Transactions/AtomicTransactionConsistencyTests.cs
index 4b5a6afc1b..14cfc466a0 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Transactions/AtomicTransactionConsistencyTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Transactions/AtomicTransactionConsistencyTests.cs
@@ -64,13 +64,13 @@ public async Task Cannot_use_non_transactional_repository()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Unsupported resource type in atomic:operations request.");
error.Detail.Should().Be("Operations on resources of type 'performers' cannot be used because transaction support is unavailable.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]");
}
@@ -107,13 +107,13 @@ public async Task Cannot_use_transactional_repository_without_active_transaction
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Unsupported combination of resource types in atomic:operations request.");
error.Detail.Should().Be("All operations need to participate in a single shared transaction, which is not the case for this request.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]");
}
@@ -150,13 +150,13 @@ public async Task Cannot_use_distributed_transaction()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Unsupported combination of resource types in atomic:operations request.");
error.Detail.Should().Be("All operations need to participate in a single shared transaction, which is not the case for this request.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]");
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Updating/Relationships/AtomicAddToToManyRelationshipTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Updating/Relationships/AtomicAddToToManyRelationshipTests.cs
index e59b9d24d5..5ddc0d55fd 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Updating/Relationships/AtomicAddToToManyRelationshipTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Updating/Relationships/AtomicAddToToManyRelationshipTests.cs
@@ -62,15 +62,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Forbidden);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Forbidden);
error.Title.Should().Be("Failed to deserialize request body: Only to-many relationships can be targeted through this operation.");
error.Detail.Should().Be("Relationship 'ownedBy' is not a to-many relationship.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref/relationship");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -146,7 +146,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
MusicTrack trackInDatabase = await dbContext.MusicTracks.Include(musicTrack => musicTrack.Performers).FirstWithIdAsync(existingTrack.Id);
- trackInDatabase.Performers.ShouldHaveCount(3);
+ trackInDatabase.Performers.Should().HaveCount(3);
trackInDatabase.Performers.Should().ContainSingle(performer => performer.Id == existingTrack.Performers[0].Id);
trackInDatabase.Performers.Should().ContainSingle(performer => performer.Id == existingPerformers[0].Id);
trackInDatabase.Performers.Should().ContainSingle(performer => performer.Id == existingPerformers[1].Id);
@@ -226,7 +226,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
Playlist playlistInDatabase = await dbContext.Playlists.Include(playlist => playlist.Tracks).FirstWithIdAsync(existingPlaylist.Id);
- playlistInDatabase.Tracks.ShouldHaveCount(3);
+ playlistInDatabase.Tracks.Should().HaveCount(3);
playlistInDatabase.Tracks.Should().ContainSingle(musicTrack => musicTrack.Id == existingPlaylist.Tracks[0].Id);
playlistInDatabase.Tracks.Should().ContainSingle(musicTrack => musicTrack.Id == existingTracks[0].Id);
playlistInDatabase.Tracks.Should().ContainSingle(musicTrack => musicTrack.Id == existingTracks[1].Id);
@@ -257,15 +257,15 @@ public async Task Cannot_add_for_href_element()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'href' element is not supported.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/href");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -296,15 +296,15 @@ public async Task Cannot_add_for_missing_type_in_ref()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'type' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -336,15 +336,15 @@ public async Task Cannot_add_for_unknown_type_in_ref()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Unknown resource type found.");
error.Detail.Should().Be($"Resource type '{Unknown.ResourceType}' does not exist.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref/type");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -375,15 +375,15 @@ public async Task Cannot_add_for_missing_ID_in_ref()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'id' or 'lid' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -433,13 +433,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
error.Title.Should().Be("The requested resource does not exist.");
error.Detail.Should().Be($"Resource of type 'recordCompanies' with ID '{companyId}' does not exist.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]");
error.Meta.Should().NotContainKey("requestBody");
}
@@ -474,15 +474,15 @@ public async Task Cannot_add_for_ID_and_local_ID_in_ref()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'id' and 'lid' element are mutually exclusive.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -513,15 +513,15 @@ public async Task Cannot_add_for_missing_relationship_in_ref()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'relationship' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -553,15 +553,15 @@ public async Task Cannot_add_for_unknown_relationship_in_ref()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Unknown relationship found.");
error.Detail.Should().Be($"Relationship '{Unknown.Relationship}' does not exist on resource type 'performers'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref/relationship");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -601,15 +601,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'data' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -650,15 +650,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Expected an array, instead of 'null'.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -701,15 +701,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Expected an array, instead of an object.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -748,15 +748,15 @@ public async Task Cannot_add_for_missing_type_in_data()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'type' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data[0]");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -796,15 +796,15 @@ public async Task Cannot_add_for_unknown_type_in_data()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Unknown resource type found.");
error.Detail.Should().Be($"Resource type '{Unknown.ResourceType}' does not exist.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data[0]/type");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -843,15 +843,15 @@ public async Task Cannot_add_for_missing_ID_in_data()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'id' or 'lid' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data[0]");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -892,15 +892,15 @@ public async Task Cannot_add_for_ID_and_local_ID_in_data()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'id' and 'lid' element are mutually exclusive.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data[0]");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -959,20 +959,20 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(2);
+ responseDocument.Errors.Should().HaveCount(2);
ErrorObject error1 = responseDocument.Errors[0];
error1.StatusCode.Should().Be(HttpStatusCode.NotFound);
error1.Title.Should().Be("A related resource does not exist.");
error1.Detail.Should().Be($"Related resource of type 'musicTracks' with ID '{trackIds[0]}' in relationship 'tracks' does not exist.");
- error1.Source.ShouldNotBeNull();
+ error1.Source.Should().NotBeNull();
error1.Source.Pointer.Should().Be("/atomic:operations[0]");
ErrorObject error2 = responseDocument.Errors[1];
error2.StatusCode.Should().Be(HttpStatusCode.NotFound);
error2.Title.Should().Be("A related resource does not exist.");
error2.Detail.Should().Be($"Related resource of type 'musicTracks' with ID '{trackIds[1]}' in relationship 'tracks' does not exist.");
- error2.Source.ShouldNotBeNull();
+ error2.Source.Should().NotBeNull();
error2.Source.Pointer.Should().Be("/atomic:operations[0]");
}
@@ -1021,15 +1021,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Conflict);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Conflict);
error.Title.Should().Be("Failed to deserialize request body: Incompatible resource type found.");
error.Detail.Should().Be("Type 'playlists' is not convertible to type 'performers' of relationship 'performers'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data[0]/type");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -1077,7 +1077,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
MusicTrack trackInDatabase = await dbContext.MusicTracks.Include(musicTrack => musicTrack.Performers).FirstWithIdAsync(existingTrack.Id);
- trackInDatabase.Performers.ShouldHaveCount(1);
+ trackInDatabase.Performers.Should().HaveCount(1);
trackInDatabase.Performers[0].Id.Should().Be(existingTrack.Performers[0].Id);
});
}
@@ -1124,14 +1124,14 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Relationship cannot be added to.");
error.Detail.Should().Be("The relationship 'occursIn' on resource type 'musicTracks' cannot be added to.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref/relationship");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Updating/Relationships/AtomicRemoveFromToManyRelationshipTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Updating/Relationships/AtomicRemoveFromToManyRelationshipTests.cs
index f7bf47e989..a914e59ac3 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Updating/Relationships/AtomicRemoveFromToManyRelationshipTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Updating/Relationships/AtomicRemoveFromToManyRelationshipTests.cs
@@ -62,15 +62,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Forbidden);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Forbidden);
error.Title.Should().Be("Failed to deserialize request body: Only to-many relationships can be targeted through this operation.");
error.Detail.Should().Be("Relationship 'ownedBy' is not a to-many relationship.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref/relationship");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -144,11 +144,11 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
MusicTrack trackInDatabase = await dbContext.MusicTracks.Include(musicTrack => musicTrack.Performers).FirstWithIdAsync(existingTrack.Id);
- trackInDatabase.Performers.ShouldHaveCount(1);
+ trackInDatabase.Performers.Should().HaveCount(1);
trackInDatabase.Performers[0].Id.Should().Be(existingTrack.Performers[1].Id);
List performersInDatabase = await dbContext.Performers.ToListAsync();
- performersInDatabase.ShouldHaveCount(3);
+ performersInDatabase.Should().HaveCount(3);
});
}
@@ -223,12 +223,12 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
Playlist playlistInDatabase = await dbContext.Playlists.Include(playlist => playlist.Tracks).FirstWithIdAsync(existingPlaylist.Id);
- playlistInDatabase.Tracks.ShouldHaveCount(1);
+ playlistInDatabase.Tracks.Should().HaveCount(1);
playlistInDatabase.Tracks[0].Id.Should().Be(existingPlaylist.Tracks[1].Id);
List tracksInDatabase = await dbContext.MusicTracks.ToListAsync();
- tracksInDatabase.ShouldHaveCount(3);
+ tracksInDatabase.Should().HaveCount(3);
});
}
@@ -256,15 +256,15 @@ public async Task Cannot_remove_for_href_element()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'href' element is not supported.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/href");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -295,15 +295,15 @@ public async Task Cannot_remove_for_missing_type_in_ref()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'type' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -335,15 +335,15 @@ public async Task Cannot_remove_for_unknown_type_in_ref()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Unknown resource type found.");
error.Detail.Should().Be($"Resource type '{Unknown.ResourceType}' does not exist.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref/type");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -374,15 +374,15 @@ public async Task Cannot_remove_for_missing_ID_in_ref()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'id' or 'lid' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -432,13 +432,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
error.Title.Should().Be("The requested resource does not exist.");
error.Detail.Should().Be($"Resource of type 'recordCompanies' with ID '{companyId}' does not exist.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]");
error.Meta.Should().NotContainKey("requestBody");
}
@@ -473,15 +473,15 @@ public async Task Cannot_remove_for_ID_and_local_ID_in_ref()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'id' and 'lid' element are mutually exclusive.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -513,15 +513,15 @@ public async Task Cannot_remove_for_unknown_relationship_in_ref()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Unknown relationship found.");
error.Detail.Should().Be($"Relationship '{Unknown.Relationship}' does not exist on resource type 'performers'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref/relationship");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -561,15 +561,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'data' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -610,15 +610,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Expected an array, instead of 'null'.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -661,15 +661,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Expected an array, instead of an object.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -708,15 +708,15 @@ public async Task Cannot_remove_for_missing_type_in_data()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'type' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data[0]");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -756,15 +756,15 @@ public async Task Cannot_remove_for_unknown_type_in_data()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Unknown resource type found.");
error.Detail.Should().Be($"Resource type '{Unknown.ResourceType}' does not exist.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data[0]/type");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -803,15 +803,15 @@ public async Task Cannot_remove_for_missing_ID_in_data()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'id' or 'lid' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data[0]");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -852,15 +852,15 @@ public async Task Cannot_remove_for_ID_and_local_ID_in_data()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'id' and 'lid' element are mutually exclusive.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data[0]");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -919,20 +919,20 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(2);
+ responseDocument.Errors.Should().HaveCount(2);
ErrorObject error1 = responseDocument.Errors[0];
error1.StatusCode.Should().Be(HttpStatusCode.NotFound);
error1.Title.Should().Be("A related resource does not exist.");
error1.Detail.Should().Be($"Related resource of type 'musicTracks' with ID '{trackIds[0]}' in relationship 'tracks' does not exist.");
- error1.Source.ShouldNotBeNull();
+ error1.Source.Should().NotBeNull();
error1.Source.Pointer.Should().Be("/atomic:operations[0]");
ErrorObject error2 = responseDocument.Errors[1];
error2.StatusCode.Should().Be(HttpStatusCode.NotFound);
error2.Title.Should().Be("A related resource does not exist.");
error2.Detail.Should().Be($"Related resource of type 'musicTracks' with ID '{trackIds[1]}' in relationship 'tracks' does not exist.");
- error2.Source.ShouldNotBeNull();
+ error2.Source.Should().NotBeNull();
error2.Source.Pointer.Should().Be("/atomic:operations[0]");
}
@@ -981,15 +981,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Conflict);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Conflict);
error.Title.Should().Be("Failed to deserialize request body: Incompatible resource type found.");
error.Detail.Should().Be("Type 'playlists' is not convertible to type 'performers' of relationship 'performers'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data[0]/type");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -1038,7 +1038,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
MusicTrack trackInDatabase = await dbContext.MusicTracks.Include(musicTrack => musicTrack.Performers).FirstWithIdAsync(existingTrack.Id);
- trackInDatabase.Performers.ShouldHaveCount(1);
+ trackInDatabase.Performers.Should().HaveCount(1);
trackInDatabase.Performers[0].Id.Should().Be(existingTrack.Performers[0].Id);
});
}
@@ -1085,14 +1085,14 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Relationship cannot be removed from.");
error.Detail.Should().Be("The relationship 'occursIn' on resource type 'musicTracks' cannot be removed from.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref/relationship");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Updating/Relationships/AtomicReplaceToManyRelationshipTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Updating/Relationships/AtomicReplaceToManyRelationshipTests.cs
index c8e093f9ff..38d2d1aac0 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Updating/Relationships/AtomicReplaceToManyRelationshipTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Updating/Relationships/AtomicReplaceToManyRelationshipTests.cs
@@ -68,7 +68,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
trackInDatabase.Performers.Should().BeEmpty();
List performersInDatabase = await dbContext.Performers.ToListAsync();
- performersInDatabase.ShouldHaveCount(2);
+ performersInDatabase.Should().HaveCount(2);
});
}
@@ -122,7 +122,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
List tracksInDatabase = await dbContext.MusicTracks.ToListAsync();
- tracksInDatabase.ShouldHaveCount(2);
+ tracksInDatabase.Should().HaveCount(2);
});
}
@@ -187,12 +187,12 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
MusicTrack trackInDatabase = await dbContext.MusicTracks.Include(musicTrack => musicTrack.Performers).FirstWithIdAsync(existingTrack.Id);
- trackInDatabase.Performers.ShouldHaveCount(2);
+ trackInDatabase.Performers.Should().HaveCount(2);
trackInDatabase.Performers.Should().ContainSingle(performer => performer.Id == existingPerformers[0].Id);
trackInDatabase.Performers.Should().ContainSingle(performer => performer.Id == existingPerformers[1].Id);
List performersInDatabase = await dbContext.Performers.ToListAsync();
- performersInDatabase.ShouldHaveCount(3);
+ performersInDatabase.Should().HaveCount(3);
});
}
@@ -257,13 +257,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
Playlist playlistInDatabase = await dbContext.Playlists.Include(playlist => playlist.Tracks).FirstWithIdAsync(existingPlaylist.Id);
- playlistInDatabase.Tracks.ShouldHaveCount(2);
+ playlistInDatabase.Tracks.Should().HaveCount(2);
playlistInDatabase.Tracks.Should().ContainSingle(musicTrack => musicTrack.Id == existingTracks[0].Id);
playlistInDatabase.Tracks.Should().ContainSingle(musicTrack => musicTrack.Id == existingTracks[1].Id);
List tracksInDatabase = await dbContext.MusicTracks.ToListAsync();
- tracksInDatabase.ShouldHaveCount(3);
+ tracksInDatabase.Should().HaveCount(3);
});
}
@@ -291,15 +291,15 @@ public async Task Cannot_replace_for_href_element()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'href' element is not supported.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/href");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -330,15 +330,15 @@ public async Task Cannot_replace_for_missing_type_in_ref()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'type' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -370,15 +370,15 @@ public async Task Cannot_replace_for_unknown_type_in_ref()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Unknown resource type found.");
error.Detail.Should().Be($"Resource type '{Unknown.ResourceType}' does not exist.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref/type");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -409,15 +409,15 @@ public async Task Cannot_replace_for_missing_ID_in_ref()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'id' or 'lid' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -467,13 +467,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
error.Title.Should().Be("The requested resource does not exist.");
error.Detail.Should().Be($"Resource of type 'recordCompanies' with ID '{companyId}' does not exist.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]");
error.Meta.Should().NotContainKey("requestBody");
}
@@ -525,15 +525,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Incompatible 'id' value found.");
error.Detail.Should().Be($"Failed to convert '{guid}' of type 'String' to type 'Int16'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref/id");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -566,15 +566,15 @@ public async Task Cannot_replace_for_ID_and_local_ID_in_ref()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'id' and 'lid' element are mutually exclusive.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -606,15 +606,15 @@ public async Task Cannot_replace_for_unknown_relationship_in_ref()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Unknown relationship found.");
error.Detail.Should().Be($"Relationship '{Unknown.Relationship}' does not exist on resource type 'performers'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref/relationship");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -654,15 +654,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'data' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -703,15 +703,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Expected an array, instead of 'null'.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -754,15 +754,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Expected an array, instead of an object.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -801,15 +801,15 @@ public async Task Cannot_replace_for_missing_type_in_data()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'type' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data[0]");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -849,15 +849,15 @@ public async Task Cannot_replace_for_unknown_type_in_data()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Unknown resource type found.");
error.Detail.Should().Be($"Resource type '{Unknown.ResourceType}' does not exist.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data[0]/type");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -896,15 +896,15 @@ public async Task Cannot_replace_for_missing_ID_in_data()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'id' or 'lid' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data[0]");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -945,15 +945,15 @@ public async Task Cannot_replace_for_ID_and_local_ID_in_data()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'id' and 'lid' element are mutually exclusive.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data[0]");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -1012,20 +1012,20 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(2);
+ responseDocument.Errors.Should().HaveCount(2);
ErrorObject error1 = responseDocument.Errors[0];
error1.StatusCode.Should().Be(HttpStatusCode.NotFound);
error1.Title.Should().Be("A related resource does not exist.");
error1.Detail.Should().Be($"Related resource of type 'musicTracks' with ID '{trackIds[0]}' in relationship 'tracks' does not exist.");
- error1.Source.ShouldNotBeNull();
+ error1.Source.Should().NotBeNull();
error1.Source.Pointer.Should().Be("/atomic:operations[0]");
ErrorObject error2 = responseDocument.Errors[1];
error2.StatusCode.Should().Be(HttpStatusCode.NotFound);
error2.Title.Should().Be("A related resource does not exist.");
error2.Detail.Should().Be($"Related resource of type 'musicTracks' with ID '{trackIds[1]}' in relationship 'tracks' does not exist.");
- error2.Source.ShouldNotBeNull();
+ error2.Source.Should().NotBeNull();
error2.Source.Pointer.Should().Be("/atomic:operations[0]");
}
@@ -1074,15 +1074,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Incompatible 'id' value found.");
error.Detail.Should().Be("Failed to convert 'invalid-guid' of type 'String' to type 'Guid'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data[0]/id");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -1130,15 +1130,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Conflict);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Conflict);
error.Title.Should().Be("Failed to deserialize request body: Incompatible resource type found.");
error.Detail.Should().Be("Type 'playlists' is not convertible to type 'performers' of relationship 'performers'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data[0]/type");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -1183,14 +1183,14 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Relationship cannot be assigned.");
error.Detail.Should().Be("The relationship 'occursIn' on resource type 'musicTracks' cannot be assigned to.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref/relationship");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Updating/Relationships/AtomicUpdateToOneRelationshipTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Updating/Relationships/AtomicUpdateToOneRelationshipTests.cs
index e9f99c6171..3d543a15f6 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Updating/Relationships/AtomicUpdateToOneRelationshipTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Updating/Relationships/AtomicUpdateToOneRelationshipTests.cs
@@ -68,7 +68,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
lyricInDatabase.Track.Should().BeNull();
List tracksInDatabase = await dbContext.MusicTracks.ToListAsync();
- tracksInDatabase.ShouldHaveCount(1);
+ tracksInDatabase.Should().HaveCount(1);
});
}
@@ -121,7 +121,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
trackInDatabase.Lyric.Should().BeNull();
List lyricsInDatabase = await dbContext.Lyrics.ToListAsync();
- lyricsInDatabase.ShouldHaveCount(1);
+ lyricsInDatabase.Should().HaveCount(1);
});
}
@@ -174,7 +174,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
trackInDatabase.OwnedBy.Should().BeNull();
List companiesInDatabase = await dbContext.RecordCompanies.ToListAsync();
- companiesInDatabase.ShouldHaveCount(1);
+ companiesInDatabase.Should().HaveCount(1);
});
}
@@ -227,7 +227,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
Lyric lyricInDatabase = await dbContext.Lyrics.Include(lyric => lyric.Track).FirstWithIdAsync(existingLyric.Id);
- lyricInDatabase.Track.ShouldNotBeNull();
+ lyricInDatabase.Track.Should().NotBeNull();
lyricInDatabase.Track.Id.Should().Be(existingTrack.Id);
});
}
@@ -281,7 +281,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
MusicTrack trackInDatabase = await dbContext.MusicTracks.Include(musicTrack => musicTrack.Lyric).FirstWithIdAsync(existingTrack.Id);
- trackInDatabase.Lyric.ShouldNotBeNull();
+ trackInDatabase.Lyric.Should().NotBeNull();
trackInDatabase.Lyric.Id.Should().Be(existingLyric.Id);
});
}
@@ -335,7 +335,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
MusicTrack trackInDatabase = await dbContext.MusicTracks.Include(musicTrack => musicTrack.OwnedBy).FirstWithIdAsync(existingTrack.Id);
- trackInDatabase.OwnedBy.ShouldNotBeNull();
+ trackInDatabase.OwnedBy.Should().NotBeNull();
trackInDatabase.OwnedBy.Id.Should().Be(existingCompany.Id);
});
}
@@ -392,11 +392,11 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
Lyric lyricInDatabase = await dbContext.Lyrics.Include(lyric => lyric.Track).FirstWithIdAsync(existingLyric.Id);
- lyricInDatabase.Track.ShouldNotBeNull();
+ lyricInDatabase.Track.Should().NotBeNull();
lyricInDatabase.Track.Id.Should().Be(existingTrack.Id);
List tracksInDatabase = await dbContext.MusicTracks.ToListAsync();
- tracksInDatabase.ShouldHaveCount(2);
+ tracksInDatabase.Should().HaveCount(2);
});
}
@@ -452,11 +452,11 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
MusicTrack trackInDatabase = await dbContext.MusicTracks.Include(musicTrack => musicTrack.Lyric).FirstWithIdAsync(existingTrack.Id);
- trackInDatabase.Lyric.ShouldNotBeNull();
+ trackInDatabase.Lyric.Should().NotBeNull();
trackInDatabase.Lyric.Id.Should().Be(existingLyric.Id);
List lyricsInDatabase = await dbContext.Lyrics.ToListAsync();
- lyricsInDatabase.ShouldHaveCount(2);
+ lyricsInDatabase.Should().HaveCount(2);
});
}
@@ -512,11 +512,11 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
MusicTrack trackInDatabase = await dbContext.MusicTracks.Include(musicTrack => musicTrack.OwnedBy).FirstWithIdAsync(existingTrack.Id);
- trackInDatabase.OwnedBy.ShouldNotBeNull();
+ trackInDatabase.OwnedBy.Should().NotBeNull();
trackInDatabase.OwnedBy.Id.Should().Be(existingCompany.Id);
List companiesInDatabase = await dbContext.RecordCompanies.ToListAsync();
- companiesInDatabase.ShouldHaveCount(2);
+ companiesInDatabase.Should().HaveCount(2);
});
}
@@ -544,15 +544,15 @@ public async Task Cannot_create_for_href_element()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'href' element is not supported.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/href");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -583,15 +583,15 @@ public async Task Cannot_create_for_missing_type_in_ref()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'type' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -623,15 +623,15 @@ public async Task Cannot_create_for_unknown_type_in_ref()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Unknown resource type found.");
error.Detail.Should().Be($"Resource type '{Unknown.ResourceType}' does not exist.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref/type");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -662,15 +662,15 @@ public async Task Cannot_create_for_missing_ID_in_ref()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'id' or 'lid' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -717,13 +717,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
error.Title.Should().Be("The requested resource does not exist.");
error.Detail.Should().Be($"Resource of type 'musicTracks' with ID '{trackId}' does not exist.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]");
error.Meta.Should().NotContainKey("requestBody");
}
@@ -770,15 +770,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Incompatible 'id' value found.");
error.Detail.Should().Be("Failed to convert 'invalid-guid' of type 'String' to type 'Guid'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref/id");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -811,15 +811,15 @@ public async Task Cannot_create_for_ID_and_local_ID_in_ref()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'id' and 'lid' element are mutually exclusive.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -851,15 +851,15 @@ public async Task Cannot_create_for_unknown_relationship_in_ref()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Unknown relationship found.");
error.Detail.Should().Be($"Relationship '{Unknown.Relationship}' does not exist on resource type 'performers'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref/relationship");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -899,15 +899,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'data' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -955,15 +955,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Expected an object or 'null', instead of an array.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -999,15 +999,15 @@ public async Task Cannot_create_for_missing_type_in_data()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'type' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -1044,15 +1044,15 @@ public async Task Cannot_create_for_unknown_type_in_data()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Unknown resource type found.");
error.Detail.Should().Be($"Resource type '{Unknown.ResourceType}' does not exist.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/type");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -1088,15 +1088,15 @@ public async Task Cannot_create_for_missing_ID_in_data()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'id' or 'lid' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -1134,15 +1134,15 @@ public async Task Cannot_create_for_ID_and_local_ID_in_data()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'id' and 'lid' element are mutually exclusive.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -1189,13 +1189,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
error.Title.Should().Be("A related resource does not exist.");
error.Detail.Should().Be($"Related resource of type 'lyrics' with ID '{lyricId}' in relationship 'lyric' does not exist.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]");
error.Meta.Should().NotContainKey("requestBody");
}
@@ -1242,15 +1242,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Incompatible 'id' value found.");
error.Detail.Should().Be("Failed to convert 'invalid-guid' of type 'String' to type 'Guid'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/id");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -1295,15 +1295,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Conflict);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Conflict);
error.Title.Should().Be("Failed to deserialize request body: Incompatible resource type found.");
error.Detail.Should().Be("Type 'playlists' is not convertible to type 'lyrics' of relationship 'lyric'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/type");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -1348,14 +1348,14 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Relationship cannot be assigned.");
error.Detail.Should().Be("The relationship 'language' on resource type 'lyrics' cannot be assigned to.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref/relationship");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Updating/Resources/AtomicReplaceToManyRelationshipTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Updating/Resources/AtomicReplaceToManyRelationshipTests.cs
index 17778fc0a6..31a2b61512 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Updating/Resources/AtomicReplaceToManyRelationshipTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Updating/Resources/AtomicReplaceToManyRelationshipTests.cs
@@ -73,7 +73,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
trackInDatabase.Performers.Should().BeEmpty();
List performersInDatabase = await dbContext.Performers.ToListAsync();
- performersInDatabase.ShouldHaveCount(2);
+ performersInDatabase.Should().HaveCount(2);
});
}
@@ -132,7 +132,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
List tracksInDatabase = await dbContext.MusicTracks.ToListAsync();
- tracksInDatabase.ShouldHaveCount(2);
+ tracksInDatabase.Should().HaveCount(2);
});
}
@@ -202,12 +202,12 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
MusicTrack trackInDatabase = await dbContext.MusicTracks.Include(musicTrack => musicTrack.Performers).FirstWithIdAsync(existingTrack.Id);
- trackInDatabase.Performers.ShouldHaveCount(2);
+ trackInDatabase.Performers.Should().HaveCount(2);
trackInDatabase.Performers.Should().ContainSingle(performer => performer.Id == existingPerformers[0].Id);
trackInDatabase.Performers.Should().ContainSingle(performer => performer.Id == existingPerformers[1].Id);
List performersInDatabase = await dbContext.Performers.ToListAsync();
- performersInDatabase.ShouldHaveCount(3);
+ performersInDatabase.Should().HaveCount(3);
});
}
@@ -277,13 +277,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
Playlist playlistInDatabase = await dbContext.Playlists.Include(playlist => playlist.Tracks).FirstWithIdAsync(existingPlaylist.Id);
- playlistInDatabase.Tracks.ShouldHaveCount(2);
+ playlistInDatabase.Tracks.Should().HaveCount(2);
playlistInDatabase.Tracks.Should().ContainSingle(musicTrack => musicTrack.Id == existingTracks[0].Id);
playlistInDatabase.Tracks.Should().ContainSingle(musicTrack => musicTrack.Id == existingTracks[1].Id);
List tracksInDatabase = await dbContext.MusicTracks.ToListAsync();
- tracksInDatabase.ShouldHaveCount(3);
+ tracksInDatabase.Should().HaveCount(3);
});
}
@@ -329,15 +329,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'data' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/performers");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -383,15 +383,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Expected an array, instead of 'null'.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/performers/data");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -439,15 +439,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Expected an array, instead of an object.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/performers/data");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -491,15 +491,15 @@ public async Task Cannot_replace_for_missing_type_in_relationship_data()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'type' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/tracks/data[0]");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -544,15 +544,15 @@ public async Task Cannot_replace_for_unknown_type_in_relationship_data()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Unknown resource type found.");
error.Detail.Should().Be($"Resource type '{Unknown.ResourceType}' does not exist.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/performers/data[0]/type");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -596,15 +596,15 @@ public async Task Cannot_replace_for_missing_ID_in_relationship_data()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'id' or 'lid' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/performers/data[0]");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -650,15 +650,15 @@ public async Task Cannot_replace_for_ID_and_local_ID_relationship_in_data()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'id' and 'lid' element are mutually exclusive.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/performers/data[0]");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -722,20 +722,20 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(2);
+ responseDocument.Errors.Should().HaveCount(2);
ErrorObject error1 = responseDocument.Errors[0];
error1.StatusCode.Should().Be(HttpStatusCode.NotFound);
error1.Title.Should().Be("A related resource does not exist.");
error1.Detail.Should().Be($"Related resource of type 'musicTracks' with ID '{trackIds[0]}' in relationship 'tracks' does not exist.");
- error1.Source.ShouldNotBeNull();
+ error1.Source.Should().NotBeNull();
error1.Source.Pointer.Should().Be("/atomic:operations[0]");
ErrorObject error2 = responseDocument.Errors[1];
error2.StatusCode.Should().Be(HttpStatusCode.NotFound);
error2.Title.Should().Be("A related resource does not exist.");
error2.Detail.Should().Be($"Related resource of type 'musicTracks' with ID '{trackIds[1]}' in relationship 'tracks' does not exist.");
- error2.Source.ShouldNotBeNull();
+ error2.Source.Should().NotBeNull();
error2.Source.Pointer.Should().Be("/atomic:operations[0]");
}
@@ -789,15 +789,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Conflict);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Conflict);
error.Title.Should().Be("Failed to deserialize request body: Incompatible resource type found.");
error.Detail.Should().Be("Type 'playlists' is not convertible to type 'performers' of relationship 'performers'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/performers/data[0]/type");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -850,14 +850,14 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Relationship cannot be assigned.");
error.Detail.Should().Be("The relationship 'occursIn' on resource type 'musicTracks' cannot be assigned to.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/occursIn");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Updating/Resources/AtomicUpdateResourceTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Updating/Resources/AtomicUpdateResourceTests.cs
index 29a3e10fd5..2e97812c19 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Updating/Resources/AtomicUpdateResourceTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Updating/Resources/AtomicUpdateResourceTests.cs
@@ -89,7 +89,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
List tracksInDatabase = await dbContext.MusicTracks.ToListAsync();
- tracksInDatabase.ShouldHaveCount(elementCount);
+ tracksInDatabase.Should().HaveCount(elementCount);
for (int index = 0; index < elementCount; index++)
{
@@ -153,7 +153,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
trackInDatabase.Title.Should().Be(existingTrack.Title);
trackInDatabase.Genre.Should().Be(existingTrack.Genre);
- trackInDatabase.OwnedBy.ShouldNotBeNull();
+ trackInDatabase.OwnedBy.Should().NotBeNull();
trackInDatabase.OwnedBy.Id.Should().Be(existingTrack.OwnedBy.Id);
});
}
@@ -200,15 +200,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Unknown attribute found.");
error.Detail.Should().Be("Attribute 'doesNotExist' does not exist on resource type 'musicTracks'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/attributes/doesNotExist");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -313,15 +313,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Unknown relationship found.");
error.Detail.Should().Be("Relationship 'doesNotExist' does not exist on resource type 'musicTracks'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/doesNotExist");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -431,7 +431,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
trackInDatabase.Genre.Should().Be(newGenre);
trackInDatabase.ReleasedAt.Should().Be(existingTrack.ReleasedAt);
- trackInDatabase.OwnedBy.ShouldNotBeNull();
+ trackInDatabase.OwnedBy.Should().NotBeNull();
trackInDatabase.OwnedBy.Id.Should().Be(existingTrack.OwnedBy.Id);
});
}
@@ -496,7 +496,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
trackInDatabase.Genre.Should().Be(newGenre);
trackInDatabase.ReleasedAt.Should().Be(newReleasedAt);
- trackInDatabase.OwnedBy.ShouldNotBeNull();
+ trackInDatabase.OwnedBy.Should().NotBeNull();
trackInDatabase.OwnedBy.Id.Should().Be(existingTrack.OwnedBy.Id);
});
}
@@ -542,16 +542,16 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(1);
+ responseDocument.Results.Should().HaveCount(1);
string isoCode = $"{newIsoCode}{ImplicitlyChangingTextLanguageDefinition.Suffix}";
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
resource.Type.Should().Be("textLanguages");
- resource.Attributes.ShouldContainKey("isoCode").With(value => value.Should().Be(isoCode));
+ resource.Attributes.Should().ContainKey("isoCode").WhoseValue.Should().Be(isoCode);
resource.Attributes.Should().NotContainKey("isRightToLeft");
- resource.Relationships.ShouldNotBeEmpty();
+ resource.Relationships.Should().NotBeEmpty();
});
await _testContext.RunOnDatabaseAsync(async dbContext =>
@@ -598,11 +598,11 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Results.ShouldHaveCount(1);
+ responseDocument.Results.Should().HaveCount(1);
- responseDocument.Results[0].Data.SingleValue.ShouldNotBeNull().With(resource =>
+ responseDocument.Results[0].Data.SingleValue.RefShould().NotBeNull().And.Subject.With(resource =>
{
- resource.Relationships.ShouldNotBeEmpty();
+ resource.Relationships.Should().NotBeEmpty();
resource.Relationships.Values.Should().OnlyContain(value => value != null && value.Data.Value == null);
});
}
@@ -631,15 +631,15 @@ public async Task Cannot_update_resource_for_href_element()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'href' element is not supported.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/href");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -737,15 +737,15 @@ public async Task Cannot_update_resource_for_missing_type_in_ref()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'type' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -786,15 +786,15 @@ public async Task Cannot_update_resource_for_missing_ID_in_ref()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'id' or 'lid' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -837,15 +837,15 @@ public async Task Cannot_update_resource_for_ID_and_local_ID_in_ref()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'id' and 'lid' element are mutually exclusive.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -871,15 +871,15 @@ public async Task Cannot_update_resource_for_missing_data()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'data' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -906,15 +906,15 @@ public async Task Cannot_update_resource_for_null_data()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Expected an object, instead of 'null'.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -960,15 +960,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Expected an object, instead of an array.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -1004,15 +1004,15 @@ public async Task Cannot_update_resource_for_missing_type_in_data()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'type' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -1048,15 +1048,15 @@ public async Task Cannot_update_resource_for_missing_ID_in_data()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'id' or 'lid' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -1094,15 +1094,15 @@ public async Task Cannot_update_resource_for_ID_and_local_ID_in_data()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'id' and 'lid' element are mutually exclusive.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -1144,15 +1144,15 @@ public async Task Cannot_update_on_resource_type_mismatch_between_ref_and_data()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Conflict);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Conflict);
error.Title.Should().Be("Failed to deserialize request body: Incompatible resource type found.");
error.Detail.Should().Be("Type 'playlists' is not convertible to type 'performers'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/type");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -1197,15 +1197,15 @@ public async Task Cannot_update_on_resource_ID_mismatch_between_ref_and_data()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Conflict);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Conflict);
error.Title.Should().Be("Failed to deserialize request body: Conflicting 'id' values found.");
error.Detail.Should().Be($"Expected '{performerId1}' instead of '{performerId2}'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/id");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -1247,15 +1247,15 @@ public async Task Cannot_update_on_resource_local_ID_mismatch_between_ref_and_da
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Conflict);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Conflict);
error.Title.Should().Be("Failed to deserialize request body: Conflicting 'lid' values found.");
error.Detail.Should().Be("Expected 'local-1' instead of 'local-2'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/lid");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -1299,15 +1299,15 @@ public async Task Cannot_update_on_mixture_of_ID_and_local_ID_between_ref_and_da
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'id' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -1351,15 +1351,15 @@ public async Task Cannot_update_on_mixture_of_local_ID_and_ID_between_ref_and_da
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'lid' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -1396,15 +1396,15 @@ public async Task Cannot_update_resource_for_unknown_type()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Unknown resource type found.");
error.Detail.Should().Be($"Resource type '{Unknown.ResourceType}' does not exist.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/type");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -1443,13 +1443,13 @@ public async Task Cannot_update_resource_for_unknown_ID()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
error.Title.Should().Be("The requested resource does not exist.");
error.Detail.Should().Be($"Resource of type 'performers' with ID '{performerId}' does not exist.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]");
error.Meta.Should().NotContainKey("requestBody");
}
@@ -1492,15 +1492,15 @@ public async Task Cannot_update_resource_for_incompatible_ID()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Incompatible 'id' value found.");
error.Detail.Should().Be($"Failed to convert '{guid}' of type 'String' to type 'Int32'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/ref/id");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -1543,15 +1543,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Attribute is read-only.");
error.Detail.Should().Be("Attribute 'isArchived' on resource type 'playlists' is read-only.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/attributes/isArchived");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -1594,15 +1594,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Resource ID is read-only.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/attributes/id");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -1645,15 +1645,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Incompatible attribute value found.");
error.Detail.Should().Be("Failed to convert attribute 'bornAt' with value '123.45' of type 'Number' to type 'DateTimeOffset'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/attributes/bornAt");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -1754,13 +1754,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
trackInDatabase.Title.Should().Be(existingTrack.Title);
trackInDatabase.Genre.Should().Be(newGenre);
- trackInDatabase.Lyric.ShouldNotBeNull();
+ trackInDatabase.Lyric.Should().NotBeNull();
trackInDatabase.Lyric.Id.Should().Be(existingLyric.Id);
- trackInDatabase.OwnedBy.ShouldNotBeNull();
+ trackInDatabase.OwnedBy.Should().NotBeNull();
trackInDatabase.OwnedBy.Id.Should().Be(existingCompany.Id);
- trackInDatabase.Performers.ShouldHaveCount(1);
+ trackInDatabase.Performers.Should().HaveCount(1);
trackInDatabase.Performers[0].Id.Should().Be(existingPerformer.Id);
});
}
@@ -1805,14 +1805,14 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Attribute value cannot be assigned when updating resource.");
error.Detail.Should().Be("The attribute 'createdAt' on resource type 'lyrics' cannot be assigned to.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/attributes/createdAt");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Updating/Resources/AtomicUpdateToOneRelationshipTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Updating/Resources/AtomicUpdateToOneRelationshipTests.cs
index 0206ef1e9c..00133e29ea 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Updating/Resources/AtomicUpdateToOneRelationshipTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/AtomicOperations/Updating/Resources/AtomicUpdateToOneRelationshipTests.cs
@@ -73,7 +73,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
lyricInDatabase.Track.Should().BeNull();
List tracksInDatabase = await dbContext.MusicTracks.ToListAsync();
- tracksInDatabase.ShouldHaveCount(1);
+ tracksInDatabase.Should().HaveCount(1);
});
}
@@ -131,7 +131,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
trackInDatabase.Lyric.Should().BeNull();
List lyricsInDatabase = await dbContext.Lyrics.ToListAsync();
- lyricsInDatabase.ShouldHaveCount(1);
+ lyricsInDatabase.Should().HaveCount(1);
});
}
@@ -189,7 +189,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
trackInDatabase.OwnedBy.Should().BeNull();
List companiesInDatabase = await dbContext.RecordCompanies.ToListAsync();
- companiesInDatabase.ShouldHaveCount(1);
+ companiesInDatabase.Should().HaveCount(1);
});
}
@@ -247,7 +247,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
Lyric lyricInDatabase = await dbContext.Lyrics.Include(lyric => lyric.Track).FirstWithIdAsync(existingLyric.Id);
- lyricInDatabase.Track.ShouldNotBeNull();
+ lyricInDatabase.Track.Should().NotBeNull();
lyricInDatabase.Track.Id.Should().Be(existingTrack.Id);
});
}
@@ -306,7 +306,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
MusicTrack trackInDatabase = await dbContext.MusicTracks.Include(musicTrack => musicTrack.Lyric).FirstWithIdAsync(existingTrack.Id);
- trackInDatabase.Lyric.ShouldNotBeNull();
+ trackInDatabase.Lyric.Should().NotBeNull();
trackInDatabase.Lyric.Id.Should().Be(existingLyric.Id);
});
}
@@ -365,7 +365,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
MusicTrack trackInDatabase = await dbContext.MusicTracks.Include(musicTrack => musicTrack.OwnedBy).FirstWithIdAsync(existingTrack.Id);
- trackInDatabase.OwnedBy.ShouldNotBeNull();
+ trackInDatabase.OwnedBy.Should().NotBeNull();
trackInDatabase.OwnedBy.Id.Should().Be(existingCompany.Id);
});
}
@@ -427,11 +427,11 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
Lyric lyricInDatabase = await dbContext.Lyrics.Include(lyric => lyric.Track).FirstWithIdAsync(existingLyric.Id);
- lyricInDatabase.Track.ShouldNotBeNull();
+ lyricInDatabase.Track.Should().NotBeNull();
lyricInDatabase.Track.Id.Should().Be(existingTrack.Id);
List tracksInDatabase = await dbContext.MusicTracks.ToListAsync();
- tracksInDatabase.ShouldHaveCount(2);
+ tracksInDatabase.Should().HaveCount(2);
});
}
@@ -492,11 +492,11 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
MusicTrack trackInDatabase = await dbContext.MusicTracks.Include(musicTrack => musicTrack.Lyric).FirstWithIdAsync(existingTrack.Id);
- trackInDatabase.Lyric.ShouldNotBeNull();
+ trackInDatabase.Lyric.Should().NotBeNull();
trackInDatabase.Lyric.Id.Should().Be(existingLyric.Id);
List lyricsInDatabase = await dbContext.Lyrics.ToListAsync();
- lyricsInDatabase.ShouldHaveCount(2);
+ lyricsInDatabase.Should().HaveCount(2);
});
}
@@ -557,11 +557,11 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
MusicTrack trackInDatabase = await dbContext.MusicTracks.Include(musicTrack => musicTrack.OwnedBy).FirstWithIdAsync(existingTrack.Id);
- trackInDatabase.OwnedBy.ShouldNotBeNull();
+ trackInDatabase.OwnedBy.Should().NotBeNull();
trackInDatabase.OwnedBy.Id.Should().Be(existingCompany.Id);
List companiesInDatabase = await dbContext.RecordCompanies.ToListAsync();
- companiesInDatabase.ShouldHaveCount(2);
+ companiesInDatabase.Should().HaveCount(2);
});
}
@@ -605,15 +605,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Expected an object, instead of 'null'.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/lyric");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -658,15 +658,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'data' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/lyric");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -719,15 +719,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Expected an object or 'null', instead of an array.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/lyric/data");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -768,15 +768,15 @@ public async Task Cannot_create_for_missing_type_in_relationship_data()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'type' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/track/data");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -818,15 +818,15 @@ public async Task Cannot_create_for_unknown_type_in_relationship_data()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Unknown resource type found.");
error.Detail.Should().Be($"Resource type '{Unknown.ResourceType}' does not exist.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/lyric/data/type");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -867,15 +867,15 @@ public async Task Cannot_create_for_missing_ID_in_relationship_data()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'id' or 'lid' element is required.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/lyric/data");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -918,15 +918,15 @@ public async Task Cannot_create_for_ID_and_local_ID_in_relationship_data()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: The 'id' and 'lid' element are mutually exclusive.");
error.Detail.Should().BeNull();
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/lyric/data");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -978,13 +978,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
error.Title.Should().Be("A related resource does not exist.");
error.Detail.Should().Be($"Related resource of type 'lyrics' with ID '{lyricId}' in relationship 'lyric' does not exist.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]");
error.Meta.Should().NotContainKey("requestBody");
}
@@ -1036,15 +1036,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Conflict);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Conflict);
error.Title.Should().Be("Failed to deserialize request body: Incompatible resource type found.");
error.Detail.Should().Be("Type 'playlists' is not convertible to type 'lyrics' of relationship 'lyric'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/lyric/data/type");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
[Fact]
@@ -1094,14 +1094,14 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Relationship cannot be assigned.");
error.Detail.Should().Be("The relationship 'language' on resource type 'lyrics' cannot be assigned to.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/atomic:operations[0]/data/relationships/language");
- error.Meta.ShouldContainKey("requestBody").With(value => value.ShouldNotBeNull().ToString().ShouldNotBeEmpty());
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should().NotBeEmpty();
}
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/Authorization/Scopes/ScopeOperationsTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/Authorization/Scopes/ScopeOperationsTests.cs
index 330ea277df..d8834ce7fa 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/Authorization/Scopes/ScopeOperationsTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/Authorization/Scopes/ScopeOperationsTests.cs
@@ -86,13 +86,13 @@ public async Task Cannot_create_resources_without_scopes()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Unauthorized);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
error.Title.Should().Be("Insufficient permissions to perform this request.");
error.Detail.Should().Be("Performing this request requires the following scopes: write:genres write:movies.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be(ScopeHeaderName);
}
@@ -137,13 +137,13 @@ public async Task Cannot_create_resource_with_read_scope()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Unauthorized);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
error.Title.Should().Be("Insufficient permissions to perform this request.");
error.Detail.Should().Be("Performing this request requires the following scopes: write:genres.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be(ScopeHeaderName);
}
@@ -195,13 +195,13 @@ public async Task Cannot_update_resources_without_scopes()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Unauthorized);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
error.Title.Should().Be("Insufficient permissions to perform this request.");
error.Detail.Should().Be("Performing this request requires the following scopes: write:actors write:movies.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be(ScopeHeaderName);
}
@@ -253,13 +253,13 @@ public async Task Cannot_update_resource_with_relationships_without_scopes()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Unauthorized);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
error.Title.Should().Be("Insufficient permissions to perform this request.");
error.Detail.Should().Be("Performing this request requires the following scopes: write:actors write:movies.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be(ScopeHeaderName);
}
@@ -300,13 +300,13 @@ public async Task Cannot_delete_resources_without_scopes()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Unauthorized);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
error.Title.Should().Be("Insufficient permissions to perform this request.");
error.Detail.Should().Be("Performing this request requires the following scopes: write:actors write:genres.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be(ScopeHeaderName);
}
@@ -340,13 +340,13 @@ public async Task Cannot_update_ToOne_relationship_without_scopes()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Unauthorized);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
error.Title.Should().Be("Insufficient permissions to perform this request.");
error.Detail.Should().Be("Performing this request requires the following scopes: write:genres write:movies.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be(ScopeHeaderName);
}
@@ -380,13 +380,13 @@ public async Task Cannot_update_ToMany_relationship_without_scopes()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Unauthorized);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
error.Title.Should().Be("Insufficient permissions to perform this request.");
error.Detail.Should().Be("Performing this request requires the following scopes: write:actors write:movies.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be(ScopeHeaderName);
}
@@ -420,13 +420,13 @@ public async Task Cannot_add_to_ToMany_relationship_without_scopes()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Unauthorized);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
error.Title.Should().Be("Insufficient permissions to perform this request.");
error.Detail.Should().Be("Performing this request requires the following scopes: write:actors write:movies.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be(ScopeHeaderName);
}
@@ -460,13 +460,13 @@ public async Task Cannot_remove_from_ToMany_relationship_without_scopes()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Unauthorized);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
error.Title.Should().Be("Insufficient permissions to perform this request.");
error.Detail.Should().Be("Performing this request requires the following scopes: write:actors write:movies.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be(ScopeHeaderName);
}
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/Authorization/Scopes/ScopeReadTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/Authorization/Scopes/ScopeReadTests.cs
index c1004c3e21..91530044df 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/Authorization/Scopes/ScopeReadTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/Authorization/Scopes/ScopeReadTests.cs
@@ -34,13 +34,13 @@ public async Task Cannot_get_primary_resources_without_scopes()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Unauthorized);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
error.Title.Should().Be("Insufficient permissions to perform this request.");
error.Detail.Should().Be("Performing this request requires the following scopes: read:movies.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be(ScopeHeaderName);
}
@@ -58,13 +58,13 @@ public async Task Cannot_get_primary_resources_with_incorrect_scopes()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Unauthorized);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
error.Title.Should().Be("Insufficient permissions to perform this request.");
error.Detail.Should().Be("Performing this request requires the following scopes: read:movies.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be(ScopeHeaderName);
}
@@ -92,11 +92,11 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Type.Should().Be("movies");
responseDocument.Data.ManyValue[0].Id.Should().Be(movie.StringId);
- responseDocument.Data.ManyValue[0].Attributes.ShouldNotBeEmpty();
- responseDocument.Data.ManyValue[0].Relationships.ShouldNotBeEmpty();
+ responseDocument.Data.ManyValue[0].Attributes.Should().NotBeEmpty();
+ responseDocument.Data.ManyValue[0].Relationships.Should().NotBeEmpty();
}
[Fact]
@@ -122,11 +122,11 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Type.Should().Be("genres");
responseDocument.Data.ManyValue[0].Id.Should().Be(genre.StringId);
- responseDocument.Data.ManyValue[0].Attributes.ShouldNotBeEmpty();
- responseDocument.Data.ManyValue[0].Relationships.ShouldNotBeEmpty();
+ responseDocument.Data.ManyValue[0].Attributes.Should().NotBeEmpty();
+ responseDocument.Data.ManyValue[0].Relationships.Should().NotBeEmpty();
}
[Fact]
@@ -152,11 +152,11 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Type.Should().Be("actors");
responseDocument.Data.ManyValue[0].Id.Should().Be(actor.StringId);
- responseDocument.Data.ManyValue[0].Attributes.ShouldNotBeEmpty();
- responseDocument.Data.ManyValue[0].Relationships.ShouldNotBeEmpty();
+ responseDocument.Data.ManyValue[0].Attributes.Should().NotBeEmpty();
+ responseDocument.Data.ManyValue[0].Relationships.Should().NotBeEmpty();
}
[Fact]
@@ -171,13 +171,13 @@ public async Task Cannot_get_primary_resource_without_scopes()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Unauthorized);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
error.Title.Should().Be("Insufficient permissions to perform this request.");
error.Detail.Should().Be("Performing this request requires the following scopes: read:actors.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be(ScopeHeaderName);
}
@@ -193,13 +193,13 @@ public async Task Cannot_get_secondary_resource_without_scopes()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Unauthorized);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
error.Title.Should().Be("Insufficient permissions to perform this request.");
error.Detail.Should().Be("Performing this request requires the following scopes: read:genres read:movies.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be(ScopeHeaderName);
}
@@ -215,13 +215,13 @@ public async Task Cannot_get_secondary_resources_without_scopes()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Unauthorized);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
error.Title.Should().Be("Insufficient permissions to perform this request.");
error.Detail.Should().Be("Performing this request requires the following scopes: read:genres read:movies.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be(ScopeHeaderName);
}
@@ -237,13 +237,13 @@ public async Task Cannot_get_ToOne_relationship_without_scopes()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Unauthorized);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
error.Title.Should().Be("Insufficient permissions to perform this request.");
error.Detail.Should().Be("Performing this request requires the following scopes: read:genres read:movies.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be(ScopeHeaderName);
}
@@ -259,13 +259,13 @@ public async Task Cannot_get_ToMany_relationship_without_scopes()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Unauthorized);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
error.Title.Should().Be("Insufficient permissions to perform this request.");
error.Detail.Should().Be("Performing this request requires the following scopes: read:genres read:movies.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be(ScopeHeaderName);
}
@@ -283,13 +283,13 @@ public async Task Cannot_include_with_insufficient_scopes()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Unauthorized);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
error.Title.Should().Be("Insufficient permissions to perform this request.");
error.Detail.Should().Be("Performing this request requires the following scopes: read:actors read:genres read:movies.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be(ScopeHeaderName);
}
@@ -307,13 +307,13 @@ public async Task Cannot_filter_with_insufficient_scopes()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Unauthorized);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
error.Title.Should().Be("Insufficient permissions to perform this request.");
error.Detail.Should().Be("Performing this request requires the following scopes: read:actors read:genres read:movies.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be(ScopeHeaderName);
}
@@ -331,13 +331,13 @@ public async Task Cannot_sort_with_insufficient_scopes()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Unauthorized);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
error.Title.Should().Be("Insufficient permissions to perform this request.");
error.Detail.Should().Be("Performing this request requires the following scopes: read:actors read:genres read:movies.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be(ScopeHeaderName);
}
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/Authorization/Scopes/ScopeWriteTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/Authorization/Scopes/ScopeWriteTests.cs
index 1db9a7cf36..ef1e7d5aca 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/Authorization/Scopes/ScopeWriteTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/Authorization/Scopes/ScopeWriteTests.cs
@@ -48,13 +48,13 @@ public async Task Cannot_create_resource_without_scopes()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Unauthorized);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
error.Title.Should().Be("Insufficient permissions to perform this request.");
error.Detail.Should().Be("Performing this request requires the following scopes: write:movies.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be(ScopeHeaderName);
}
@@ -108,13 +108,13 @@ public async Task Cannot_create_resource_with_relationships_without_scopes()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Unauthorized);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
error.Title.Should().Be("Insufficient permissions to perform this request.");
error.Detail.Should().Be("Performing this request requires the following scopes: write:actors write:genres write:movies.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be(ScopeHeaderName);
}
@@ -171,13 +171,13 @@ public async Task Cannot_create_resource_with_relationships_with_read_scopes()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Unauthorized);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
error.Title.Should().Be("Insufficient permissions to perform this request.");
error.Detail.Should().Be("Performing this request requires the following scopes: write:actors write:genres write:movies.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be(ScopeHeaderName);
}
@@ -208,13 +208,13 @@ public async Task Cannot_update_resource_without_scopes()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Unauthorized);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
error.Title.Should().Be("Insufficient permissions to perform this request.");
error.Detail.Should().Be("Performing this request requires the following scopes: write:movies.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be(ScopeHeaderName);
}
@@ -267,13 +267,13 @@ public async Task Cannot_update_resource_with_relationships_without_scopes()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Unauthorized);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
error.Title.Should().Be("Insufficient permissions to perform this request.");
error.Detail.Should().Be("Performing this request requires the following scopes: write:actors write:genres write:movies.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be(ScopeHeaderName);
}
@@ -289,13 +289,13 @@ public async Task Cannot_delete_resource_without_scopes()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Unauthorized);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
error.Title.Should().Be("Insufficient permissions to perform this request.");
error.Detail.Should().Be("Performing this request requires the following scopes: write:movies.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be(ScopeHeaderName);
}
@@ -320,13 +320,13 @@ public async Task Cannot_update_ToOne_relationship_without_scopes()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Unauthorized);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
error.Title.Should().Be("Insufficient permissions to perform this request.");
error.Detail.Should().Be("Performing this request requires the following scopes: write:genres write:movies.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be(ScopeHeaderName);
}
@@ -354,13 +354,13 @@ public async Task Cannot_update_ToMany_relationship_without_scopes()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Unauthorized);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
error.Title.Should().Be("Insufficient permissions to perform this request.");
error.Detail.Should().Be("Performing this request requires the following scopes: write:actors write:movies.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be(ScopeHeaderName);
}
@@ -388,13 +388,13 @@ public async Task Cannot_add_to_ToMany_relationship_without_scopes()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Unauthorized);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
error.Title.Should().Be("Insufficient permissions to perform this request.");
error.Detail.Should().Be("Performing this request requires the following scopes: write:actors write:movies.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be(ScopeHeaderName);
}
@@ -422,13 +422,13 @@ public async Task Cannot_remove_from_ToMany_relationship_without_scopes()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Unauthorized);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
error.Title.Should().Be("Insufficient permissions to perform this request.");
error.Detail.Should().Be("Performing this request requires the following scopes: write:actors write:movies.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be(ScopeHeaderName);
}
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/Blobs/BlobTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/Blobs/BlobTests.cs
index faac9f2b1f..3716c56214 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/Blobs/BlobTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/Blobs/BlobTests.cs
@@ -42,12 +42,12 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Type.Should().Be("imageContainers");
responseDocument.Data.SingleValue.Id.Should().Be(container.StringId);
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("fileName").With(value => value.Should().Be(container.FileName));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("data").As().With(value => value.Should().Equal(container.Data));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("thumbnail").As().With(value => value.Should().Equal(container.Thumbnail));
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("fileName").WhoseValue.Should().Be(container.FileName);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("data").WhoseValue.As().Should().Equal(container.Data);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("thumbnail").WhoseValue.As().Should().Equal(container.Thumbnail);
responseDocument.Data.SingleValue.Relationships.Should().BeNull();
}
@@ -79,14 +79,14 @@ public async Task Can_create_resource()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Created);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Type.Should().Be("imageContainers");
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("fileName").With(value => value.Should().Be(newContainer.FileName));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("data").As().With(value => value.Should().Equal(newContainer.Data));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("thumbnail").As().With(value => value.Should().Equal(newContainer.Thumbnail));
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("fileName").WhoseValue.Should().Be(newContainer.FileName);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("data").WhoseValue.As().Should().Equal(newContainer.Data);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("thumbnail").WhoseValue.As().Should().Equal(newContainer.Thumbnail);
responseDocument.Data.SingleValue.Relationships.Should().BeNull();
- long newContainerId = long.Parse(responseDocument.Data.SingleValue.Id.ShouldNotBeNull());
+ long newContainerId = long.Parse(responseDocument.Data.SingleValue.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
@@ -135,12 +135,12 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Type.Should().Be("imageContainers");
responseDocument.Data.SingleValue.Id.Should().Be(existingContainer.StringId);
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("fileName").With(value => value.Should().Be(existingContainer.FileName));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("data").As().With(value => value.Should().Equal(newData));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("thumbnail").As().With(value => value.Should().Equal(newThumbnail));
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("fileName").WhoseValue.Should().Be(existingContainer.FileName);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("data").WhoseValue.As().With(value => value.Should().Equal(newData));
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("thumbnail").WhoseValue.As().With(value => value.Should().Equal(newThumbnail));
responseDocument.Data.SingleValue.Relationships.Should().BeNull();
await _testContext.RunOnDatabaseAsync(async dbContext =>
@@ -186,11 +186,11 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Type.Should().Be("imageContainers");
responseDocument.Data.SingleValue.Id.Should().Be(existingContainer.StringId);
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("fileName").With(value => value.Should().Be(existingContainer.FileName));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("data").As().With(value => value.Should().BeEmpty());
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("fileName").WhoseValue.Should().Be(existingContainer.FileName);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("data").WhoseValue.As().With(value => value.Should().BeEmpty());
responseDocument.Data.SingleValue.Relationships.Should().BeNull();
await _testContext.RunOnDatabaseAsync(async dbContext =>
@@ -235,11 +235,11 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Type.Should().Be("imageContainers");
responseDocument.Data.SingleValue.Id.Should().Be(existingContainer.StringId);
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("fileName").With(value => value.Should().Be(existingContainer.FileName));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("thumbnail").With(value => value.Should().BeNull());
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("fileName").WhoseValue.Should().Be(existingContainer.FileName);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("thumbnail").WhoseValue.Should().BeNull();
responseDocument.Data.SingleValue.Relationships.Should().BeNull();
await _testContext.RunOnDatabaseAsync(async dbContext =>
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/CompositeKeys/CompositeKeyTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/CompositeKeys/CompositeKeyTests.cs
index 01e8b18fb7..3ea92e7c17 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/CompositeKeys/CompositeKeyTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/CompositeKeys/CompositeKeyTests.cs
@@ -49,7 +49,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(car.StringId);
}
@@ -74,7 +74,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Id.Should().Be(car.StringId);
}
@@ -99,7 +99,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(car.StringId);
}
@@ -124,7 +124,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(car.StringId);
}
@@ -181,7 +181,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
Car? carInDatabase = await dbContext.Cars.FirstOrDefaultAsync(car => car.RegionId == newCar.RegionId && car.LicensePlate == newCar.LicensePlate);
- carInDatabase.ShouldNotBeNull();
+ carInDatabase.Should().NotBeNull();
carInDatabase.Id.Should().Be($"{newCar.RegionId}:{newCar.LicensePlate}");
});
}
@@ -234,7 +234,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
Engine engineInDatabase = await dbContext.Engines.Include(engine => engine.Car).FirstWithIdAsync(existingEngine.Id);
- engineInDatabase.Car.ShouldNotBeNull();
+ engineInDatabase.Car.Should().NotBeNull();
engineInDatabase.Car.Id.Should().Be(existingCar.StringId);
});
}
@@ -327,7 +327,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
Dealership dealershipInDatabase = await dbContext.Dealerships.Include(dealership => dealership.Inventory).FirstWithIdAsync(existingDealership.Id);
- dealershipInDatabase.Inventory.ShouldHaveCount(1);
+ dealershipInDatabase.Inventory.Should().HaveCount(1);
dealershipInDatabase.Inventory.Should().ContainSingle(car => car.Id == existingDealership.Inventory.ElementAt(1).Id);
});
}
@@ -372,7 +372,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
Dealership dealershipInDatabase = await dbContext.Dealerships.Include(dealership => dealership.Inventory).FirstWithIdAsync(existingDealership.Id);
- dealershipInDatabase.Inventory.ShouldHaveCount(1);
+ dealershipInDatabase.Inventory.Should().HaveCount(1);
dealershipInDatabase.Inventory.Should().ContainSingle(car => car.Id == existingCar.Id);
});
}
@@ -424,7 +424,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
Dealership dealershipInDatabase = await dbContext.Dealerships.Include(dealership => dealership.Inventory).FirstWithIdAsync(existingDealership.Id);
- dealershipInDatabase.Inventory.ShouldHaveCount(2);
+ dealershipInDatabase.Inventory.Should().HaveCount(2);
dealershipInDatabase.Inventory.Should().ContainSingle(car => car.Id == existingCar.Id);
dealershipInDatabase.Inventory.Should().ContainSingle(car => car.Id == existingDealership.Inventory.ElementAt(0).Id);
});
@@ -465,7 +465,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
@@ -545,11 +545,11 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
Dealership dealershipInDatabase = await dbContext.Dealerships.Include(dealership => dealership.SoldCars).FirstWithIdAsync(existingDealership.Id);
- dealershipInDatabase.SoldCars.ShouldHaveCount(1);
+ dealershipInDatabase.SoldCars.Should().HaveCount(1);
dealershipInDatabase.SoldCars.Single().Id.Should().Be(existingDealership.SoldCars.ElementAt(0).Id);
List carsInDatabase = await dbContext.Cars.ToListAsync();
- carsInDatabase.ShouldHaveCount(2);
+ carsInDatabase.Should().HaveCount(2);
});
}
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/ContentNegotiation/AcceptHeaderTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/ContentNegotiation/AcceptHeaderTests.cs
index 6927e811c9..d7b1616501 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/ContentNegotiation/AcceptHeaderTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/ContentNegotiation/AcceptHeaderTests.cs
@@ -38,7 +38,7 @@ public async Task Permits_global_wildcard_in_Accept_headers()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be(JsonApiMediaType.Default.ToString());
}
@@ -60,7 +60,7 @@ public async Task Permits_application_wildcard_in_Accept_headers()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be(JsonApiMediaType.Default.ToString());
}
@@ -85,7 +85,7 @@ public async Task Permits_JsonApi_without_parameters_in_Accept_headers()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be(JsonApiMediaType.Default.ToString());
}
@@ -131,7 +131,7 @@ public async Task Prefers_JsonApi_with_AtomicOperations_extension_in_Accept_head
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be(JsonApiMediaType.AtomicOperations.ToString());
}
@@ -177,7 +177,7 @@ public async Task Prefers_JsonApi_with_relaxed_AtomicOperations_extension_in_Acc
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be(JsonApiMediaType.RelaxedAtomicOperations.ToString());
}
@@ -202,13 +202,13 @@ public async Task Denies_JsonApi_with_parameters_in_Accept_headers()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotAcceptable);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotAcceptable);
error.Title.Should().Be("The specified Accept header value does not contain any supported media types.");
error.Detail.Should().Be($"Include '{JsonApiMediaType.Default}' in the Accept header values.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be("Accept");
}
@@ -249,13 +249,13 @@ public async Task Denies_no_Accept_headers_at_operations_endpoint()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotAcceptable);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotAcceptable);
error.Title.Should().Be("The specified Accept header value does not contain any supported media types.");
error.Detail.Should().Be($"Include '{JsonApiMediaType.AtomicOperations}' or '{JsonApiMediaType.RelaxedAtomicOperations}' in the Accept header values.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be("Accept");
}
@@ -295,13 +295,13 @@ public async Task Denies_JsonApi_in_Accept_headers_at_operations_endpoint()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotAcceptable);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotAcceptable);
error.Title.Should().Be("The specified Accept header value does not contain any supported media types.");
error.Detail.Should().Be($"Include '{JsonApiMediaType.AtomicOperations}' or '{JsonApiMediaType.RelaxedAtomicOperations}' in the Accept header values.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be("Accept");
}
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/ContentNegotiation/ContentTypeHeaderTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/ContentNegotiation/ContentTypeHeaderTests.cs
index 19948c0092..5627265ea6 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/ContentNegotiation/ContentTypeHeaderTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/ContentNegotiation/ContentTypeHeaderTests.cs
@@ -32,7 +32,7 @@ public async Task Returns_JsonApi_ContentType_header()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be(JsonApiMediaType.Default.ToString());
}
@@ -67,7 +67,7 @@ public async Task Returns_JsonApi_ContentType_header_with_AtomicOperations_exten
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be(JsonApiMediaType.AtomicOperations.ToString());
}
@@ -106,7 +106,7 @@ public async Task Returns_JsonApi_ContentType_header_with_relaxed_AtomicOperatio
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be(JsonApiMediaType.RelaxedAtomicOperations.ToString());
}
@@ -135,16 +135,16 @@ public async Task Denies_unknown_ContentType_header()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnsupportedMediaType);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be(JsonApiMediaType.Default.ToString());
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnsupportedMediaType);
error.Title.Should().Be("The specified Content-Type header value is not supported.");
error.Detail.Should().Be($"Use '{JsonApiMediaType.Default}' instead of 'text/html' for the Content-Type header value.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be("Content-Type");
}
@@ -180,10 +180,10 @@ public async Task Denies_unknown_ContentType_header_at_operations_endpoint()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnsupportedMediaType);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be(JsonApiMediaType.Default.ToString());
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
string detail =
$"Use '{JsonApiMediaType.AtomicOperations}' or '{JsonApiMediaType.RelaxedAtomicOperations}' instead of 'text/html' for the Content-Type header value.";
@@ -192,7 +192,7 @@ public async Task Denies_unknown_ContentType_header_at_operations_endpoint()
error.StatusCode.Should().Be(HttpStatusCode.UnsupportedMediaType);
error.Title.Should().Be("The specified Content-Type header value is not supported.");
error.Detail.Should().Be(detail);
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be("Content-Type");
}
@@ -221,7 +221,7 @@ public async Task Permits_JsonApi_ContentType_header()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Created);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be(JsonApiMediaType.Default.ToString());
}
@@ -250,7 +250,7 @@ public async Task Permits_JsonApi_ContentType_header_in_upper_case()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Created);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be(JsonApiMediaType.Default.ToString());
}
@@ -285,7 +285,7 @@ public async Task Permits_JsonApi_ContentType_header_with_AtomicOperations_exten
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be(JsonApiMediaType.AtomicOperations.ToString());
}
@@ -321,10 +321,10 @@ public async Task Denies_JsonApi_ContentType_header_with_AtomicOperations_extens
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnsupportedMediaType);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be(JsonApiMediaType.Default.ToString());
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
string detail =
$"Use '{JsonApiMediaType.AtomicOperations}' or '{JsonApiMediaType.RelaxedAtomicOperations}' instead of '{contentType}' for the Content-Type header value.";
@@ -333,7 +333,7 @@ public async Task Denies_JsonApi_ContentType_header_with_AtomicOperations_extens
error.StatusCode.Should().Be(HttpStatusCode.UnsupportedMediaType);
error.Title.Should().Be("The specified Content-Type header value is not supported.");
error.Detail.Should().Be(detail);
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be("Content-Type");
}
@@ -372,7 +372,7 @@ public async Task Permits_JsonApi_ContentType_header_with_relaxed_AtomicOperatio
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be(JsonApiMediaType.RelaxedAtomicOperations.ToString());
}
@@ -401,16 +401,16 @@ public async Task Denies_JsonApi_ContentType_header_with_unknown_extension()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnsupportedMediaType);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be(JsonApiMediaType.Default.ToString());
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnsupportedMediaType);
error.Title.Should().Be("The specified Content-Type header value is not supported.");
error.Detail.Should().Be($"Use '{JsonApiMediaType.Default}' instead of '{contentType}' for the Content-Type header value.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be("Content-Type");
}
@@ -439,16 +439,16 @@ public async Task Denies_JsonApi_ContentType_header_with_AtomicOperations_extens
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnsupportedMediaType);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be(JsonApiMediaType.Default.ToString());
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnsupportedMediaType);
error.Title.Should().Be("The specified Content-Type header value is not supported.");
error.Detail.Should().Be($"Use '{JsonApiMediaType.Default}' instead of '{contentType}' for the Content-Type header value.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be("Content-Type");
}
@@ -477,16 +477,16 @@ public async Task Denies_JsonApi_ContentType_header_with_relaxed_AtomicOperation
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnsupportedMediaType);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be(JsonApiMediaType.Default.ToString());
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnsupportedMediaType);
error.Title.Should().Be("The specified Content-Type header value is not supported.");
error.Detail.Should().Be($"Use '{JsonApiMediaType.Default}' instead of '{contentType}' for the Content-Type header value.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be("Content-Type");
}
@@ -515,16 +515,16 @@ public async Task Denies_JsonApi_ContentType_header_with_profile()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnsupportedMediaType);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be(JsonApiMediaType.Default.ToString());
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnsupportedMediaType);
error.Title.Should().Be("The specified Content-Type header value is not supported.");
error.Detail.Should().Be($"Use '{JsonApiMediaType.Default}' instead of '{contentType}' for the Content-Type header value.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be("Content-Type");
}
@@ -553,16 +553,16 @@ public async Task Denies_JsonApi_ContentType_header_with_CharSet()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnsupportedMediaType);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be(JsonApiMediaType.Default.ToString());
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnsupportedMediaType);
error.Title.Should().Be("The specified Content-Type header value is not supported.");
error.Detail.Should().Be($"Use '{JsonApiMediaType.Default}' instead of '{contentType}' for the Content-Type header value.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be("Content-Type");
}
@@ -591,16 +591,16 @@ public async Task Denies_JsonApi_ContentType_header_with_unknown_parameter()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnsupportedMediaType);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be(JsonApiMediaType.Default.ToString());
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnsupportedMediaType);
error.Title.Should().Be("The specified Content-Type header value is not supported.");
error.Detail.Should().Be($"Use '{JsonApiMediaType.Default}' instead of '{contentType}' for the Content-Type header value.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be("Content-Type");
}
@@ -636,10 +636,10 @@ public async Task Denies_JsonApi_ContentType_header_at_operations_endpoint()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnsupportedMediaType);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be(JsonApiMediaType.Default.ToString());
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
string detail =
$"Use '{JsonApiMediaType.AtomicOperations}' or '{JsonApiMediaType.RelaxedAtomicOperations}' instead of '{contentType}' for the Content-Type header value.";
@@ -648,7 +648,7 @@ public async Task Denies_JsonApi_ContentType_header_at_operations_endpoint()
error.StatusCode.Should().Be(HttpStatusCode.UnsupportedMediaType);
error.Title.Should().Be("The specified Content-Type header value is not supported.");
error.Detail.Should().Be(detail);
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be("Content-Type");
}
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/ContentNegotiation/CustomExtensions/CustomExtensionsAcceptHeaderTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/ContentNegotiation/CustomExtensions/CustomExtensionsAcceptHeaderTests.cs
index b5f6367b73..d1c859aaea 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/ContentNegotiation/CustomExtensions/CustomExtensionsAcceptHeaderTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/ContentNegotiation/CustomExtensions/CustomExtensionsAcceptHeaderTests.cs
@@ -54,7 +54,7 @@ public async Task Permits_JsonApi_without_parameters_in_Accept_headers()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be(JsonApiMediaType.Default.ToString());
}
@@ -78,7 +78,7 @@ public async Task Prefers_first_match_from_GetPossibleMediaTypes_with_largest_nu
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be(ServerTimeMediaTypes.ServerTime.ToString());
}
@@ -101,7 +101,7 @@ public async Task Prefers_quality_factor_over_largest_number_of_extensions()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be(JsonApiMediaType.Default.ToString());
}
@@ -141,7 +141,7 @@ public async Task Denies_extensions_mismatch_between_ContentType_and_Accept_head
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotAcceptable);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
string detail = $"Include '{JsonApiMediaType.AtomicOperations}' or '{ServerTimeMediaTypes.AtomicOperationsWithServerTime}' or " +
$"'{JsonApiMediaType.RelaxedAtomicOperations}' or '{ServerTimeMediaTypes.RelaxedAtomicOperationsWithRelaxedServerTime}' in the Accept header values.";
@@ -150,7 +150,7 @@ public async Task Denies_extensions_mismatch_between_ContentType_and_Accept_head
error.StatusCode.Should().Be(HttpStatusCode.NotAcceptable);
error.Title.Should().Be("The specified Accept header value does not contain any supported media types.");
error.Detail.Should().Be(detail);
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be("Accept");
}
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/ContentNegotiation/CustomExtensions/CustomExtensionsContentTypeTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/ContentNegotiation/CustomExtensions/CustomExtensionsContentTypeTests.cs
index 3a991dc13d..261f7b5149 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/ContentNegotiation/CustomExtensions/CustomExtensionsContentTypeTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/ContentNegotiation/CustomExtensions/CustomExtensionsContentTypeTests.cs
@@ -74,7 +74,7 @@ public async Task Permits_JsonApi_ContentType_header()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Created);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be(JsonApiMediaType.Default.ToString());
}
@@ -111,11 +111,11 @@ public async Task Permits_JsonApi_ContentType_header_with_ServerTime_extension()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Created);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be(ServerTimeMediaTypes.ServerTime.ToString());
- responseDocument.Meta.ShouldContainKey("localServerTime").With(time =>
- time.ShouldNotBeNull().ToString().Should().Be("2025-01-01T06:53:40.0000000+09:00"));
+ responseDocument.Meta.Should().ContainKey("localServerTime").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should()
+ .Be("2025-01-01T06:53:40.0000000+09:00");
}
[Fact]
@@ -147,10 +147,11 @@ public async Task Permits_JsonApi_ContentType_header_with_relaxed_ServerTime_ext
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Created);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be(ServerTimeMediaTypes.RelaxedServerTime.ToString());
- responseDocument.Meta.ShouldContainKey("utcServerTime").With(time => time.ShouldNotBeNull().ToString().Should().Be("2024-12-31T21:53:40.0000000Z"));
+ responseDocument.Meta.Should().ContainKey("utcServerTime").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should()
+ .Be("2024-12-31T21:53:40.0000000Z");
}
[Fact]
@@ -189,10 +190,11 @@ public async Task Permits_JsonApi_ContentType_header_with_AtomicOperations_and_S
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be(ServerTimeMediaTypes.AtomicOperationsWithServerTime.ToString());
- responseDocument.Meta.ShouldContainKey("utcServerTime").With(time => time.ShouldNotBeNull().ToString().Should().Be("2024-12-31T21:53:40.0000000Z"));
+ responseDocument.Meta.Should().ContainKey("utcServerTime").WhoseValue.Should().NotBeNull().And.Subject.ToString().Should()
+ .Be("2024-12-31T21:53:40.0000000Z");
}
[Fact]
@@ -236,10 +238,10 @@ public async Task Permits_JsonApi_ContentType_header_with_relaxed_AtomicOperatio
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be(ServerTimeMediaTypes.RelaxedAtomicOperationsWithRelaxedServerTime.ToString());
- responseDocument.Meta.ShouldContainKey("localServerTime");
+ responseDocument.Meta.Should().ContainKey("localServerTime");
}
[Fact]
@@ -267,10 +269,10 @@ public async Task Denies_JsonApi_ContentType_header_with_AtomicOperations_extens
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnsupportedMediaType);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be(JsonApiMediaType.Default.ToString());
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
string detail = $"Use '{JsonApiMediaType.Default}' or '{ServerTimeMediaTypes.ServerTime}' or " +
$"'{ServerTimeMediaTypes.RelaxedServerTime}' instead of '{contentType}' for the Content-Type header value.";
@@ -279,7 +281,7 @@ public async Task Denies_JsonApi_ContentType_header_with_AtomicOperations_extens
error.StatusCode.Should().Be(HttpStatusCode.UnsupportedMediaType);
error.Title.Should().Be("The specified Content-Type header value is not supported.");
error.Detail.Should().Be(detail);
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be("Content-Type");
}
@@ -315,10 +317,10 @@ public async Task Denies_JsonApi_ContentType_header_with_relaxed_ServerTime_at_o
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnsupportedMediaType);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be(JsonApiMediaType.Default.ToString());
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
string detail = $"Use '{JsonApiMediaType.AtomicOperations}' or '{ServerTimeMediaTypes.AtomicOperationsWithServerTime}' or " +
$"'{JsonApiMediaType.RelaxedAtomicOperations}' or '{ServerTimeMediaTypes.RelaxedAtomicOperationsWithRelaxedServerTime}' " +
@@ -328,7 +330,7 @@ public async Task Denies_JsonApi_ContentType_header_with_relaxed_ServerTime_at_o
error.StatusCode.Should().Be(HttpStatusCode.UnsupportedMediaType);
error.Title.Should().Be("The specified Content-Type header value is not supported.");
error.Detail.Should().Be(detail);
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Header.Should().Be("Content-Type");
}
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/ControllerActionResults/ActionResultTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/ControllerActionResults/ActionResultTests.cs
index b11c31623c..fe047449f1 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/ControllerActionResults/ActionResultTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/ControllerActionResults/ActionResultTests.cs
@@ -37,7 +37,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Id.Should().Be(toothbrush.StringId);
}
@@ -53,7 +53,7 @@ public async Task Converts_empty_ActionResult_to_error_collection()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
@@ -73,7 +73,7 @@ public async Task Converts_ActionResult_with_error_object_to_error_collection()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
@@ -93,7 +93,7 @@ public async Task Cannot_convert_ActionResult_with_string_parameter_to_error_col
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.InternalServerError);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.InternalServerError);
@@ -113,7 +113,7 @@ public async Task Converts_ObjectResult_with_error_object_to_error_collection()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadGateway);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadGateway);
@@ -133,7 +133,7 @@ public async Task Converts_ObjectResult_with_error_objects_to_error_collection()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(3);
+ responseDocument.Errors.Should().HaveCount(3);
ErrorObject error1 = responseDocument.Errors[0];
error1.StatusCode.Should().Be(HttpStatusCode.PreconditionFailed);
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/CustomRoutes/ApiControllerAttributeLogTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/CustomRoutes/ApiControllerAttributeLogTests.cs
index 69c71e5d82..132fa446b1 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/CustomRoutes/ApiControllerAttributeLogTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/CustomRoutes/ApiControllerAttributeLogTests.cs
@@ -35,7 +35,7 @@ public void Logs_warning_at_startup_when_ApiControllerAttribute_found()
// Assert
IReadOnlyList logLines = _loggerProvider.GetLines();
- logLines.ShouldHaveCount(1);
+ logLines.Should().HaveCount(1);
logLines[0].Should().Be(
$"[WARNING] Found JSON:API controller '{typeof(CiviliansController)}' with [ApiController]. Please remove this attribute for optimal JSON:API compliance.");
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/CustomRoutes/ApiControllerAttributeTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/CustomRoutes/ApiControllerAttributeTests.cs
index a27ef77329..731401137b 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/CustomRoutes/ApiControllerAttributeTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/CustomRoutes/ApiControllerAttributeTests.cs
@@ -29,10 +29,10 @@ public async Task ApiController_attribute_transforms_NotFound_action_result_with
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
- error.Links.ShouldNotBeNull();
+ error.Links.Should().NotBeNull();
error.Links.About.Should().StartWith("https://tools.ietf.org/html/rfc");
}
@@ -61,11 +61,11 @@ public async Task ProblemDetails_from_invalid_ModelState_is_translated_into_erro
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(2);
+ responseDocument.Errors.Should().HaveCount(2);
ErrorObject error1 = responseDocument.Errors[0];
error1.StatusCode.Should().Be(HttpStatusCode.BadRequest);
- error1.Links.ShouldNotBeNull();
+ error1.Links.Should().NotBeNull();
error1.Links.About.Should().StartWith("https://tools.ietf.org/html/rfc");
error1.Title.Should().Be("One or more validation errors occurred.");
error1.Detail.Should().Be("The Name field is required.");
@@ -73,7 +73,7 @@ public async Task ProblemDetails_from_invalid_ModelState_is_translated_into_erro
ErrorObject error2 = responseDocument.Errors[1];
error2.StatusCode.Should().Be(HttpStatusCode.BadRequest);
- error2.Links.ShouldNotBeNull();
+ error2.Links.Should().NotBeNull();
error2.Links.About.Should().StartWith("https://tools.ietf.org/html/rfc");
error2.Title.Should().Be("One or more validation errors occurred.");
error2.Detail.Should().Be("The field YearOfBirth must be between 1900 and 2050.");
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/CustomRoutes/CustomRouteTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/CustomRoutes/CustomRouteTests.cs
index 92ba48b2f9..eb74e50fb4 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/CustomRoutes/CustomRouteTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/CustomRoutes/CustomRouteTests.cs
@@ -42,24 +42,24 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Type.Should().Be("towns");
responseDocument.Data.SingleValue.Id.Should().Be(town.StringId);
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("name").With(value => value.Should().Be(town.Name));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("latitude").With(value => value.Should().Be(town.Latitude));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("longitude").With(value => value.Should().Be(town.Longitude));
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("name").WhoseValue.Should().Be(town.Name);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("latitude").WhoseValue.Should().Be(town.Latitude);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("longitude").WhoseValue.Should().Be(town.Longitude);
- responseDocument.Data.SingleValue.Relationships.ShouldContainKey("civilians").With(value =>
+ responseDocument.Data.SingleValue.Relationships.Should().ContainKey("civilians").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{HostPrefix}{route}/relationships/civilians");
value.Links.Related.Should().Be($"{HostPrefix}{route}/civilians");
});
- responseDocument.Data.SingleValue.Links.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Links.Should().NotBeNull();
responseDocument.Data.SingleValue.Links.Self.Should().Be($"{HostPrefix}{route}");
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
}
@@ -84,9 +84,9 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(5);
- responseDocument.Data.ManyValue.Should().OnlyContain(resourceObject => resourceObject.Type == "towns");
- responseDocument.Data.ManyValue.Should().OnlyContain(resourceObject => resourceObject.Attributes.ShouldNotBeNull().Count > 0);
- responseDocument.Data.ManyValue.Should().OnlyContain(resourceObject => resourceObject.Relationships.ShouldNotBeNull().Count > 0);
+ responseDocument.Data.ManyValue.Should().HaveCount(5);
+ responseDocument.Data.ManyValue.Should().OnlyContain(resource => resource.Type == "towns");
+ responseDocument.Data.ManyValue.Should().OnlyContain(resource => resource.Attributes != null && resource.Attributes.Count > 0);
+ responseDocument.Data.ManyValue.Should().OnlyContain(resource => resource.Relationships != null && resource.Relationships.Count > 0);
}
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/EagerLoading/EagerLoadingTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/EagerLoading/EagerLoadingTests.cs
index 353417d1ba..8b64dfcbbf 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/EagerLoading/EagerLoadingTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/EagerLoading/EagerLoadingTests.cs
@@ -51,12 +51,12 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Id.Should().Be(building.StringId);
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("number").With(value => value.Should().Be(building.Number));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("windowCount").With(value => value.Should().Be(4));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("primaryDoorColor").With(value => value.Should().Be(building.PrimaryDoor.Color));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("secondaryDoorColor").With(value => value.Should().Be(building.SecondaryDoor.Color));
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("number").WhoseValue.Should().Be(building.Number);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("windowCount").WhoseValue.Should().Be(4);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("primaryDoorColor").WhoseValue.Should().Be(building.PrimaryDoor.Color);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("secondaryDoorColor").WhoseValue.Should().Be(building.SecondaryDoor.Color);
}
[Fact]
@@ -87,12 +87,12 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Id.Should().Be(street.StringId);
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("name").With(value => value.Should().Be(street.Name));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("buildingCount").With(value => value.Should().Be(2));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("doorTotalCount").With(value => value.Should().Be(3));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("windowTotalCount").With(value => value.Should().Be(5));
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("name").WhoseValue.Should().Be(street.Name);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("buildingCount").WhoseValue.Should().Be(2);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("doorTotalCount").WhoseValue.Should().Be(3);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("windowTotalCount").WhoseValue.Should().Be(5);
}
[Fact]
@@ -118,10 +118,10 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Id.Should().Be(street.StringId);
- responseDocument.Data.SingleValue.Attributes.ShouldHaveCount(1);
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("windowTotalCount").With(value => value.Should().Be(3));
+ responseDocument.Data.SingleValue.Attributes.Should().HaveCount(1);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("windowTotalCount").WhoseValue.Should().Be(3);
responseDocument.Data.SingleValue.Relationships.Should().BeNull();
}
@@ -150,21 +150,21 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Id.Should().Be(state.StringId);
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("name").With(value => value.Should().Be(state.Name));
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("name").WhoseValue.Should().Be(state.Name);
- responseDocument.Included.ShouldHaveCount(2);
+ responseDocument.Included.Should().HaveCount(2);
responseDocument.Included[0].Type.Should().Be("cities");
responseDocument.Included[0].Id.Should().Be(state.Cities[0].StringId);
- responseDocument.Included[0].Attributes.ShouldContainKey("name").With(value => value.Should().Be(state.Cities[0].Name));
+ responseDocument.Included[0].Attributes.Should().ContainKey("name").WhoseValue.Should().Be(state.Cities[0].Name);
responseDocument.Included[1].Type.Should().Be("streets");
responseDocument.Included[1].Id.Should().Be(state.Cities[0].Streets[0].StringId);
- responseDocument.Included[1].Attributes.ShouldContainKey("buildingCount").With(value => value.Should().Be(1));
- responseDocument.Included[1].Attributes.ShouldContainKey("doorTotalCount").With(value => value.Should().Be(1));
- responseDocument.Included[1].Attributes.ShouldContainKey("windowTotalCount").With(value => value.Should().Be(3));
+ responseDocument.Included[1].Attributes.Should().ContainKey("buildingCount").WhoseValue.Should().Be(1);
+ responseDocument.Included[1].Attributes.Should().ContainKey("doorTotalCount").WhoseValue.Should().Be(1);
+ responseDocument.Included[1].Attributes.Should().ContainKey("windowTotalCount").WhoseValue.Should().Be(3);
}
[Fact]
@@ -193,18 +193,18 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(state.Cities[0].StringId);
- responseDocument.Data.ManyValue[0].Attributes.ShouldHaveCount(1);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("name").With(value => value.Should().Be(state.Cities[0].Name));
+ responseDocument.Data.ManyValue[0].Attributes.Should().HaveCount(1);
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("name").WhoseValue.Should().Be(state.Cities[0].Name);
responseDocument.Data.ManyValue[0].Relationships.Should().BeNull();
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].Type.Should().Be("streets");
responseDocument.Included[0].Id.Should().Be(state.Cities[0].Streets[0].StringId);
- responseDocument.Included[0].Attributes.ShouldHaveCount(2);
- responseDocument.Included[0].Attributes.ShouldContainKey("doorTotalCount").With(value => value.Should().Be(2));
- responseDocument.Included[0].Attributes.ShouldContainKey("windowTotalCount").With(value => value.Should().Be(1));
+ responseDocument.Included[0].Attributes.Should().HaveCount(2);
+ responseDocument.Included[0].Attributes.Should().ContainKey("doorTotalCount").WhoseValue.Should().Be(2);
+ responseDocument.Included[0].Attributes.Should().ContainKey("windowTotalCount").WhoseValue.Should().Be(1);
responseDocument.Included[0].Relationships.Should().BeNull();
}
@@ -234,13 +234,13 @@ public async Task Can_create_resource()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Created);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("number").With(value => value.Should().Be(newBuilding.Number));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("windowCount").With(value => value.Should().Be(0));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("primaryDoorColor").With(value => value.Should().Be("(unspecified)"));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("secondaryDoorColor").With(value => value.Should().BeNull());
+ responseDocument.Data.SingleValue.Should().NotBeNull();
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("number").WhoseValue.Should().Be(newBuilding.Number);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("windowCount").WhoseValue.Should().Be(0);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("primaryDoorColor").WhoseValue.Should().Be("(unspecified)");
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("secondaryDoorColor").WhoseValue.Should().BeNull();
- int newBuildingId = int.Parse(responseDocument.Data.SingleValue.Id.ShouldNotBeNull());
+ int newBuildingId = int.Parse(responseDocument.Data.SingleValue.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
@@ -256,9 +256,9 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// @formatter:wrap_after_property_in_chained_method_calls restore
// @formatter:wrap_chained_method_calls restore
- buildingInDatabase.ShouldNotBeNull();
+ buildingInDatabase.Should().NotBeNull();
buildingInDatabase.Number.Should().Be(newBuilding.Number);
- buildingInDatabase.PrimaryDoor.ShouldNotBeNull();
+ buildingInDatabase.PrimaryDoor.Should().NotBeNull();
buildingInDatabase.PrimaryDoor.Color.Should().Be("(unspecified)");
buildingInDatabase.SecondaryDoor.Should().BeNull();
buildingInDatabase.Windows.Should().BeEmpty();
@@ -321,12 +321,12 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// @formatter:wrap_after_property_in_chained_method_calls restore
// @formatter:wrap_chained_method_calls restore
- buildingInDatabase.ShouldNotBeNull();
+ buildingInDatabase.Should().NotBeNull();
buildingInDatabase.Number.Should().Be(newBuildingNumber);
- buildingInDatabase.PrimaryDoor.ShouldNotBeNull();
+ buildingInDatabase.PrimaryDoor.Should().NotBeNull();
buildingInDatabase.PrimaryDoor.Color.Should().Be(newPrimaryDoorColor);
- buildingInDatabase.SecondaryDoor.ShouldNotBeNull();
- buildingInDatabase.Windows.ShouldHaveCount(2);
+ buildingInDatabase.SecondaryDoor.Should().NotBeNull();
+ buildingInDatabase.Windows.Should().HaveCount(2);
});
}
@@ -364,13 +364,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Input validation failed.");
error.Detail.Should().Be("The PrimaryDoorColor field is required.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/data/attributes/primaryDoorColor");
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/ExceptionHandling/ExceptionHandlerTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/ExceptionHandling/ExceptionHandlerTests.cs
index 66096c667e..8a635c734f 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/ExceptionHandling/ExceptionHandlerTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/ExceptionHandling/ExceptionHandlerTests.cs
@@ -64,14 +64,14 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Gone);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.Gone);
error.Title.Should().Be("The requested article is no longer available.");
error.Detail.Should().Be("Article with code 'X123' is no longer available.");
- error.Meta.ShouldContainKey("support").With(value =>
+ error.Meta.Should().ContainKey("support").WhoseValue.With(value =>
{
JsonElement element = value.Should().BeOfType().Subject;
element.GetString().Should().Be("Please contact us for info about similar articles at company@email.com.");
@@ -80,7 +80,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Meta.Should().BeNull();
IReadOnlyList logMessages = loggerProvider.GetMessages();
- logMessages.ShouldHaveCount(1);
+ logMessages.Should().HaveCount(1);
logMessages[0].LogLevel.Should().Be(LogLevel.Warning);
logMessages[0].Text.Should().Contain("Article with code 'X123' is no longer available.");
@@ -103,25 +103,25 @@ public async Task Logs_and_produces_error_response_on_deserialization_failure()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body: Unknown resource type found.");
error.Detail.Should().Be("Resource type '' does not exist.");
- error.Meta.ShouldContainKey("requestBody").With(value =>
+ error.Meta.Should().ContainKey("requestBody").WhoseValue.With(value =>
{
JsonElement element = value.Should().BeOfType().Subject;
element.GetString().Should().Be(requestBody);
});
- error.Meta.ShouldContainKey("stackTrace").With(value =>
+ error.Meta.Should().ContainKey("stackTrace").WhoseValue.With(value =>
{
JsonElement element = value.Should().BeOfType().Subject;
IEnumerable stackTraceLines = element.EnumerateArray().Select(token => token.GetString());
- stackTraceLines.ShouldNotBeEmpty();
+ stackTraceLines.Should().NotBeEmpty();
});
IReadOnlyList logMessages = loggerProvider.GetMessages();
@@ -151,14 +151,14 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.InternalServerError);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.InternalServerError);
error.Title.Should().Be("An unhandled error occurred while processing this request.");
error.Detail.Should().Be("Exception has been thrown by the target of an invocation.");
- error.Meta.ShouldContainKey("stackTrace").With(value =>
+ error.Meta.Should().ContainKey("stackTrace").WhoseValue.With(value =>
{
JsonElement element = value.Should().BeOfType().Subject;
IEnumerable stackTraceLines = element.EnumerateArray().Select(token => token.GetString());
@@ -169,7 +169,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Meta.Should().BeNull();
IReadOnlyList logMessages = loggerProvider.GetMessages();
- logMessages.ShouldHaveCount(1);
+ logMessages.Should().HaveCount(1);
logMessages[0].LogLevel.Should().Be(LogLevel.Error);
logMessages[0].Text.Should().Contain("Exception has been thrown by the target of an invocation.");
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/HostingInIIS/HostingTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/HostingInIIS/HostingTests.cs
index 397da59595..d3ab6edd78 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/HostingInIIS/HostingTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/HostingInIIS/HostingTests.cs
@@ -43,7 +43,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.Related.Should().BeNull();
responseDocument.Links.First.Should().Be(responseDocument.Links.Self);
@@ -51,19 +51,19 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Links.Prev.Should().BeNull();
responseDocument.Links.Next.Should().BeNull();
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].With(resource =>
{
string galleryLink = $"{HostPrefix}/iis-application-virtual-directory/public-api/artGalleries/{gallery.StringId}";
- resource.Links.ShouldNotBeNull();
+ resource.Links.Should().NotBeNull();
resource.Links.Self.Should().Be(galleryLink);
- resource.Relationships.ShouldContainKey("paintings").With(value =>
+ resource.Relationships.Should().ContainKey("paintings").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{galleryLink}/relationships/paintings");
value.Links.Related.Should().Be($"{galleryLink}/paintings");
});
@@ -71,17 +71,17 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
string paintingLink = $"{HostPrefix}/iis-application-virtual-directory/custom/path/to/paintings-of-the-world/{gallery.Paintings.ElementAt(0).StringId}";
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].With(resource =>
{
- resource.Links.ShouldNotBeNull();
+ resource.Links.Should().NotBeNull();
resource.Links.Self.Should().Be(paintingLink);
- resource.Relationships.ShouldContainKey("exposedAt").With(value =>
+ resource.Relationships.Should().ContainKey("exposedAt").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{paintingLink}/relationships/exposedAt");
value.Links.Related.Should().Be($"{paintingLink}/exposedAt");
});
@@ -110,7 +110,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.Related.Should().BeNull();
responseDocument.Links.First.Should().Be(responseDocument.Links.Self);
@@ -118,37 +118,37 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Links.Prev.Should().BeNull();
responseDocument.Links.Next.Should().BeNull();
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].With(resource =>
{
string paintingLink = $"{HostPrefix}/iis-application-virtual-directory/custom/path/to/paintings-of-the-world/{painting.StringId}";
- resource.Links.ShouldNotBeNull();
+ resource.Links.Should().NotBeNull();
resource.Links.Self.Should().Be(paintingLink);
- resource.Relationships.ShouldContainKey("exposedAt").With(value =>
+ resource.Relationships.Should().ContainKey("exposedAt").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{paintingLink}/relationships/exposedAt");
value.Links.Related.Should().Be($"{paintingLink}/exposedAt");
});
});
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].With(resource =>
{
string galleryLink = $"{HostPrefix}/iis-application-virtual-directory/public-api/artGalleries/{painting.ExposedAt.StringId}";
- resource.Links.ShouldNotBeNull();
+ resource.Links.Should().NotBeNull();
resource.Links.Self.Should().Be(galleryLink);
- resource.Relationships.ShouldContainKey("paintings").With(value =>
+ resource.Relationships.Should().ContainKey("paintings").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{galleryLink}/relationships/paintings");
value.Links.Related.Should().Be($"{galleryLink}/paintings");
});
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/IdObfuscation/IdObfuscationTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/IdObfuscation/IdObfuscationTests.cs
index 02b0001268..e5383f3f7d 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/IdObfuscation/IdObfuscationTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/IdObfuscation/IdObfuscationTests.cs
@@ -41,7 +41,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(accounts[1].StringId);
}
@@ -58,13 +58,13 @@ public async Task Cannot_filter_equality_for_invalid_ID()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified filter is invalid.");
error.Detail.Should().Be($"The value 'not-a-hex-value' is not a valid hexadecimal value. {parameterValue}");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("filter");
}
@@ -90,7 +90,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(accounts[1].StringId);
}
@@ -106,7 +106,7 @@ public async Task Cannot_get_primary_resource_for_invalid_ID()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
@@ -135,7 +135,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Id.Should().Be(card.StringId);
}
@@ -160,7 +160,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(2);
+ responseDocument.Data.ManyValue.Should().HaveCount(2);
responseDocument.Data.ManyValue[0].Id.Should().Be(account.Cards[0].StringId);
responseDocument.Data.ManyValue[1].Id.Should().Be(account.Cards[1].StringId);
}
@@ -186,12 +186,12 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Id.Should().Be(account.StringId);
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].Id.Should().Be(account.Cards[0].StringId);
- responseDocument.Included[0].Attributes.ShouldHaveCount(1);
+ responseDocument.Included[0].Attributes.Should().HaveCount(1);
responseDocument.Included[0].Relationships.Should().BeNull();
}
@@ -216,7 +216,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(account.Cards[0].StringId);
}
@@ -265,9 +265,9 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Created);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("ownerName").With(value => value.Should().Be(newCard.OwnerName));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("pinCode").With(value => value.Should().Be(newCard.PinCode));
+ responseDocument.Data.SingleValue.Should().NotBeNull();
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("ownerName").WhoseValue.Should().Be(newCard.OwnerName);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("pinCode").WhoseValue.Should().Be(newCard.PinCode);
var codec = new HexadecimalCodec();
int newCardId = codec.Decode(responseDocument.Data.SingleValue.Id);
@@ -279,7 +279,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
cardInDatabase.OwnerName.Should().Be(newCard.OwnerName);
cardInDatabase.PinCode.Should().Be(newCard.PinCode);
- cardInDatabase.Account.ShouldNotBeNull();
+ cardInDatabase.Account.Should().NotBeNull();
cardInDatabase.Account.Id.Should().Be(existingAccount.Id);
cardInDatabase.Account.StringId.Should().Be(existingAccount.StringId);
});
@@ -346,7 +346,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
accountInDatabase.Iban.Should().Be(newIban);
- accountInDatabase.Cards.ShouldHaveCount(1);
+ accountInDatabase.Cards.Should().HaveCount(1);
accountInDatabase.Cards[0].Id.Should().Be(existingCard.Id);
accountInDatabase.Cards[0].StringId.Should().Be(existingCard.StringId);
});
@@ -394,7 +394,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
BankAccount accountInDatabase = await dbContext.BankAccounts.Include(account => account.Cards).FirstWithIdAsync(existingAccount.Id);
- accountInDatabase.Cards.ShouldHaveCount(2);
+ accountInDatabase.Cards.Should().HaveCount(2);
});
}
@@ -437,7 +437,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
{
BankAccount accountInDatabase = await dbContext.BankAccounts.Include(account => account.Cards).FirstWithIdAsync(existingAccount.Id);
- accountInDatabase.Cards.ShouldHaveCount(1);
+ accountInDatabase.Cards.Should().HaveCount(1);
});
}
@@ -487,7 +487,7 @@ public async Task Cannot_delete_unknown_resource()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/InputValidation/ModelState/ModelStateValidationTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/InputValidation/ModelState/ModelStateValidationTests.cs
index 68e7207e4a..7cedc98f5e 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/InputValidation/ModelState/ModelStateValidationTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/InputValidation/ModelState/ModelStateValidationTests.cs
@@ -43,13 +43,13 @@ public async Task Cannot_create_resource_with_omitted_required_attribute()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Input validation failed.");
error.Detail.Should().Be("The Name field is required.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/data/attributes/directoryName");
}
@@ -78,13 +78,13 @@ public async Task Cannot_create_resource_with_null_for_required_attribute_value(
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Input validation failed.");
error.Detail.Should().Be("The Name field is required.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/data/attributes/directoryName");
}
@@ -113,13 +113,13 @@ public async Task Cannot_create_resource_with_invalid_attribute_value()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Input validation failed.");
error.Detail.Should().Be(@"The field Name must match the regular expression '^[\w\s]+$'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/data/attributes/directoryName");
}
@@ -153,20 +153,20 @@ public async Task Cannot_create_resource_with_invalid_DateOnly_TimeOnly_attribut
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(2);
+ responseDocument.Errors.Should().HaveCount(2);
ErrorObject error1 = responseDocument.Errors[0];
error1.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error1.Title.Should().Be("Input validation failed.");
error1.Detail.Should().StartWith("The field CreatedAt must be between ");
- error1.Source.ShouldNotBeNull();
+ error1.Source.Should().NotBeNull();
error1.Source.Pointer.Should().Be("/data/attributes/createdAt");
ErrorObject error2 = responseDocument.Errors[1];
error2.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error2.Title.Should().Be("Input validation failed.");
error2.Detail.Should().StartWith("The field CreatedOn must be between ");
- error2.Source.ShouldNotBeNull();
+ error2.Source.Should().NotBeNull();
error2.Source.Pointer.Should().Be("/data/attributes/createdOn");
}
@@ -197,9 +197,9 @@ public async Task Can_create_resource_with_valid_attribute_value()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Created);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("directoryName").With(value => value.Should().Be(newDirectory.Name));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("isCaseSensitive").With(value => value.Should().Be(newDirectory.IsCaseSensitive));
+ responseDocument.Data.SingleValue.Should().NotBeNull();
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("directoryName").WhoseValue.Should().Be(newDirectory.Name);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("isCaseSensitive").WhoseValue.Should().Be(newDirectory.IsCaseSensitive);
}
[Fact]
@@ -225,20 +225,20 @@ public async Task Cannot_create_resource_with_multiple_violations()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(2);
+ responseDocument.Errors.Should().HaveCount(2);
ErrorObject error1 = responseDocument.Errors[0];
error1.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error1.Title.Should().Be("Input validation failed.");
error1.Detail.Should().Be("The Name field is required.");
- error1.Source.ShouldNotBeNull();
+ error1.Source.Should().NotBeNull();
error1.Source.Pointer.Should().Be("/data/attributes/directoryName");
ErrorObject error2 = responseDocument.Errors[1];
error2.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error2.Title.Should().Be("Input validation failed.");
error2.Detail.Should().Be("The IsCaseSensitive field is required.");
- error2.Source.ShouldNotBeNull();
+ error2.Source.Should().NotBeNull();
error2.Source.Pointer.Should().Be("/data/attributes/isCaseSensitive");
}
@@ -265,7 +265,7 @@ public async Task Does_not_exceed_MaxModelValidationErrors()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(3);
+ responseDocument.Errors.Should().HaveCount(3);
ErrorObject error1 = responseDocument.Errors[0];
error1.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
@@ -277,14 +277,14 @@ public async Task Does_not_exceed_MaxModelValidationErrors()
error2.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error2.Title.Should().Be("Input validation failed.");
error2.Detail.Should().Be("The FileName field is required.");
- error2.Source.ShouldNotBeNull();
+ error2.Source.Should().NotBeNull();
error2.Source.Pointer.Should().Be("/data/attributes/fileName");
ErrorObject error3 = responseDocument.Errors[2];
error3.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error3.Title.Should().Be("Input validation failed.");
error3.Detail.Should().Be("The Attributes field is required.");
- error3.Source.ShouldNotBeNull();
+ error3.Source.Should().NotBeNull();
error3.Source.Pointer.Should().Be("/data/attributes/attributes");
}
@@ -359,9 +359,9 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Created);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("directoryName").With(value => value.Should().Be(newDirectory.Name));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("isCaseSensitive").With(value => value.Should().Be(newDirectory.IsCaseSensitive));
+ responseDocument.Data.SingleValue.Should().NotBeNull();
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("directoryName").WhoseValue.Should().Be(newDirectory.Name);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("isCaseSensitive").WhoseValue.Should().Be(newDirectory.IsCaseSensitive);
}
[Fact]
@@ -472,20 +472,20 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(2);
+ responseDocument.Errors.Should().HaveCount(2);
ErrorObject error1 = responseDocument.Errors[0];
error1.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error1.Title.Should().Be("Input validation failed.");
error1.Detail.Should().Be("The Name field is required.");
- error1.Source.ShouldNotBeNull();
+ error1.Source.Should().NotBeNull();
error1.Source.Pointer.Should().Be("/data/attributes/directoryName");
ErrorObject error2 = responseDocument.Errors[1];
error2.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error2.Title.Should().Be("Input validation failed.");
error2.Detail.Should().Be("The IsCaseSensitive field is required.");
- error2.Source.ShouldNotBeNull();
+ error2.Source.Should().NotBeNull();
error2.Source.Pointer.Should().Be("/data/attributes/isCaseSensitive");
}
@@ -522,13 +522,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Input validation failed.");
error.Detail.Should().Be(@"The field Name must match the regular expression '^[\w\s]+$'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/data/attributes/directoryName");
}
@@ -567,20 +567,20 @@ public async Task Cannot_update_resource_with_invalid_ID()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(2);
+ responseDocument.Errors.Should().HaveCount(2);
ErrorObject error1 = responseDocument.Errors[0];
error1.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error1.Title.Should().Be("Input validation failed.");
error1.Detail.Should().Be("The field Id must match the regular expression '^[0-9]+$'.");
- error1.Source.ShouldNotBeNull();
+ error1.Source.Should().NotBeNull();
error1.Source.Pointer.Should().Be("/data/id");
ErrorObject error2 = responseDocument.Errors[1];
error2.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error2.Title.Should().Be("Input validation failed.");
error2.Detail.Should().Be("The field Id must match the regular expression '^[0-9]+$'.");
- error2.Source.ShouldNotBeNull();
+ error2.Source.Should().NotBeNull();
error2.Source.Pointer.Should().Be("/data/relationships/subdirectories/data[0]/id");
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/InputValidation/ModelState/NoModelStateValidationTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/InputValidation/ModelState/NoModelStateValidationTests.cs
index 41133fd27f..4245ff2fc1 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/InputValidation/ModelState/NoModelStateValidationTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/InputValidation/ModelState/NoModelStateValidationTests.cs
@@ -46,8 +46,8 @@ public async Task Can_create_resource_with_invalid_attribute_value()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Created);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("directoryName").With(value => value.Should().Be("!@#$%^&*().-"));
+ responseDocument.Data.SingleValue.Should().NotBeNull();
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("directoryName").WhoseValue.Should().Be("!@#$%^&*().-");
}
[Fact]
@@ -123,7 +123,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/InputValidation/RequestBody/WorkflowTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/InputValidation/RequestBody/WorkflowTests.cs
index 290a168fb1..9b8fd9cbc9 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/InputValidation/RequestBody/WorkflowTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/InputValidation/RequestBody/WorkflowTests.cs
@@ -44,7 +44,7 @@ public async Task Can_create_in_valid_stage()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Created);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
}
[Fact]
@@ -71,13 +71,13 @@ public async Task Cannot_create_in_invalid_stage()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Invalid workflow stage.");
error.Detail.Should().Be("Initial stage of workflow must be 'Created'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/data/attributes/stage");
}
@@ -117,13 +117,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Invalid workflow stage.");
error.Detail.Should().Be("Cannot transition from 'OnHold' to 'Succeeded'.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/data/attributes/stage");
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/Links/AbsoluteLinksWithNamespaceTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/Links/AbsoluteLinksWithNamespaceTests.cs
index a58f68219f..688ef470b8 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/Links/AbsoluteLinksWithNamespaceTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/Links/AbsoluteLinksWithNamespaceTests.cs
@@ -51,7 +51,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.Related.Should().BeNull();
responseDocument.Links.First.Should().BeNull();
@@ -60,14 +60,14 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Links.Next.Should().BeNull();
responseDocument.Links.DescribedBy.Should().BeNull();
- responseDocument.Data.SingleValue.ShouldNotBeNull();
- responseDocument.Data.SingleValue.Links.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
+ responseDocument.Data.SingleValue.Links.Should().NotBeNull();
responseDocument.Data.SingleValue.Links.Self.Should().Be($"{HostPrefix}{route}");
- responseDocument.Data.SingleValue.Relationships.ShouldContainKey("photos").With(value =>
+ responseDocument.Data.SingleValue.Relationships.Should().ContainKey("photos").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{HostPrefix}{route}/relationships/photos");
value.Links.Related.Should().Be($"{HostPrefix}{route}/photos");
});
@@ -95,7 +95,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.Related.Should().BeNull();
responseDocument.Links.First.Should().Be(responseDocument.Links.Self);
@@ -104,37 +104,37 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Links.Next.Should().BeNull();
responseDocument.Links.DescribedBy.Should().BeNull();
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].With(resource =>
{
string albumLink = $"{HostPrefix}{PathPrefix}/photoAlbums/{album.StringId}";
- resource.Links.ShouldNotBeNull();
+ resource.Links.Should().NotBeNull();
resource.Links.Self.Should().Be(albumLink);
- resource.Relationships.ShouldContainKey("photos").With(value =>
+ resource.Relationships.Should().ContainKey("photos").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{albumLink}/relationships/photos");
value.Links.Related.Should().Be($"{albumLink}/photos");
});
});
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].With(resource =>
{
string photoLink = $"{HostPrefix}{PathPrefix}/photos/{album.Photos.ElementAt(0).StringId}";
- resource.Links.ShouldNotBeNull();
+ resource.Links.Should().NotBeNull();
resource.Links.Self.Should().Be(photoLink);
- resource.Relationships.ShouldContainKey("album").With(value =>
+ resource.Relationships.Should().ContainKey("album").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{photoLink}/relationships/album");
value.Links.Related.Should().Be($"{photoLink}/album");
});
@@ -162,7 +162,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.Related.Should().BeNull();
responseDocument.Links.First.Should().BeNull();
@@ -173,14 +173,14 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
string albumLink = $"{HostPrefix}{PathPrefix}/photoAlbums/{photo.Album.StringId}";
- responseDocument.Data.SingleValue.ShouldNotBeNull();
- responseDocument.Data.SingleValue.Links.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
+ responseDocument.Data.SingleValue.Links.Should().NotBeNull();
responseDocument.Data.SingleValue.Links.Self.Should().Be(albumLink);
- responseDocument.Data.SingleValue.Relationships.ShouldContainKey("photos").With(value =>
+ responseDocument.Data.SingleValue.Relationships.Should().ContainKey("photos").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{albumLink}/relationships/photos");
value.Links.Related.Should().Be($"{albumLink}/photos");
});
@@ -207,7 +207,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.Related.Should().BeNull();
responseDocument.Links.First.Should().Be(responseDocument.Links.Self);
@@ -216,19 +216,19 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Links.Next.Should().BeNull();
responseDocument.Links.DescribedBy.Should().BeNull();
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].With(resource =>
{
string photoLink = $"{HostPrefix}{PathPrefix}/photos/{album.Photos.ElementAt(0).StringId}";
- resource.Links.ShouldNotBeNull();
+ resource.Links.Should().NotBeNull();
resource.Links.Self.Should().Be(photoLink);
- resource.Relationships.ShouldContainKey("album").With(value =>
+ resource.Relationships.Should().ContainKey("album").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{photoLink}/relationships/album");
value.Links.Related.Should().Be($"{photoLink}/album");
});
@@ -256,7 +256,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.Related.Should().Be($"{HostPrefix}{PathPrefix}/photos/{photo.StringId}/album");
responseDocument.Links.First.Should().BeNull();
@@ -265,7 +265,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Links.Next.Should().BeNull();
responseDocument.Links.DescribedBy.Should().BeNull();
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Links.Should().BeNull();
responseDocument.Data.SingleValue.Relationships.Should().BeNull();
}
@@ -291,7 +291,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.Related.Should().Be($"{HostPrefix}{PathPrefix}/photoAlbums/{album.StringId}/photos");
responseDocument.Links.First.Should().Be(responseDocument.Links.Self);
@@ -300,7 +300,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Links.Next.Should().BeNull();
responseDocument.Links.DescribedBy.Should().BeNull();
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Links.Should().BeNull();
responseDocument.Data.ManyValue[0].Relationships.Should().BeNull();
}
@@ -353,7 +353,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Created);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.Related.Should().BeNull();
responseDocument.Links.First.Should().BeNull();
@@ -362,34 +362,34 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Links.Next.Should().BeNull();
responseDocument.Links.DescribedBy.Should().BeNull();
- responseDocument.Data.SingleValue.ShouldNotBeNull();
- responseDocument.Data.SingleValue.Links.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
+ responseDocument.Data.SingleValue.Links.Should().NotBeNull();
string albumLink = $"{HostPrefix}{PathPrefix}/photoAlbums/{responseDocument.Data.SingleValue.Id}";
responseDocument.Data.SingleValue.Links.Self.Should().Be(albumLink);
- responseDocument.Data.SingleValue.Relationships.ShouldContainKey("photos").With(value =>
+ responseDocument.Data.SingleValue.Relationships.Should().ContainKey("photos").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{albumLink}/relationships/photos");
value.Links.Related.Should().Be($"{albumLink}/photos");
});
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].With(resource =>
{
string photoLink = $"{HostPrefix}{PathPrefix}/photos/{existingPhoto.StringId}";
- resource.Links.ShouldNotBeNull();
+ resource.Links.Should().NotBeNull();
resource.Links.Self.Should().Be(photoLink);
- resource.Relationships.ShouldContainKey("album").With(value =>
+ resource.Relationships.Should().ContainKey("album").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{photoLink}/relationships/album");
value.Links.Related.Should().Be($"{photoLink}/album");
});
@@ -439,7 +439,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.Related.Should().BeNull();
responseDocument.Links.First.Should().BeNull();
@@ -450,31 +450,31 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
string photoLink = $"{HostPrefix}{PathPrefix}/photos/{existingPhoto.StringId}";
- responseDocument.Data.SingleValue.ShouldNotBeNull();
- responseDocument.Data.SingleValue.Links.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
+ responseDocument.Data.SingleValue.Links.Should().NotBeNull();
responseDocument.Data.SingleValue.Links.Self.Should().Be(photoLink);
- responseDocument.Data.SingleValue.Relationships.ShouldContainKey("album").With(value =>
+ responseDocument.Data.SingleValue.Relationships.Should().ContainKey("album").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{photoLink}/relationships/album");
value.Links.Related.Should().Be($"{photoLink}/album");
});
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].With(resource =>
{
string albumLink = $"{HostPrefix}{PathPrefix}/photoAlbums/{existingAlbum.StringId}";
- resource.Links.ShouldNotBeNull();
+ resource.Links.Should().NotBeNull();
resource.Links.Self.Should().Be(albumLink);
- resource.Relationships.ShouldContainKey("photos").With(value =>
+ resource.Relationships.Should().ContainKey("photos").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{albumLink}/relationships/photos");
value.Links.Related.Should().Be($"{albumLink}/photos");
});
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/Links/AbsoluteLinksWithoutNamespaceTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/Links/AbsoluteLinksWithoutNamespaceTests.cs
index aaa62c1338..5098e9d34f 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/Links/AbsoluteLinksWithoutNamespaceTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/Links/AbsoluteLinksWithoutNamespaceTests.cs
@@ -51,7 +51,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.Related.Should().BeNull();
responseDocument.Links.First.Should().BeNull();
@@ -60,14 +60,14 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Links.Next.Should().BeNull();
responseDocument.Links.DescribedBy.Should().BeNull();
- responseDocument.Data.SingleValue.ShouldNotBeNull();
- responseDocument.Data.SingleValue.Links.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
+ responseDocument.Data.SingleValue.Links.Should().NotBeNull();
responseDocument.Data.SingleValue.Links.Self.Should().Be($"{HostPrefix}{route}");
- responseDocument.Data.SingleValue.Relationships.ShouldContainKey("photos").With(value =>
+ responseDocument.Data.SingleValue.Relationships.Should().ContainKey("photos").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{HostPrefix}{route}/relationships/photos");
value.Links.Related.Should().Be($"{HostPrefix}{route}/photos");
});
@@ -95,7 +95,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.Related.Should().BeNull();
responseDocument.Links.First.Should().Be(responseDocument.Links.Self);
@@ -104,37 +104,37 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Links.Next.Should().BeNull();
responseDocument.Links.DescribedBy.Should().BeNull();
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].With(resource =>
{
string albumLink = $"{HostPrefix}{PathPrefix}/photoAlbums/{album.StringId}";
- resource.Links.ShouldNotBeNull();
+ resource.Links.Should().NotBeNull();
resource.Links.Self.Should().Be(albumLink);
- resource.Relationships.ShouldContainKey("photos").With(value =>
+ resource.Relationships.Should().ContainKey("photos").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{albumLink}/relationships/photos");
value.Links.Related.Should().Be($"{albumLink}/photos");
});
});
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].With(resource =>
{
string photoLink = $"{HostPrefix}{PathPrefix}/photos/{album.Photos.ElementAt(0).StringId}";
- resource.Links.ShouldNotBeNull();
+ resource.Links.Should().NotBeNull();
resource.Links.Self.Should().Be(photoLink);
- resource.Relationships.ShouldContainKey("album").With(value =>
+ resource.Relationships.Should().ContainKey("album").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{photoLink}/relationships/album");
value.Links.Related.Should().Be($"{photoLink}/album");
});
@@ -162,7 +162,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.Related.Should().BeNull();
responseDocument.Links.First.Should().BeNull();
@@ -173,14 +173,14 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
string albumLink = $"{HostPrefix}{PathPrefix}/photoAlbums/{photo.Album.StringId}";
- responseDocument.Data.SingleValue.ShouldNotBeNull();
- responseDocument.Data.SingleValue.Links.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
+ responseDocument.Data.SingleValue.Links.Should().NotBeNull();
responseDocument.Data.SingleValue.Links.Self.Should().Be(albumLink);
- responseDocument.Data.SingleValue.Relationships.ShouldContainKey("photos").With(value =>
+ responseDocument.Data.SingleValue.Relationships.Should().ContainKey("photos").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{albumLink}/relationships/photos");
value.Links.Related.Should().Be($"{albumLink}/photos");
});
@@ -207,7 +207,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.Related.Should().BeNull();
responseDocument.Links.First.Should().Be(responseDocument.Links.Self);
@@ -216,19 +216,19 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Links.Next.Should().BeNull();
responseDocument.Links.DescribedBy.Should().BeNull();
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].With(resource =>
{
string photoLink = $"{HostPrefix}{PathPrefix}/photos/{album.Photos.ElementAt(0).StringId}";
- resource.Links.ShouldNotBeNull();
+ resource.Links.Should().NotBeNull();
resource.Links.Self.Should().Be(photoLink);
- resource.Relationships.ShouldContainKey("album").With(value =>
+ resource.Relationships.Should().ContainKey("album").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{photoLink}/relationships/album");
value.Links.Related.Should().Be($"{photoLink}/album");
});
@@ -256,7 +256,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.Related.Should().Be($"{HostPrefix}{PathPrefix}/photos/{photo.StringId}/album");
responseDocument.Links.First.Should().BeNull();
@@ -265,7 +265,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Links.Next.Should().BeNull();
responseDocument.Links.DescribedBy.Should().BeNull();
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Links.Should().BeNull();
responseDocument.Data.SingleValue.Relationships.Should().BeNull();
}
@@ -291,7 +291,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.Related.Should().Be($"{HostPrefix}{PathPrefix}/photoAlbums/{album.StringId}/photos");
responseDocument.Links.First.Should().Be(responseDocument.Links.Self);
@@ -300,7 +300,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Links.Next.Should().BeNull();
responseDocument.Links.DescribedBy.Should().BeNull();
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Links.Should().BeNull();
responseDocument.Data.ManyValue[0].Relationships.Should().BeNull();
}
@@ -353,7 +353,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Created);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.Related.Should().BeNull();
responseDocument.Links.First.Should().BeNull();
@@ -362,34 +362,34 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Links.Next.Should().BeNull();
responseDocument.Links.DescribedBy.Should().BeNull();
- responseDocument.Data.SingleValue.ShouldNotBeNull();
- responseDocument.Data.SingleValue.Links.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
+ responseDocument.Data.SingleValue.Links.Should().NotBeNull();
string albumLink = $"{HostPrefix}{PathPrefix}/photoAlbums/{responseDocument.Data.SingleValue.Id}";
responseDocument.Data.SingleValue.Links.Self.Should().Be(albumLink);
- responseDocument.Data.SingleValue.Relationships.ShouldContainKey("photos").With(value =>
+ responseDocument.Data.SingleValue.Relationships.Should().ContainKey("photos").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{albumLink}/relationships/photos");
value.Links.Related.Should().Be($"{albumLink}/photos");
});
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].With(resource =>
{
string photoLink = $"{HostPrefix}{PathPrefix}/photos/{existingPhoto.StringId}";
- resource.Links.ShouldNotBeNull();
+ resource.Links.Should().NotBeNull();
resource.Links.Self.Should().Be(photoLink);
- resource.Relationships.ShouldContainKey("album").With(value =>
+ resource.Relationships.Should().ContainKey("album").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{photoLink}/relationships/album");
value.Links.Related.Should().Be($"{photoLink}/album");
});
@@ -439,7 +439,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.Related.Should().BeNull();
responseDocument.Links.First.Should().BeNull();
@@ -450,31 +450,31 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
string photoLink = $"{HostPrefix}{PathPrefix}/photos/{existingPhoto.StringId}";
- responseDocument.Data.SingleValue.ShouldNotBeNull();
- responseDocument.Data.SingleValue.Links.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
+ responseDocument.Data.SingleValue.Links.Should().NotBeNull();
responseDocument.Data.SingleValue.Links.Self.Should().Be(photoLink);
- responseDocument.Data.SingleValue.Relationships.ShouldContainKey("album").With(value =>
+ responseDocument.Data.SingleValue.Relationships.Should().ContainKey("album").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{photoLink}/relationships/album");
value.Links.Related.Should().Be($"{photoLink}/album");
});
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].With(resource =>
{
string albumLink = $"{HostPrefix}{PathPrefix}/photoAlbums/{existingAlbum.StringId}";
- resource.Links.ShouldNotBeNull();
+ resource.Links.Should().NotBeNull();
resource.Links.Self.Should().Be(albumLink);
- resource.Relationships.ShouldContainKey("photos").With(value =>
+ resource.Relationships.Should().ContainKey("photos").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{albumLink}/relationships/photos");
value.Links.Related.Should().Be($"{albumLink}/photos");
});
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/Links/DocumentDescriptionLinkTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/Links/DocumentDescriptionLinkTests.cs
index a2183247e5..99da94cb2c 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/Links/DocumentDescriptionLinkTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/Links/DocumentDescriptionLinkTests.cs
@@ -40,7 +40,7 @@ public async Task Get_primary_resource_by_ID_converts_relative_documentation_lin
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.DescribedBy.Should().Be("http://localhost/description/json-schema?version=v1.0");
}
@@ -62,7 +62,7 @@ public async Task Get_primary_resource_by_ID_converts_absolute_documentation_lin
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.DescribedBy.Should().Be("description/json-schema?version=v1.0");
}
@@ -84,7 +84,7 @@ public async Task Get_primary_resource_by_ID_cannot_convert_absolute_documentati
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.DescribedBy.Should().Be("https://docs.api.com/description/json-schema?version=v1.0");
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/Links/LinkInclusionIncludeTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/Links/LinkInclusionIncludeTests.cs
index a7a033d17d..bfaac74209 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/Links/LinkInclusionIncludeTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/Links/LinkInclusionIncludeTests.cs
@@ -40,15 +40,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
- responseDocument.Data.SingleValue.Relationships.ShouldContainKey("photo").With(value =>
+ responseDocument.Data.SingleValue.Relationships.Should().ContainKey("photo").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
});
- responseDocument.Included.ShouldHaveCount(2);
+ responseDocument.Included.Should().HaveCount(2);
responseDocument.Included.Should().ContainSingle(resource => resource.Type == "photos").Subject.With(resource =>
{
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/Links/LinkInclusionTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/Links/LinkInclusionTests.cs
index 50920697f0..32fecc526c 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/Links/LinkInclusionTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/Links/LinkInclusionTests.cs
@@ -44,50 +44,50 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Links.Should().BeNull();
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Links.Should().BeNull();
- responseDocument.Data.SingleValue.Relationships.ShouldContainKey("photo").With(value =>
+ responseDocument.Data.SingleValue.Relationships.Should().ContainKey("photo").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().BeNull();
- value.Links.Related.ShouldNotBeNull();
+ value.Links.Related.Should().NotBeNull();
});
- responseDocument.Data.SingleValue.Relationships.ShouldContainKey("album").With(value =>
+ responseDocument.Data.SingleValue.Relationships.Should().ContainKey("album").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
+ value.Should().NotBeNull();
value.Links.Should().BeNull();
});
- responseDocument.Included.ShouldHaveCount(2);
+ responseDocument.Included.Should().HaveCount(2);
responseDocument.Included[0].With(resource =>
{
- resource.Links.ShouldNotBeNull();
- resource.Links.Self.ShouldNotBeNull();
+ resource.Links.Should().NotBeNull();
+ resource.Links.Self.Should().NotBeNull();
- resource.Relationships.ShouldContainKey("location").With(value =>
+ resource.Relationships.Should().ContainKey("location").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
- value.Links.Self.ShouldNotBeNull();
- value.Links.Related.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
+ value.Links.Self.Should().NotBeNull();
+ value.Links.Related.Should().NotBeNull();
});
});
responseDocument.Included[1].With(resource =>
{
- resource.Links.ShouldNotBeNull();
- resource.Links.Self.ShouldNotBeNull();
+ resource.Links.Should().NotBeNull();
+ resource.Links.Self.Should().NotBeNull();
- resource.Relationships.ShouldContainKey("photos").With(value =>
+ resource.Relationships.Should().ContainKey("photos").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
- value.Links.Self.ShouldNotBeNull();
- value.Links.Related.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
+ value.Links.Self.Should().NotBeNull();
+ value.Links.Related.Should().NotBeNull();
});
});
}
@@ -115,15 +115,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Links.Should().BeNull();
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Links.Should().BeNull();
- responseDocument.Data.SingleValue.Relationships.ShouldContainKey("photo").With(value =>
+ responseDocument.Data.SingleValue.Relationships.Should().ContainKey("photo").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().BeNull();
- value.Links.Related.ShouldNotBeNull();
+ value.Links.Related.Should().NotBeNull();
});
responseDocument.Data.SingleValue.Relationships.Should().NotContainKey("album");
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/Links/RelativeLinksWithNamespaceTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/Links/RelativeLinksWithNamespaceTests.cs
index 27a432f261..60471032e6 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/Links/RelativeLinksWithNamespaceTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/Links/RelativeLinksWithNamespaceTests.cs
@@ -51,7 +51,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.Related.Should().BeNull();
responseDocument.Links.First.Should().BeNull();
@@ -60,14 +60,14 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Links.Next.Should().BeNull();
responseDocument.Links.DescribedBy.Should().BeNull();
- responseDocument.Data.SingleValue.ShouldNotBeNull();
- responseDocument.Data.SingleValue.Links.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
+ responseDocument.Data.SingleValue.Links.Should().NotBeNull();
responseDocument.Data.SingleValue.Links.Self.Should().Be($"{HostPrefix}{route}");
- responseDocument.Data.SingleValue.Relationships.ShouldContainKey("photos").With(value =>
+ responseDocument.Data.SingleValue.Relationships.Should().ContainKey("photos").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{HostPrefix}{route}/relationships/photos");
value.Links.Related.Should().Be($"{HostPrefix}{route}/photos");
});
@@ -95,7 +95,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.Related.Should().BeNull();
responseDocument.Links.First.Should().Be(responseDocument.Links.Self);
@@ -104,37 +104,37 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Links.Next.Should().BeNull();
responseDocument.Links.DescribedBy.Should().BeNull();
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].With(resource =>
{
string albumLink = $"{HostPrefix}{PathPrefix}/photoAlbums/{album.StringId}";
- resource.Links.ShouldNotBeNull();
+ resource.Links.Should().NotBeNull();
resource.Links.Self.Should().Be(albumLink);
- resource.Relationships.ShouldContainKey("photos").With(value =>
+ resource.Relationships.Should().ContainKey("photos").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{albumLink}/relationships/photos");
value.Links.Related.Should().Be($"{albumLink}/photos");
});
});
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].With(resource =>
{
string photoLink = $"{HostPrefix}{PathPrefix}/photos/{album.Photos.ElementAt(0).StringId}";
- resource.Links.ShouldNotBeNull();
+ resource.Links.Should().NotBeNull();
resource.Links.Self.Should().Be(photoLink);
- resource.Relationships.ShouldContainKey("album").With(value =>
+ resource.Relationships.Should().ContainKey("album").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{photoLink}/relationships/album");
value.Links.Related.Should().Be($"{photoLink}/album");
});
@@ -162,7 +162,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.Related.Should().BeNull();
responseDocument.Links.First.Should().BeNull();
@@ -173,14 +173,14 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
string albumLink = $"{HostPrefix}{PathPrefix}/photoAlbums/{photo.Album.StringId}";
- responseDocument.Data.SingleValue.ShouldNotBeNull();
- responseDocument.Data.SingleValue.Links.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
+ responseDocument.Data.SingleValue.Links.Should().NotBeNull();
responseDocument.Data.SingleValue.Links.Self.Should().Be(albumLink);
- responseDocument.Data.SingleValue.Relationships.ShouldContainKey("photos").With(value =>
+ responseDocument.Data.SingleValue.Relationships.Should().ContainKey("photos").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{albumLink}/relationships/photos");
value.Links.Related.Should().Be($"{albumLink}/photos");
});
@@ -207,7 +207,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.Related.Should().BeNull();
responseDocument.Links.First.Should().Be(responseDocument.Links.Self);
@@ -216,19 +216,19 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Links.Next.Should().BeNull();
responseDocument.Links.DescribedBy.Should().BeNull();
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].With(resource =>
{
string photoLink = $"{HostPrefix}{PathPrefix}/photos/{album.Photos.ElementAt(0).StringId}";
- resource.Links.ShouldNotBeNull();
+ resource.Links.Should().NotBeNull();
resource.Links.Self.Should().Be(photoLink);
- resource.Relationships.ShouldContainKey("album").With(value =>
+ resource.Relationships.Should().ContainKey("album").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{photoLink}/relationships/album");
value.Links.Related.Should().Be($"{photoLink}/album");
});
@@ -256,7 +256,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.Related.Should().Be($"{HostPrefix}{PathPrefix}/photos/{photo.StringId}/album");
responseDocument.Links.First.Should().BeNull();
@@ -265,7 +265,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Links.Next.Should().BeNull();
responseDocument.Links.DescribedBy.Should().BeNull();
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Links.Should().BeNull();
responseDocument.Data.SingleValue.Relationships.Should().BeNull();
}
@@ -291,7 +291,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.Related.Should().Be($"{HostPrefix}{PathPrefix}/photoAlbums/{album.StringId}/photos");
responseDocument.Links.First.Should().Be(responseDocument.Links.Self);
@@ -300,7 +300,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Links.Next.Should().BeNull();
responseDocument.Links.DescribedBy.Should().BeNull();
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Links.Should().BeNull();
responseDocument.Data.ManyValue[0].Relationships.Should().BeNull();
}
@@ -353,7 +353,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Created);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.Related.Should().BeNull();
responseDocument.Links.First.Should().BeNull();
@@ -362,34 +362,34 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Links.Next.Should().BeNull();
responseDocument.Links.DescribedBy.Should().BeNull();
- responseDocument.Data.SingleValue.ShouldNotBeNull();
- responseDocument.Data.SingleValue.Links.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
+ responseDocument.Data.SingleValue.Links.Should().NotBeNull();
string albumLink = $"{HostPrefix}{PathPrefix}/photoAlbums/{responseDocument.Data.SingleValue.Id}";
responseDocument.Data.SingleValue.Links.Self.Should().Be(albumLink);
- responseDocument.Data.SingleValue.Relationships.ShouldContainKey("photos").With(value =>
+ responseDocument.Data.SingleValue.Relationships.Should().ContainKey("photos").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{albumLink}/relationships/photos");
value.Links.Related.Should().Be($"{albumLink}/photos");
});
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].With(resource =>
{
string photoLink = $"{HostPrefix}{PathPrefix}/photos/{existingPhoto.StringId}";
- resource.Links.ShouldNotBeNull();
+ resource.Links.Should().NotBeNull();
resource.Links.Self.Should().Be(photoLink);
- resource.Relationships.ShouldContainKey("album").With(value =>
+ resource.Relationships.Should().ContainKey("album").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{photoLink}/relationships/album");
value.Links.Related.Should().Be($"{photoLink}/album");
});
@@ -439,7 +439,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.Related.Should().BeNull();
responseDocument.Links.First.Should().BeNull();
@@ -450,31 +450,31 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
string photoLink = $"{HostPrefix}{PathPrefix}/photos/{existingPhoto.StringId}";
- responseDocument.Data.SingleValue.ShouldNotBeNull();
- responseDocument.Data.SingleValue.Links.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
+ responseDocument.Data.SingleValue.Links.Should().NotBeNull();
responseDocument.Data.SingleValue.Links.Self.Should().Be(photoLink);
- responseDocument.Data.SingleValue.Relationships.ShouldContainKey("album").With(value =>
+ responseDocument.Data.SingleValue.Relationships.Should().ContainKey("album").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{photoLink}/relationships/album");
value.Links.Related.Should().Be($"{photoLink}/album");
});
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].With(resource =>
{
string albumLink = $"{HostPrefix}{PathPrefix}/photoAlbums/{existingAlbum.StringId}";
- resource.Links.ShouldNotBeNull();
+ resource.Links.Should().NotBeNull();
resource.Links.Self.Should().Be(albumLink);
- resource.Relationships.ShouldContainKey("photos").With(value =>
+ resource.Relationships.Should().ContainKey("photos").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{albumLink}/relationships/photos");
value.Links.Related.Should().Be($"{albumLink}/photos");
});
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/Links/RelativeLinksWithoutNamespaceTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/Links/RelativeLinksWithoutNamespaceTests.cs
index 37f24c4ceb..bbb95668d8 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/Links/RelativeLinksWithoutNamespaceTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/Links/RelativeLinksWithoutNamespaceTests.cs
@@ -51,7 +51,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.Related.Should().BeNull();
responseDocument.Links.First.Should().BeNull();
@@ -60,14 +60,14 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Links.Next.Should().BeNull();
responseDocument.Links.DescribedBy.Should().BeNull();
- responseDocument.Data.SingleValue.ShouldNotBeNull();
- responseDocument.Data.SingleValue.Links.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
+ responseDocument.Data.SingleValue.Links.Should().NotBeNull();
responseDocument.Data.SingleValue.Links.Self.Should().Be($"{HostPrefix}{route}");
- responseDocument.Data.SingleValue.Relationships.ShouldContainKey("photos").With(value =>
+ responseDocument.Data.SingleValue.Relationships.Should().ContainKey("photos").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{HostPrefix}{route}/relationships/photos");
value.Links.Related.Should().Be($"{HostPrefix}{route}/photos");
});
@@ -95,7 +95,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.Related.Should().BeNull();
responseDocument.Links.First.Should().Be(responseDocument.Links.Self);
@@ -104,37 +104,37 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Links.Next.Should().BeNull();
responseDocument.Links.DescribedBy.Should().BeNull();
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].With(resource =>
{
string albumLink = $"{HostPrefix}{PathPrefix}/photoAlbums/{album.StringId}";
- resource.Links.ShouldNotBeNull();
+ resource.Links.Should().NotBeNull();
resource.Links.Self.Should().Be(albumLink);
- resource.Relationships.ShouldContainKey("photos").With(value =>
+ resource.Relationships.Should().ContainKey("photos").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{albumLink}/relationships/photos");
value.Links.Related.Should().Be($"{albumLink}/photos");
});
});
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].With(resource =>
{
string photoLink = $"{HostPrefix}{PathPrefix}/photos/{album.Photos.ElementAt(0).StringId}";
- resource.Links.ShouldNotBeNull();
+ resource.Links.Should().NotBeNull();
resource.Links.Self.Should().Be(photoLink);
- resource.Relationships.ShouldContainKey("album").With(value =>
+ resource.Relationships.Should().ContainKey("album").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{photoLink}/relationships/album");
value.Links.Related.Should().Be($"{photoLink}/album");
});
@@ -162,7 +162,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.Related.Should().BeNull();
responseDocument.Links.First.Should().BeNull();
@@ -173,14 +173,14 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
string albumLink = $"{HostPrefix}{PathPrefix}/photoAlbums/{photo.Album.StringId}";
- responseDocument.Data.SingleValue.ShouldNotBeNull();
- responseDocument.Data.SingleValue.Links.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
+ responseDocument.Data.SingleValue.Links.Should().NotBeNull();
responseDocument.Data.SingleValue.Links.Self.Should().Be(albumLink);
- responseDocument.Data.SingleValue.Relationships.ShouldContainKey("photos").With(value =>
+ responseDocument.Data.SingleValue.Relationships.Should().ContainKey("photos").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{albumLink}/relationships/photos");
value.Links.Related.Should().Be($"{albumLink}/photos");
});
@@ -207,7 +207,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.Related.Should().BeNull();
responseDocument.Links.First.Should().Be(responseDocument.Links.Self);
@@ -216,19 +216,19 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Links.Next.Should().BeNull();
responseDocument.Links.DescribedBy.Should().BeNull();
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].With(resource =>
{
string photoLink = $"{HostPrefix}{PathPrefix}/photos/{album.Photos.ElementAt(0).StringId}";
- resource.Links.ShouldNotBeNull();
+ resource.Links.Should().NotBeNull();
resource.Links.Self.Should().Be(photoLink);
- resource.Relationships.ShouldContainKey("album").With(value =>
+ resource.Relationships.Should().ContainKey("album").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{photoLink}/relationships/album");
value.Links.Related.Should().Be($"{photoLink}/album");
});
@@ -256,7 +256,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.Related.Should().Be($"{HostPrefix}{PathPrefix}/photos/{photo.StringId}/album");
responseDocument.Links.First.Should().BeNull();
@@ -265,7 +265,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Links.Next.Should().BeNull();
responseDocument.Links.DescribedBy.Should().BeNull();
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Links.Should().BeNull();
responseDocument.Data.SingleValue.Relationships.Should().BeNull();
}
@@ -291,7 +291,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.Related.Should().Be($"{HostPrefix}{PathPrefix}/photoAlbums/{album.StringId}/photos");
responseDocument.Links.First.Should().Be(responseDocument.Links.Self);
@@ -300,7 +300,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Links.Next.Should().BeNull();
responseDocument.Links.DescribedBy.Should().BeNull();
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Links.Should().BeNull();
responseDocument.Data.ManyValue[0].Relationships.Should().BeNull();
}
@@ -353,7 +353,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Created);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.Related.Should().BeNull();
responseDocument.Links.First.Should().BeNull();
@@ -362,34 +362,34 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Links.Next.Should().BeNull();
responseDocument.Links.DescribedBy.Should().BeNull();
- responseDocument.Data.SingleValue.ShouldNotBeNull();
- responseDocument.Data.SingleValue.Links.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
+ responseDocument.Data.SingleValue.Links.Should().NotBeNull();
string albumLink = $"{HostPrefix}{PathPrefix}/photoAlbums/{responseDocument.Data.SingleValue.Id}";
responseDocument.Data.SingleValue.Links.Self.Should().Be(albumLink);
- responseDocument.Data.SingleValue.Relationships.ShouldContainKey("photos").With(value =>
+ responseDocument.Data.SingleValue.Relationships.Should().ContainKey("photos").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{albumLink}/relationships/photos");
value.Links.Related.Should().Be($"{albumLink}/photos");
});
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].With(resource =>
{
string photoLink = $"{HostPrefix}{PathPrefix}/photos/{existingPhoto.StringId}";
- resource.Links.ShouldNotBeNull();
+ resource.Links.Should().NotBeNull();
resource.Links.Self.Should().Be(photoLink);
- resource.Relationships.ShouldContainKey("album").With(value =>
+ resource.Relationships.Should().ContainKey("album").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{photoLink}/relationships/album");
value.Links.Related.Should().Be($"{photoLink}/album");
});
@@ -439,7 +439,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.Related.Should().BeNull();
responseDocument.Links.First.Should().BeNull();
@@ -450,31 +450,31 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
string photoLink = $"{HostPrefix}{PathPrefix}/photos/{existingPhoto.StringId}";
- responseDocument.Data.SingleValue.ShouldNotBeNull();
- responseDocument.Data.SingleValue.Links.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
+ responseDocument.Data.SingleValue.Links.Should().NotBeNull();
responseDocument.Data.SingleValue.Links.Self.Should().Be(photoLink);
- responseDocument.Data.SingleValue.Relationships.ShouldContainKey("album").With(value =>
+ responseDocument.Data.SingleValue.Relationships.Should().ContainKey("album").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{photoLink}/relationships/album");
value.Links.Related.Should().Be($"{photoLink}/album");
});
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].With(resource =>
{
string albumLink = $"{HostPrefix}{PathPrefix}/photoAlbums/{existingAlbum.StringId}";
- resource.Links.ShouldNotBeNull();
+ resource.Links.Should().NotBeNull();
resource.Links.Self.Should().Be(albumLink);
- resource.Relationships.ShouldContainKey("photos").With(value =>
+ resource.Relationships.Should().ContainKey("photos").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{albumLink}/relationships/photos");
value.Links.Related.Should().Be($"{albumLink}/photos");
});
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/Meta/ResourceMetaTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/Meta/ResourceMetaTests.cs
index 6913e57761..f160c21068 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/Meta/ResourceMetaTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/Meta/ResourceMetaTests.cs
@@ -56,10 +56,10 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(3);
- responseDocument.Data.ManyValue[0].Meta.ShouldContainKey("hasHighPriority");
+ responseDocument.Data.ManyValue.Should().HaveCount(3);
+ responseDocument.Data.ManyValue[0].Meta.Should().ContainKey("hasHighPriority");
responseDocument.Data.ManyValue[1].Meta.Should().BeNull();
- responseDocument.Data.ManyValue[2].Meta.ShouldContainKey("hasHighPriority");
+ responseDocument.Data.ManyValue[2].Meta.Should().ContainKey("hasHighPriority");
hitCounter.HitExtensibilityPoints.Should().BeEquivalentTo(new[]
{
@@ -94,9 +94,9 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
- responseDocument.Included.ShouldHaveCount(1);
- responseDocument.Included[0].Meta.ShouldContainKey("hasHighPriority");
+ responseDocument.Data.SingleValue.Should().NotBeNull();
+ responseDocument.Included.Should().HaveCount(1);
+ responseDocument.Included[0].Meta.Should().ContainKey("hasHighPriority");
hitCounter.HitExtensibilityPoints.Should().BeEquivalentTo(new[]
{
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/FireAndForgetDelivery/FireForgetTests.Group.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/FireAndForgetDelivery/FireForgetTests.Group.cs
index c37f65b9eb..a412d64d96 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/FireAndForgetDelivery/FireForgetTests.Group.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/FireAndForgetDelivery/FireForgetTests.Group.cs
@@ -39,8 +39,8 @@ public async Task Create_group_sends_messages()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Created);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("name").With(value => value.Should().Be(newGroupName));
+ responseDocument.Data.SingleValue.Should().NotBeNull();
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("name").WhoseValue.Should().Be(newGroupName);
hitCounter.HitExtensibilityPoints.Should().BeEquivalentTo(new[]
{
@@ -49,9 +49,9 @@ public async Task Create_group_sends_messages()
(typeof(DomainGroup), ResourceDefinitionExtensibilityPoints.OnWriteSucceededAsync)
}, options => options.WithStrictOrdering());
- messageBroker.SentMessages.ShouldHaveCount(1);
+ messageBroker.SentMessages.Should().HaveCount(1);
- Guid newGroupId = Guid.Parse(responseDocument.Data.SingleValue.Id.ShouldNotBeNull());
+ Guid newGroupId = Guid.Parse(responseDocument.Data.SingleValue.Id.Should().NotBeNull().And.Subject);
var content = messageBroker.SentMessages[0].GetContentAs();
content.GroupId.Should().Be(newGroupId);
@@ -117,8 +117,8 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Created);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("name").With(value => value.Should().Be(newGroupName));
+ responseDocument.Data.SingleValue.Should().NotBeNull();
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("name").WhoseValue.Should().Be(newGroupName);
hitCounter.HitExtensibilityPoints.Should().BeEquivalentTo(new[]
{
@@ -128,9 +128,9 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
(typeof(DomainGroup), ResourceDefinitionExtensibilityPoints.OnWriteSucceededAsync)
}, options => options.WithStrictOrdering());
- messageBroker.SentMessages.ShouldHaveCount(3);
+ messageBroker.SentMessages.Should().HaveCount(3);
- Guid newGroupId = Guid.Parse(responseDocument.Data.SingleValue.Id.ShouldNotBeNull());
+ Guid newGroupId = Guid.Parse(responseDocument.Data.SingleValue.Id.Should().NotBeNull().And.Subject);
var content1 = messageBroker.SentMessages[0].GetContentAs();
content1.GroupId.Should().Be(newGroupId);
@@ -193,7 +193,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
(typeof(DomainGroup), ResourceDefinitionExtensibilityPoints.OnWriteSucceededAsync)
}, options => options.WithStrictOrdering());
- messageBroker.SentMessages.ShouldHaveCount(1);
+ messageBroker.SentMessages.Should().HaveCount(1);
var content = messageBroker.SentMessages[0].GetContentAs();
content.GroupId.Should().Be(existingGroup.StringId);
@@ -278,7 +278,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
(typeof(DomainGroup), ResourceDefinitionExtensibilityPoints.OnWriteSucceededAsync)
}, options => options.WithStrictOrdering());
- messageBroker.SentMessages.ShouldHaveCount(3);
+ messageBroker.SentMessages.Should().HaveCount(3);
var content1 = messageBroker.SentMessages[0].GetContentAs();
content1.UserId.Should().Be(existingUserWithoutGroup.Id);
@@ -325,7 +325,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
(typeof(DomainGroup), ResourceDefinitionExtensibilityPoints.OnWriteSucceededAsync)
}, options => options.WithStrictOrdering());
- messageBroker.SentMessages.ShouldHaveCount(1);
+ messageBroker.SentMessages.Should().HaveCount(1);
var content = messageBroker.SentMessages[0].GetContentAs();
content.GroupId.Should().Be(existingGroup.StringId);
@@ -363,7 +363,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
(typeof(DomainGroup), ResourceDefinitionExtensibilityPoints.OnWriteSucceededAsync)
}, options => options.WithStrictOrdering());
- messageBroker.SentMessages.ShouldHaveCount(2);
+ messageBroker.SentMessages.Should().HaveCount(2);
var content1 = messageBroker.SentMessages[0].GetContentAs();
content1.UserId.Should().Be(existingGroup.Users.ElementAt(0).Id);
@@ -439,7 +439,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
(typeof(DomainGroup), ResourceDefinitionExtensibilityPoints.OnWriteSucceededAsync)
}, options => options.WithStrictOrdering());
- messageBroker.SentMessages.ShouldHaveCount(3);
+ messageBroker.SentMessages.Should().HaveCount(3);
var content1 = messageBroker.SentMessages[0].GetContentAs();
content1.UserId.Should().Be(existingUserWithoutGroup.Id);
@@ -512,7 +512,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
(typeof(DomainGroup), ResourceDefinitionExtensibilityPoints.OnWriteSucceededAsync)
}, options => options.WithStrictOrdering());
- messageBroker.SentMessages.ShouldHaveCount(2);
+ messageBroker.SentMessages.Should().HaveCount(2);
var content1 = messageBroker.SentMessages[0].GetContentAs();
content1.UserId.Should().Be(existingUserWithoutGroup.Id);
@@ -575,7 +575,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
(typeof(DomainGroup), ResourceDefinitionExtensibilityPoints.OnWriteSucceededAsync)
}, options => options.WithStrictOrdering());
- messageBroker.SentMessages.ShouldHaveCount(1);
+ messageBroker.SentMessages.Should().HaveCount(1);
var content = messageBroker.SentMessages[0].GetContentAs();
content.UserId.Should().Be(existingUserWithSameGroup2.Id);
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/FireAndForgetDelivery/FireForgetTests.User.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/FireAndForgetDelivery/FireForgetTests.User.cs
index 0f8c75e7a1..e8687d9993 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/FireAndForgetDelivery/FireForgetTests.User.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/FireAndForgetDelivery/FireForgetTests.User.cs
@@ -41,9 +41,9 @@ public async Task Create_user_sends_messages()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Created);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("loginName").With(value => value.Should().Be(newLoginName));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("displayName").With(value => value.Should().Be(newDisplayName));
+ responseDocument.Data.SingleValue.Should().NotBeNull();
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("loginName").WhoseValue.Should().Be(newLoginName);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("displayName").WhoseValue.Should().Be(newDisplayName);
hitCounter.HitExtensibilityPoints.Should().BeEquivalentTo(new[]
{
@@ -52,9 +52,9 @@ public async Task Create_user_sends_messages()
(typeof(DomainUser), ResourceDefinitionExtensibilityPoints.OnWriteSucceededAsync)
}, options => options.WithStrictOrdering());
- messageBroker.SentMessages.ShouldHaveCount(1);
+ messageBroker.SentMessages.Should().HaveCount(1);
- Guid newUserId = Guid.Parse(responseDocument.Data.SingleValue.Id.ShouldNotBeNull());
+ Guid newUserId = Guid.Parse(responseDocument.Data.SingleValue.Id.Should().NotBeNull().And.Subject);
var content = messageBroker.SentMessages[0].GetContentAs();
content.UserId.Should().Be(newUserId);
@@ -110,9 +110,9 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Created);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("loginName").With(value => value.Should().Be(newLoginName));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("displayName").With(value => value.Should().BeNull());
+ responseDocument.Data.SingleValue.Should().NotBeNull();
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("loginName").WhoseValue.Should().Be(newLoginName);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("displayName").WhoseValue.Should().BeNull();
hitCounter.HitExtensibilityPoints.Should().BeEquivalentTo(new[]
{
@@ -122,9 +122,9 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
(typeof(DomainUser), ResourceDefinitionExtensibilityPoints.OnWriteSucceededAsync)
}, options => options.WithStrictOrdering());
- messageBroker.SentMessages.ShouldHaveCount(2);
+ messageBroker.SentMessages.Should().HaveCount(2);
- Guid newUserId = Guid.Parse(responseDocument.Data.SingleValue.Id.ShouldNotBeNull());
+ Guid newUserId = Guid.Parse(responseDocument.Data.SingleValue.Id.Should().NotBeNull().And.Subject);
var content1 = messageBroker.SentMessages[0].GetContentAs();
content1.UserId.Should().Be(newUserId);
@@ -185,7 +185,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
(typeof(DomainUser), ResourceDefinitionExtensibilityPoints.OnWriteSucceededAsync)
}, options => options.WithStrictOrdering());
- messageBroker.SentMessages.ShouldHaveCount(2);
+ messageBroker.SentMessages.Should().HaveCount(2);
var content1 = messageBroker.SentMessages[0].GetContentAs();
content1.UserId.Should().Be(existingUser.Id);
@@ -254,7 +254,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
(typeof(DomainUser), ResourceDefinitionExtensibilityPoints.OnWriteSucceededAsync)
}, options => options.WithStrictOrdering());
- messageBroker.SentMessages.ShouldHaveCount(2);
+ messageBroker.SentMessages.Should().HaveCount(2);
var content1 = messageBroker.SentMessages[0].GetContentAs();
content1.UserId.Should().Be(existingUser.Id);
@@ -326,7 +326,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
(typeof(DomainUser), ResourceDefinitionExtensibilityPoints.OnWriteSucceededAsync)
}, options => options.WithStrictOrdering());
- messageBroker.SentMessages.ShouldHaveCount(2);
+ messageBroker.SentMessages.Should().HaveCount(2);
var content1 = messageBroker.SentMessages[0].GetContentAs();
content1.UserId.Should().Be(existingUser.Id);
@@ -400,7 +400,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
(typeof(DomainUser), ResourceDefinitionExtensibilityPoints.OnWriteSucceededAsync)
}, options => options.WithStrictOrdering());
- messageBroker.SentMessages.ShouldHaveCount(2);
+ messageBroker.SentMessages.Should().HaveCount(2);
var content1 = messageBroker.SentMessages[0].GetContentAs();
content1.UserId.Should().Be(existingUser.Id);
@@ -444,7 +444,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
(typeof(DomainUser), ResourceDefinitionExtensibilityPoints.OnWriteSucceededAsync)
}, options => options.WithStrictOrdering());
- messageBroker.SentMessages.ShouldHaveCount(1);
+ messageBroker.SentMessages.Should().HaveCount(1);
var content = messageBroker.SentMessages[0].GetContentAs();
content.UserId.Should().Be(existingUser.Id);
@@ -482,7 +482,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
(typeof(DomainUser), ResourceDefinitionExtensibilityPoints.OnWriteSucceededAsync)
}, options => options.WithStrictOrdering());
- messageBroker.SentMessages.ShouldHaveCount(2);
+ messageBroker.SentMessages.Should().HaveCount(2);
var content1 = messageBroker.SentMessages[0].GetContentAs();
content1.UserId.Should().Be(existingUser.Id);
@@ -531,7 +531,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
(typeof(DomainUser), ResourceDefinitionExtensibilityPoints.OnWriteSucceededAsync)
}, options => options.WithStrictOrdering());
- messageBroker.SentMessages.ShouldHaveCount(1);
+ messageBroker.SentMessages.Should().HaveCount(1);
var content = messageBroker.SentMessages[0].GetContentAs();
content.UserId.Should().Be(existingUser.Id);
@@ -581,7 +581,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
(typeof(DomainUser), ResourceDefinitionExtensibilityPoints.OnWriteSucceededAsync)
}, options => options.WithStrictOrdering());
- messageBroker.SentMessages.ShouldHaveCount(1);
+ messageBroker.SentMessages.Should().HaveCount(1);
var content = messageBroker.SentMessages[0].GetContentAs();
content.UserId.Should().Be(existingUser.Id);
@@ -633,7 +633,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
(typeof(DomainUser), ResourceDefinitionExtensibilityPoints.OnWriteSucceededAsync)
}, options => options.WithStrictOrdering());
- messageBroker.SentMessages.ShouldHaveCount(1);
+ messageBroker.SentMessages.Should().HaveCount(1);
var content = messageBroker.SentMessages[0].GetContentAs();
content.UserId.Should().Be(existingUser.Id);
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/FireAndForgetDelivery/FireForgetTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/FireAndForgetDelivery/FireForgetTests.cs
index e025b7caad..b9ed0b5df4 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/FireAndForgetDelivery/FireForgetTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/FireAndForgetDelivery/FireForgetTests.cs
@@ -53,7 +53,7 @@ public async Task Does_not_send_message_on_write_error()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
@@ -94,7 +94,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.ServiceUnavailable);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.ServiceUnavailable);
@@ -107,7 +107,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
(typeof(DomainUser), ResourceDefinitionExtensibilityPoints.OnWriteSucceededAsync)
}, options => options.WithStrictOrdering());
- messageBroker.SentMessages.ShouldHaveCount(1);
+ messageBroker.SentMessages.Should().HaveCount(1);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/TransactionalOutboxPattern/OutboxTests.Group.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/TransactionalOutboxPattern/OutboxTests.Group.cs
index 86c01c83b1..47c5698e38 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/TransactionalOutboxPattern/OutboxTests.Group.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/TransactionalOutboxPattern/OutboxTests.Group.cs
@@ -44,8 +44,8 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Created);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("name").With(value => value.Should().Be(newGroupName));
+ responseDocument.Data.SingleValue.Should().NotBeNull();
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("name").WhoseValue.Should().Be(newGroupName);
hitCounter.HitExtensibilityPoints.Should().BeEquivalentTo(new[]
{
@@ -54,12 +54,12 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
(typeof(DomainGroup), ResourceDefinitionExtensibilityPoints.OnWriteSucceededAsync)
}, options => options.WithStrictOrdering());
- Guid newGroupId = Guid.Parse(responseDocument.Data.SingleValue.Id.ShouldNotBeNull());
+ Guid newGroupId = Guid.Parse(responseDocument.Data.SingleValue.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
List messages = await dbContext.OutboxMessages.OrderBy(message => message.Id).ToListAsync();
- messages.ShouldHaveCount(1);
+ messages.Should().HaveCount(1);
var content = messages[0].GetContentAs();
content.GroupId.Should().Be(newGroupId);
@@ -126,8 +126,8 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Created);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("name").With(value => value.Should().Be(newGroupName));
+ responseDocument.Data.SingleValue.Should().NotBeNull();
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("name").WhoseValue.Should().Be(newGroupName);
hitCounter.HitExtensibilityPoints.Should().BeEquivalentTo(new[]
{
@@ -137,12 +137,12 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
(typeof(DomainGroup), ResourceDefinitionExtensibilityPoints.OnWriteSucceededAsync)
}, options => options.WithStrictOrdering());
- Guid newGroupId = Guid.Parse(responseDocument.Data.SingleValue.Id.ShouldNotBeNull());
+ Guid newGroupId = Guid.Parse(responseDocument.Data.SingleValue.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
List messages = await dbContext.OutboxMessages.OrderBy(message => message.Id).ToListAsync();
- messages.ShouldHaveCount(3);
+ messages.Should().HaveCount(3);
var content1 = messages[0].GetContentAs();
content1.GroupId.Should().Be(newGroupId);
@@ -209,7 +209,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
List messages = await dbContext.OutboxMessages.OrderBy(message => message.Id).ToListAsync();
- messages.ShouldHaveCount(1);
+ messages.Should().HaveCount(1);
var content = messages[0].GetContentAs();
content.GroupId.Should().Be(existingGroup.StringId);
@@ -298,7 +298,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
List messages = await dbContext.OutboxMessages.OrderBy(message => message.Id).ToListAsync();
- messages.ShouldHaveCount(3);
+ messages.Should().HaveCount(3);
var content1 = messages[0].GetContentAs();
content1.UserId.Should().Be(existingUserWithoutGroup.Id);
@@ -349,7 +349,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
List messages = await dbContext.OutboxMessages.OrderBy(message => message.Id).ToListAsync();
- messages.ShouldHaveCount(1);
+ messages.Should().HaveCount(1);
var content = messages[0].GetContentAs();
content.GroupId.Should().Be(existingGroup.StringId);
@@ -391,7 +391,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
List messages = await dbContext.OutboxMessages.OrderBy(message => message.Id).ToListAsync();
- messages.ShouldHaveCount(2);
+ messages.Should().HaveCount(2);
var content1 = messages[0].GetContentAs();
content1.UserId.Should().Be(existingGroup.Users.ElementAt(0).Id);
@@ -471,7 +471,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
List messages = await dbContext.OutboxMessages.OrderBy(message => message.Id).ToListAsync();
- messages.ShouldHaveCount(3);
+ messages.Should().HaveCount(3);
var content1 = messages[0].GetContentAs();
content1.UserId.Should().Be(existingUserWithoutGroup.Id);
@@ -548,7 +548,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
List messages = await dbContext.OutboxMessages.OrderBy(message => message.Id).ToListAsync();
- messages.ShouldHaveCount(2);
+ messages.Should().HaveCount(2);
var content1 = messages[0].GetContentAs();
content1.UserId.Should().Be(existingUserWithoutGroup.Id);
@@ -615,7 +615,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
List messages = await dbContext.OutboxMessages.OrderBy(message => message.Id).ToListAsync();
- messages.ShouldHaveCount(1);
+ messages.Should().HaveCount(1);
var content = messages[0].GetContentAs();
content.UserId.Should().Be(existingUserWithSameGroup2.Id);
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/TransactionalOutboxPattern/OutboxTests.User.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/TransactionalOutboxPattern/OutboxTests.User.cs
index d4c64ab622..006ba19764 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/TransactionalOutboxPattern/OutboxTests.User.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/TransactionalOutboxPattern/OutboxTests.User.cs
@@ -46,9 +46,9 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Created);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("loginName").With(value => value.Should().Be(newLoginName));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("displayName").With(value => value.Should().Be(newDisplayName));
+ responseDocument.Data.SingleValue.Should().NotBeNull();
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("loginName").WhoseValue.Should().Be(newLoginName);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("displayName").WhoseValue.Should().Be(newDisplayName);
hitCounter.HitExtensibilityPoints.Should().BeEquivalentTo(new[]
{
@@ -57,12 +57,12 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
(typeof(DomainUser), ResourceDefinitionExtensibilityPoints.OnWriteSucceededAsync)
}, options => options.WithStrictOrdering());
- Guid newUserId = Guid.Parse(responseDocument.Data.SingleValue.Id.ShouldNotBeNull());
+ Guid newUserId = Guid.Parse(responseDocument.Data.SingleValue.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
List messages = await dbContext.OutboxMessages.OrderBy(message => message.Id).ToListAsync();
- messages.ShouldHaveCount(1);
+ messages.Should().HaveCount(1);
var content = messages[0].GetContentAs();
content.UserId.Should().Be(newUserId);
@@ -119,9 +119,9 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Created);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("loginName").With(value => value.Should().Be(newLoginName));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("displayName").With(value => value.Should().BeNull());
+ responseDocument.Data.SingleValue.Should().NotBeNull();
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("loginName").WhoseValue.Should().Be(newLoginName);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("displayName").WhoseValue.Should().BeNull();
hitCounter.HitExtensibilityPoints.Should().BeEquivalentTo(new[]
{
@@ -131,12 +131,12 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
(typeof(DomainUser), ResourceDefinitionExtensibilityPoints.OnWriteSucceededAsync)
}, options => options.WithStrictOrdering());
- Guid newUserId = Guid.Parse(responseDocument.Data.SingleValue.Id.ShouldNotBeNull());
+ Guid newUserId = Guid.Parse(responseDocument.Data.SingleValue.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
List messages = await dbContext.OutboxMessages.OrderBy(message => message.Id).ToListAsync();
- messages.ShouldHaveCount(2);
+ messages.Should().HaveCount(2);
var content1 = messages[0].GetContentAs();
content1.UserId.Should().Be(newUserId);
@@ -201,7 +201,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
List messages = await dbContext.OutboxMessages.OrderBy(message => message.Id).ToListAsync();
- messages.ShouldHaveCount(2);
+ messages.Should().HaveCount(2);
var content1 = messages[0].GetContentAs();
content1.UserId.Should().Be(existingUser.Id);
@@ -274,7 +274,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
List messages = await dbContext.OutboxMessages.OrderBy(message => message.Id).ToListAsync();
- messages.ShouldHaveCount(2);
+ messages.Should().HaveCount(2);
var content1 = messages[0].GetContentAs();
content1.UserId.Should().Be(existingUser.Id);
@@ -350,7 +350,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
List messages = await dbContext.OutboxMessages.OrderBy(message => message.Id).ToListAsync();
- messages.ShouldHaveCount(2);
+ messages.Should().HaveCount(2);
var content1 = messages[0].GetContentAs();
content1.UserId.Should().Be(existingUser.Id);
@@ -428,7 +428,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
List messages = await dbContext.OutboxMessages.OrderBy(message => message.Id).ToListAsync();
- messages.ShouldHaveCount(2);
+ messages.Should().HaveCount(2);
var content1 = messages[0].GetContentAs();
content1.UserId.Should().Be(existingUser.Id);
@@ -476,7 +476,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
List messages = await dbContext.OutboxMessages.OrderBy(message => message.Id).ToListAsync();
- messages.ShouldHaveCount(1);
+ messages.Should().HaveCount(1);
var content = messages[0].GetContentAs();
content.UserId.Should().Be(existingUser.Id);
@@ -518,7 +518,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
List messages = await dbContext.OutboxMessages.OrderBy(message => message.Id).ToListAsync();
- messages.ShouldHaveCount(2);
+ messages.Should().HaveCount(2);
var content1 = messages[0].GetContentAs();
content1.UserId.Should().Be(existingUser.Id);
@@ -571,7 +571,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
List messages = await dbContext.OutboxMessages.OrderBy(message => message.Id).ToListAsync();
- messages.ShouldHaveCount(1);
+ messages.Should().HaveCount(1);
var content = messages[0].GetContentAs();
content.UserId.Should().Be(existingUser.Id);
@@ -625,7 +625,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
List messages = await dbContext.OutboxMessages.OrderBy(message => message.Id).ToListAsync();
- messages.ShouldHaveCount(1);
+ messages.Should().HaveCount(1);
var content = messages[0].GetContentAs();
content.UserId.Should().Be(existingUser.Id);
@@ -681,7 +681,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
List messages = await dbContext.OutboxMessages.OrderBy(message => message.Id).ToListAsync();
- messages.ShouldHaveCount(1);
+ messages.Should().HaveCount(1);
var content = messages[0].GetContentAs();
content.UserId.Should().Be(existingUser.Id);
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/TransactionalOutboxPattern/OutboxTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/TransactionalOutboxPattern/OutboxTests.cs
index c0d43533f3..7f4b1f072c 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/TransactionalOutboxPattern/OutboxTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/Microservices/TransactionalOutboxPattern/OutboxTests.cs
@@ -79,7 +79,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/MultiTenancy/MultiTenancyTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/MultiTenancy/MultiTenancyTests.cs
index 530186d540..cca888a7a1 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/MultiTenancy/MultiTenancyTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/MultiTenancy/MultiTenancyTests.cs
@@ -62,7 +62,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(shops[1].StringId);
}
@@ -92,7 +92,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(shops[1].StringId);
}
@@ -122,11 +122,11 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Type.Should().Be("webShops");
responseDocument.Data.ManyValue[0].Id.Should().Be(shops[1].StringId);
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].Type.Should().Be("webProducts");
responseDocument.Included[0].Id.Should().Be(shops[1].Products[0].StringId);
}
@@ -152,7 +152,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
@@ -182,7 +182,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
@@ -212,7 +212,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
@@ -242,7 +242,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
@@ -272,7 +272,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
@@ -306,11 +306,11 @@ public async Task Can_create_resource()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Created);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("url").With(value => value.Should().Be(newShopUrl));
- responseDocument.Data.SingleValue.Relationships.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("url").WhoseValue.Should().Be(newShopUrl);
+ responseDocument.Data.SingleValue.Relationships.Should().NotBeNull();
- int newShopId = int.Parse(responseDocument.Data.SingleValue.Id.ShouldNotBeNull());
+ int newShopId = int.Parse(responseDocument.Data.SingleValue.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
@@ -371,7 +371,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
@@ -425,7 +425,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
@@ -518,7 +518,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
@@ -574,7 +574,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
@@ -627,7 +627,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
@@ -662,7 +662,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
@@ -707,7 +707,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
@@ -742,7 +742,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
@@ -784,7 +784,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
@@ -829,7 +829,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
@@ -873,7 +873,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
@@ -915,7 +915,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
@@ -977,7 +977,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.NotFound);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.NotFound);
@@ -1008,7 +1008,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be(route);
responseDocument.Links.Related.Should().BeNull();
responseDocument.Links.First.Should().Be(responseDocument.Links.Self);
@@ -1016,37 +1016,37 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Links.Prev.Should().BeNull();
responseDocument.Links.Next.Should().BeNull();
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].With(resource =>
{
string shopLink = $"/nld/shops/{shop.StringId}";
- resource.Links.ShouldNotBeNull();
+ resource.Links.Should().NotBeNull();
resource.Links.Self.Should().Be(shopLink);
- resource.Relationships.ShouldContainKey("products").With(value =>
+ resource.Relationships.Should().ContainKey("products").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{shopLink}/relationships/products");
value.Links.Related.Should().Be($"{shopLink}/products");
});
});
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].With(resource =>
{
string productLink = $"/nld/products/{shop.Products[0].StringId}";
- resource.Links.ShouldNotBeNull();
+ resource.Links.Should().NotBeNull();
resource.Links.Self.Should().Be(productLink);
- resource.Relationships.ShouldContainKey("shop").With(value =>
+ resource.Relationships.Should().ContainKey("shop").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{productLink}/relationships/shop");
value.Links.Related.Should().Be($"{productLink}/shop");
});
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/NamingConventions/KebabCasingTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/NamingConventions/KebabCasingTests.cs
index c3e6c30fe4..afa1bdfcd0 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/NamingConventions/KebabCasingTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/NamingConventions/KebabCasingTests.cs
@@ -41,20 +41,21 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(2);
- responseDocument.Data.ManyValue.Should().OnlyContain(resourceObject => resourceObject.Type == "swimming-pools");
- responseDocument.Data.ManyValue.Should().OnlyContain(resourceObject => resourceObject.Attributes.ShouldContainKey("is-indoor") != null);
- responseDocument.Data.ManyValue.Should().OnlyContain(resourceObject => resourceObject.Relationships.ShouldContainKey("water-slides") != null);
- responseDocument.Data.ManyValue.Should().OnlyContain(resourceObject => resourceObject.Relationships.ShouldContainKey("diving-boards") != null);
+ responseDocument.Data.ManyValue.Should().HaveCount(2);
+ responseDocument.Data.ManyValue.Should().OnlyContain(resource => resource.Type == "swimming-pools");
+ responseDocument.Data.ManyValue.Should().OnlyContain(resource => resource.Attributes.Should().ContainKey2("is-indoor").WhoseValue != null);
+ responseDocument.Data.ManyValue.Should().OnlyContain(resource => resource.Relationships.Should().ContainKey2("water-slides").WhoseValue != null);
+ responseDocument.Data.ManyValue.Should().OnlyContain(resource => resource.Relationships.Should().ContainKey2("diving-boards").WhoseValue != null);
decimal height = pools[1].DivingBoards[0].HeightInMeters;
+ string link = $"/public-api/diving-boards/{pools[1].DivingBoards[0].StringId}";
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].Type.Should().Be("diving-boards");
responseDocument.Included[0].Id.Should().Be(pools[1].DivingBoards[0].StringId);
- responseDocument.Included[0].Attributes.ShouldContainKey("height-in-meters").With(value => value.As().Should().BeApproximately(height));
+ responseDocument.Included[0].Attributes.Should().ContainKey("height-in-meters").WhoseValue.As().Should().BeApproximately(height);
responseDocument.Included[0].Relationships.Should().BeNull();
- responseDocument.Included[0].Links.ShouldNotBeNull().Self.Should().Be($"/public-api/diving-boards/{pools[1].DivingBoards[0].StringId}");
+ responseDocument.Included[0].Links.RefShould().NotBeNull().And.Subject.Self.Should().Be(link);
responseDocument.Meta.Should().ContainTotal(2);
}
@@ -83,10 +84,10 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Type.Should().Be("water-slides");
responseDocument.Data.ManyValue[0].Id.Should().Be(pool.WaterSlides[1].StringId);
- responseDocument.Data.ManyValue[0].Attributes.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue[0].Attributes.Should().HaveCount(1);
}
[Fact]
@@ -115,25 +116,25 @@ public async Task Can_create_resource()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Created);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Type.Should().Be("swimming-pools");
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("is-indoor").With(value => value.Should().Be(newPool.IsIndoor));
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("is-indoor").WhoseValue.Should().Be(newPool.IsIndoor);
- int newPoolId = int.Parse(responseDocument.Data.SingleValue.Id.ShouldNotBeNull());
+ int newPoolId = int.Parse(responseDocument.Data.SingleValue.Id.Should().NotBeNull().And.Subject);
string poolLink = $"{route}/{newPoolId}";
- responseDocument.Data.SingleValue.Relationships.ShouldContainKey("water-slides").With(value =>
+ responseDocument.Data.SingleValue.Relationships.Should().ContainKey("water-slides").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{poolLink}/relationships/water-slides");
value.Links.Related.Should().Be($"{poolLink}/water-slides");
});
- responseDocument.Data.SingleValue.Relationships.ShouldContainKey("diving-boards").With(value =>
+ responseDocument.Data.SingleValue.Relationships.Should().ContainKey("diving-boards").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{poolLink}/relationships/diving-boards");
value.Links.Related.Should().Be($"{poolLink}/diving-boards");
});
@@ -160,12 +161,12 @@ public async Task Applies_casing_convention_on_error_stack_trace()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body.");
- error.Meta.ShouldContainKey("stack-trace");
+ error.Meta.Should().ContainKey("stack-trace");
}
[Fact]
@@ -201,13 +202,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Input validation failed.");
error.Detail.Should().Be("The field HeightInMeters must be between 1 and 20.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/data/attributes/height-in-meters");
}
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/NamingConventions/PascalCasingTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/NamingConventions/PascalCasingTests.cs
index 22ed5abc87..1b630cdc92 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/NamingConventions/PascalCasingTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/NamingConventions/PascalCasingTests.cs
@@ -42,22 +42,23 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(2);
- responseDocument.Data.ManyValue.Should().OnlyContain(resourceObject => resourceObject.Type == "SwimmingPools");
- responseDocument.Data.ManyValue.Should().OnlyContain(resourceObject => resourceObject.Attributes.ShouldContainKey("IsIndoor") != null);
- responseDocument.Data.ManyValue.Should().OnlyContain(resourceObject => resourceObject.Relationships.ShouldContainKey("WaterSlides") != null);
- responseDocument.Data.ManyValue.Should().OnlyContain(resourceObject => resourceObject.Relationships.ShouldContainKey("DivingBoards") != null);
+ responseDocument.Data.ManyValue.Should().HaveCount(2);
+ responseDocument.Data.ManyValue.Should().OnlyContain(resource => resource.Type == "SwimmingPools");
+ responseDocument.Data.ManyValue.Should().OnlyContain(resource => resource.Attributes.Should().ContainKey2("IsIndoor").WhoseValue != null);
+ responseDocument.Data.ManyValue.Should().OnlyContain(resource => resource.Relationships.Should().ContainKey2("WaterSlides").WhoseValue != null);
+ responseDocument.Data.ManyValue.Should().OnlyContain(resource => resource.Relationships.Should().ContainKey2("DivingBoards").WhoseValue != null);
decimal height = pools[1].DivingBoards[0].HeightInMeters;
+ string link = $"/PublicApi/DivingBoards/{pools[1].DivingBoards[0].StringId}";
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].Type.Should().Be("DivingBoards");
responseDocument.Included[0].Id.Should().Be(pools[1].DivingBoards[0].StringId);
- responseDocument.Included[0].Attributes.ShouldContainKey("HeightInMeters").With(value => value.As().Should().BeApproximately(height));
+ responseDocument.Included[0].Attributes.Should().ContainKey("HeightInMeters").WhoseValue.As().Should().BeApproximately(height);
responseDocument.Included[0].Relationships.Should().BeNull();
- responseDocument.Included[0].Links.ShouldNotBeNull().Self.Should().Be($"/PublicApi/DivingBoards/{pools[1].DivingBoards[0].StringId}");
+ responseDocument.Included[0].Links.RefShould().NotBeNull().And.Subject.Self.Should().Be(link);
- responseDocument.Meta.ShouldContainKey("Total").With(value =>
+ responseDocument.Meta.Should().ContainKey("Total").WhoseValue.With(value =>
{
JsonElement element = value.Should().BeOfType().Subject;
element.GetInt32().Should().Be(2);
@@ -87,10 +88,10 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Type.Should().Be("WaterSlides");
responseDocument.Data.ManyValue[0].Id.Should().Be(pool.WaterSlides[1].StringId);
- responseDocument.Data.ManyValue[0].Attributes.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue[0].Attributes.Should().HaveCount(1);
}
[Fact]
@@ -119,25 +120,25 @@ public async Task Can_create_resource()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Created);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Type.Should().Be("SwimmingPools");
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("IsIndoor").With(value => value.Should().Be(newPool.IsIndoor));
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("IsIndoor").WhoseValue.Should().Be(newPool.IsIndoor);
- int newPoolId = int.Parse(responseDocument.Data.SingleValue.Id.ShouldNotBeNull());
+ int newPoolId = int.Parse(responseDocument.Data.SingleValue.Id.Should().NotBeNull().And.Subject);
string poolLink = $"{route}/{newPoolId}";
- responseDocument.Data.SingleValue.Relationships.ShouldContainKey("WaterSlides").With(value =>
+ responseDocument.Data.SingleValue.Relationships.Should().ContainKey("WaterSlides").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{poolLink}/relationships/WaterSlides");
value.Links.Related.Should().Be($"{poolLink}/WaterSlides");
});
- responseDocument.Data.SingleValue.Relationships.ShouldContainKey("DivingBoards").With(value =>
+ responseDocument.Data.SingleValue.Relationships.Should().ContainKey("DivingBoards").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
value.Links.Self.Should().Be($"{poolLink}/relationships/DivingBoards");
value.Links.Related.Should().Be($"{poolLink}/DivingBoards");
});
@@ -164,12 +165,12 @@ public async Task Applies_casing_convention_on_error_stack_trace()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Failed to deserialize request body.");
- error.Meta.ShouldContainKey("StackTrace");
+ error.Meta.Should().ContainKey("StackTrace");
}
[Fact]
@@ -205,13 +206,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.UnprocessableEntity);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.UnprocessableEntity);
error.Title.Should().Be("Input validation failed.");
error.Detail.Should().Be("The field HeightInMeters must be between 1 and 20.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Pointer.Should().Be("/data/attributes/HeightInMeters");
}
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/NonJsonApiControllers/NonJsonApiControllerTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/NonJsonApiControllers/NonJsonApiControllerTests.cs
index bd5029736b..7c0c50cfc6 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/NonJsonApiControllers/NonJsonApiControllerTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/NonJsonApiControllers/NonJsonApiControllerTests.cs
@@ -31,7 +31,7 @@ public async Task Get_skips_middleware_and_formatters()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be("application/json; charset=utf-8");
string responseText = await httpResponse.Content.ReadAsStringAsync();
@@ -60,7 +60,7 @@ public async Task Post_skips_middleware_and_formatters()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be("text/plain; charset=utf-8");
string responseText = await httpResponse.Content.ReadAsStringAsync();
@@ -81,7 +81,7 @@ public async Task Post_skips_error_handler()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be("text/plain; charset=utf-8");
string responseText = await httpResponse.Content.ReadAsStringAsync();
@@ -110,7 +110,7 @@ public async Task Put_skips_middleware_and_formatters()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be("text/plain; charset=utf-8");
string responseText = await httpResponse.Content.ReadAsStringAsync();
@@ -131,7 +131,7 @@ public async Task Patch_skips_middleware_and_formatters()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be("text/plain; charset=utf-8");
string responseText = await httpResponse.Content.ReadAsStringAsync();
@@ -152,7 +152,7 @@ public async Task Delete_skips_middleware_and_formatters()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- httpResponse.Content.Headers.ContentType.ShouldNotBeNull();
+ httpResponse.Content.Headers.ContentType.Should().NotBeNull();
httpResponse.Content.Headers.ContentType.ToString().Should().Be("text/plain; charset=utf-8");
string responseText = await httpResponse.Content.ReadAsStringAsync();
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/IsUpperCase/IsUpperCaseFilterParseTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/IsUpperCase/IsUpperCaseFilterParseTests.cs
index 864b599a37..05265f3e46 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/IsUpperCase/IsUpperCaseFilterParseTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/IsUpperCase/IsUpperCaseFilterParseTests.cs
@@ -51,13 +51,13 @@ public void Reader_Read_Fails(string parameterName, string parameterValue, strin
InvalidQueryStringParameterException exception = action.Should().ThrowExactly().And;
exception.ParameterName.Should().Be(parameterName);
- exception.Errors.ShouldHaveCount(1);
+ exception.Errors.Should().HaveCount(1);
ErrorObject error = exception.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified filter is invalid.");
error.Detail.Should().Be($"{errorMessage} {parameterValueSource}");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be(parameterName);
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/IsUpperCase/IsUpperCaseFilterTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/IsUpperCase/IsUpperCaseFilterTests.cs
index 024930c98b..fa991e7544 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/IsUpperCase/IsUpperCaseFilterTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/IsUpperCase/IsUpperCaseFilterTests.cs
@@ -51,7 +51,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Type.Should().Be("blogs");
responseDocument.Data.ManyValue[0].Id.Should().Be(blogs[1].StringId);
}
@@ -86,7 +86,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Type.Should().Be("blogPosts");
responseDocument.Data.ManyValue[0].Id.Should().Be(blog.Posts[1].StringId);
}
@@ -118,11 +118,11 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Type.Should().Be("blogs");
responseDocument.Data.ManyValue[0].Id.Should().Be(blogs[1].StringId);
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].Type.Should().Be("blogPosts");
responseDocument.Included[0].Id.Should().Be(blogs[1].Posts[1].StringId);
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/StringLength/LengthFilterParseTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/StringLength/LengthFilterParseTests.cs
index dfecb680db..92c104f5a4 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/StringLength/LengthFilterParseTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/StringLength/LengthFilterParseTests.cs
@@ -51,13 +51,13 @@ public void Reader_Read_Fails(string parameterName, string parameterValue, strin
InvalidQueryStringParameterException exception = action.Should().ThrowExactly().And;
exception.ParameterName.Should().Be(parameterName);
- exception.Errors.ShouldHaveCount(1);
+ exception.Errors.Should().HaveCount(1);
ErrorObject error = exception.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified filter is invalid.");
error.Detail.Should().Be($"{errorMessage} {parameterValueSource}");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be(parameterName);
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/StringLength/LengthFilterTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/StringLength/LengthFilterTests.cs
index dcd6b493ea..da5091eed5 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/StringLength/LengthFilterTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/StringLength/LengthFilterTests.cs
@@ -51,7 +51,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Type.Should().Be("blogs");
responseDocument.Data.ManyValue[0].Id.Should().Be(blogs[1].StringId);
}
@@ -86,7 +86,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Type.Should().Be("blogPosts");
responseDocument.Data.ManyValue[0].Id.Should().Be(blog.Posts[1].StringId);
}
@@ -118,11 +118,11 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Type.Should().Be("blogs");
responseDocument.Data.ManyValue[0].Id.Should().Be(blogs[1].StringId);
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].Type.Should().Be("blogPosts");
responseDocument.Included[0].Id.Should().Be(blogs[1].Posts[1].StringId);
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/StringLength/LengthSortParseTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/StringLength/LengthSortParseTests.cs
index e7e16196e4..9e55ecb901 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/StringLength/LengthSortParseTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/StringLength/LengthSortParseTests.cs
@@ -47,13 +47,13 @@ public void Reader_Read_Fails(string parameterName, string parameterValue, strin
InvalidQueryStringParameterException exception = action.Should().ThrowExactly().And;
exception.ParameterName.Should().Be(parameterName);
- exception.Errors.ShouldHaveCount(1);
+ exception.Errors.Should().HaveCount(1);
ErrorObject error = exception.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified sort is invalid.");
error.Detail.Should().Be($"{errorMessage} {parameterValueSource}");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be(parameterName);
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/StringLength/LengthSortTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/StringLength/LengthSortTests.cs
index 1ac9b05824..078d48029a 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/StringLength/LengthSortTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/StringLength/LengthSortTests.cs
@@ -51,7 +51,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(2);
+ responseDocument.Data.ManyValue.Should().HaveCount(2);
responseDocument.Data.ManyValue[0].Type.Should().Be("blogs");
responseDocument.Data.ManyValue[0].Id.Should().Be(blogs[1].StringId);
@@ -90,7 +90,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(3);
+ responseDocument.Data.ManyValue.Should().HaveCount(3);
responseDocument.Data.ManyValue[0].Type.Should().Be("blogPosts");
responseDocument.Data.ManyValue[0].Id.Should().Be(blog.Posts[2].StringId);
@@ -129,7 +129,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(2);
+ responseDocument.Data.ManyValue.Should().HaveCount(2);
responseDocument.Data.ManyValue[0].Type.Should().Be("blogs");
responseDocument.Data.ManyValue[0].Id.Should().Be(blogs[1].StringId);
@@ -137,7 +137,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Data.ManyValue[1].Type.Should().Be("blogs");
responseDocument.Data.ManyValue[1].Id.Should().Be(blogs[0].StringId);
- responseDocument.Included.ShouldHaveCount(2);
+ responseDocument.Included.Should().HaveCount(2);
responseDocument.Included[0].Type.Should().Be("blogPosts");
responseDocument.Included[0].Id.Should().Be(blogs[1].Posts[1].StringId);
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/Sum/SumFilterParseTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/Sum/SumFilterParseTests.cs
index d8ad2f04c3..853ac7ac4d 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/Sum/SumFilterParseTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/Sum/SumFilterParseTests.cs
@@ -58,13 +58,13 @@ public void Reader_Read_Fails(string parameterName, string parameterValue, strin
InvalidQueryStringParameterException exception = action.Should().ThrowExactly().And;
exception.ParameterName.Should().Be(parameterName);
- exception.Errors.ShouldHaveCount(1);
+ exception.Errors.Should().HaveCount(1);
ErrorObject error = exception.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified filter is invalid.");
error.Detail.Should().Be($"{errorMessage} {parameterValueSource}");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be(parameterName);
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/Sum/SumFilterTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/Sum/SumFilterTests.cs
index d866964b82..0f25661029 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/Sum/SumFilterTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/Sum/SumFilterTests.cs
@@ -57,7 +57,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Type.Should().Be("blogPosts");
responseDocument.Data.ManyValue[0].Id.Should().Be(posts[1].StringId);
}
@@ -95,7 +95,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Type.Should().Be("blogPosts");
responseDocument.Data.ManyValue[0].Id.Should().Be(posts[1].StringId);
}
@@ -130,11 +130,11 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Type.Should().Be("blogs");
responseDocument.Data.ManyValue[0].Id.Should().Be(blog.StringId);
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].Type.Should().Be("blogPosts");
responseDocument.Included[0].Id.Should().Be(blog.Posts[1].StringId);
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/TimeOffset/TimeOffsetTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/TimeOffset/TimeOffsetTests.cs
index 3cee32fe8b..329af80475 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/TimeOffset/TimeOffsetTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/CustomFunctions/TimeOffset/TimeOffsetTests.cs
@@ -72,7 +72,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
int[] matchingRowIndices = matchingRowsExpected.Split(',').Select(int.Parse).ToArray();
- responseDocument.Data.ManyValue.ShouldHaveCount(matchingRowIndices.Length);
+ responseDocument.Data.ManyValue.Should().HaveCount(matchingRowIndices.Length);
foreach (int rowIndex in matchingRowIndices)
{
@@ -93,13 +93,13 @@ public async Task Cannot_filter_comparison_on_missing_relative_time()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified filter is invalid.");
error.Detail.Should().Be($"Time offset between quotes expected. {parameterValue}");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("filter");
}
@@ -116,13 +116,13 @@ public async Task Cannot_filter_comparison_on_invalid_relative_time()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified filter is invalid.");
error.Detail.Should().Be($"Failed to convert '*' of type 'String' to type 'TimeSpan'. {parameterValue}");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("filter");
}
@@ -139,13 +139,13 @@ public async Task Cannot_filter_comparison_on_relative_time_at_left_side()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified filter is invalid.");
error.Detail.Should().Be($"The 'timeOffset' function can only be used at the right side of comparisons. {parameterValue}");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("filter");
}
@@ -162,13 +162,13 @@ public async Task Cannot_filter_any_on_relative_time()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified filter is invalid.");
error.Detail.Should().Be($"Value between quotes expected. {parameterValue}");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("filter");
}
@@ -185,13 +185,13 @@ public async Task Cannot_filter_text_match_on_relative_time()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified filter is invalid.");
error.Detail.Should().Be($"Attribute of type 'String' expected. {parameterValue}");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("filter");
}
@@ -225,7 +225,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(calendar.Appointments.ElementAt(1).StringId);
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Filtering/FilterDataTypeTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Filtering/FilterDataTypeTests.cs
index 9bacb8097e..2022505e0d 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Filtering/FilterDataTypeTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Filtering/FilterDataTypeTests.cs
@@ -71,8 +71,8 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey(attributeName).With(value => value.Should().Be(value));
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey(attributeName).WhoseValue.Should().Be(propertyValue);
}
[Fact]
@@ -99,8 +99,8 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("someDecimal").With(value => value.Should().Be(resource.SomeDecimal));
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("someDecimal").WhoseValue.Should().Be(resource.SomeDecimal);
}
[Fact]
@@ -127,8 +127,8 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("someGuid").With(value => value.Should().Be(resource.SomeGuid));
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("someGuid").WhoseValue.Should().Be(resource.SomeGuid);
}
[Fact]
@@ -155,10 +155,9 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("someDateTimeInLocalZone")
- .With(value => value.Should().Be(resource.SomeDateTimeInLocalZone));
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("someDateTimeInLocalZone").WhoseValue.Should().Be(resource.SomeDateTimeInLocalZone);
}
[Fact]
@@ -185,10 +184,9 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("someDateTimeInUtcZone")
- .With(value => value.Should().Be(resource.SomeDateTimeInUtcZone));
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("someDateTimeInUtcZone").WhoseValue.Should().Be(resource.SomeDateTimeInUtcZone);
}
[Fact]
@@ -215,8 +213,8 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("someDateTimeOffset").With(value => value.Should().Be(resource.SomeDateTimeOffset));
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("someDateTimeOffset").WhoseValue.Should().Be(resource.SomeDateTimeOffset);
}
[Fact]
@@ -243,8 +241,8 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("someTimeSpan").With(value => value.Should().Be(resource.SomeTimeSpan));
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("someTimeSpan").WhoseValue.Should().Be(resource.SomeTimeSpan);
}
[Fact]
@@ -271,8 +269,8 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("someDateOnly").With(value => value.Should().Be(resource.SomeDateOnly));
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("someDateOnly").WhoseValue.Should().Be(resource.SomeDateOnly);
}
[Fact]
@@ -299,8 +297,8 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("someTimeOnly").With(value => value.Should().Be(resource.SomeTimeOnly));
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("someTimeOnly").WhoseValue.Should().Be(resource.SomeTimeOnly);
}
[Fact]
@@ -328,13 +326,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified filter is invalid.");
error.Detail.Should().Be($"Failed to convert 'ABC' of type 'String' to type 'Int32'. {parameterValue}");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("filter");
}
@@ -392,8 +390,8 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey(attributeName).With(value => value.Should().BeNull());
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey(attributeName).WhoseValue.Should().BeNull();
}
[Theory]
@@ -446,7 +444,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey(attributeName).With(value => value.Should().NotBeNull());
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey(attributeName).WhoseValue.Should().NotBeNull();
}
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Filtering/FilterDepthTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Filtering/FilterDepthTests.cs
index 6b9f74be19..cf8f696929 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Filtering/FilterDepthTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Filtering/FilterDepthTests.cs
@@ -50,7 +50,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(posts[1].StringId);
}
@@ -74,13 +74,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified filter is invalid.");
error.Detail.Should().Be($"{CollectionErrorMessage} Failed at position 1: ^filter");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("filter");
}
@@ -107,7 +107,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(blog.Posts[1].StringId);
}
@@ -131,13 +131,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified filter is invalid.");
error.Detail.Should().Be($"{CollectionErrorMessage} Failed at position 1: ^filter");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("filter");
}
@@ -166,11 +166,11 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(2);
+ responseDocument.Data.ManyValue.Should().HaveCount(2);
responseDocument.Data.ManyValue.Should().ContainSingle(post => post.Id == posts[1].StringId);
responseDocument.Data.ManyValue.Should().ContainSingle(post => post.Id == posts[2].StringId);
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].Id.Should().Be(posts[1].Author!.StringId);
}
@@ -196,7 +196,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(blogs[1].StringId);
}
@@ -225,7 +225,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(blogs[1].StringId);
}
@@ -251,7 +251,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(posts[1].StringId);
}
@@ -282,7 +282,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(blogs[1].StringId);
}
@@ -310,9 +310,9 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].Id.Should().Be(blog.Posts[1].StringId);
}
@@ -340,9 +340,9 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].Id.Should().Be(blog.Owner.Posts[1].StringId);
}
@@ -373,9 +373,9 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(2);
+ responseDocument.Data.ManyValue.Should().HaveCount(2);
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].Id.Should().Be(posts[1].Labels.First().StringId);
}
@@ -404,9 +404,9 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
- responseDocument.Included.ShouldHaveCount(2);
+ responseDocument.Included.Should().HaveCount(2);
responseDocument.Included[0].Type.Should().Be("webAccounts");
responseDocument.Included[0].Id.Should().Be(blog.Owner.StringId);
@@ -439,7 +439,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(2);
+ responseDocument.Data.ManyValue.Should().HaveCount(2);
responseDocument.Data.ManyValue[0].Id.Should().Be(posts[0].StringId);
responseDocument.Data.ManyValue[1].Id.Should().Be(posts[2].StringId);
}
@@ -480,7 +480,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(2);
+ responseDocument.Data.ManyValue.Should().HaveCount(2);
responseDocument.Data.ManyValue[0].Id.Should().Be(posts[0].StringId);
responseDocument.Data.ManyValue[1].Id.Should().Be(posts[1].StringId);
}
@@ -522,10 +522,10 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(blogs[1].StringId);
- responseDocument.Included.ShouldHaveCount(3);
+ responseDocument.Included.Should().HaveCount(3);
responseDocument.Included[0].Type.Should().Be("webAccounts");
responseDocument.Included[0].Id.Should().Be(blogs[1].Owner!.StringId);
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Filtering/FilterOperatorTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Filtering/FilterOperatorTests.cs
index 222ce40af4..791c5ad18b 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Filtering/FilterOperatorTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Filtering/FilterOperatorTests.cs
@@ -83,10 +83,10 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("someString").With(value => value.Should().Be(resource.SomeString));
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("someString").WhoseValue.Should().Be(resource.SomeString);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be("http://localhost/filterableResources?filter=equals(someString,'This%2c+that+%26+more+%2b+some')");
responseDocument.Links.First.Should().Be("http://localhost/filterableResources?filter=equals(someString,%27This,%20that%20%26%20more%20%2B%20some%27)");
}
@@ -122,9 +122,9 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("someInt32").With(value => value.Should().Be(resource.SomeInt32));
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("otherInt32").With(value => value.Should().Be(resource.OtherInt32));
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("someInt32").WhoseValue.Should().Be(resource.SomeInt32);
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("otherInt32").WhoseValue.Should().Be(resource.OtherInt32);
}
[Fact]
@@ -158,9 +158,9 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("someNullableInt32").With(value => value.Should().Be(resource.SomeNullableInt32));
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("otherNullableInt32").With(value => value.Should().Be(resource.OtherNullableInt32));
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("someNullableInt32").WhoseValue.Should().Be(resource.SomeNullableInt32);
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("otherNullableInt32").WhoseValue.Should().Be(resource.OtherNullableInt32);
}
[Fact]
@@ -194,9 +194,9 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("someInt32").With(value => value.Should().Be(resource.SomeInt32));
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("someNullableInt32").With(value => value.Should().Be(resource.SomeNullableInt32));
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("someInt32").WhoseValue.Should().Be(resource.SomeInt32);
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("someNullableInt32").WhoseValue.Should().Be(resource.SomeNullableInt32);
}
[Fact]
@@ -230,9 +230,9 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("someInt32").With(value => value.Should().Be(resource.SomeInt32));
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("someNullableInt32").With(value => value.Should().Be(resource.SomeNullableInt32));
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("someInt32").WhoseValue.Should().Be(resource.SomeInt32);
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("someNullableInt32").WhoseValue.Should().Be(resource.SomeNullableInt32);
}
[Fact]
@@ -266,9 +266,9 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("someInt32").With(value => value.Should().Be(resource.SomeInt32));
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("someUnsignedInt64").With(value => value.Should().Be(resource.SomeUnsignedInt64));
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("someInt32").WhoseValue.Should().Be(resource.SomeInt32);
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("someUnsignedInt64").WhoseValue.Should().Be(resource.SomeUnsignedInt64);
}
[Fact]
@@ -283,7 +283,7 @@ public async Task Cannot_filter_equality_on_two_attributes_of_incompatible_types
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
@@ -330,8 +330,8 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("someInt32").With(value => value.Should().Be(resource.SomeInt32));
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("someInt32").WhoseValue.Should().Be(resource.SomeInt32);
}
[Theory]
@@ -372,8 +372,8 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("someDouble").With(value => value.Should().Be(resource.SomeDouble));
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("someDouble").WhoseValue.Should().Be(resource.SomeDouble);
}
[Theory]
@@ -422,10 +422,9 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("someDateTimeInLocalZone")
- .With(value => value.Should().Be(resource.SomeDateTimeInLocalZone));
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("someDateTimeInLocalZone").WhoseValue.Should().Be(resource.SomeDateTimeInLocalZone);
}
[Theory]
@@ -474,10 +473,9 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("someDateTimeInUtcZone")
- .With(value => value.Should().Be(resource.SomeDateTimeInUtcZone));
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("someDateTimeInUtcZone").WhoseValue.Should().Be(resource.SomeDateTimeInUtcZone);
}
[Theory]
@@ -526,9 +524,9 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("someDateTimeOffset").With(value => value.Should().Be(resource.SomeDateTimeOffset));
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("someDateTimeOffset").WhoseValue.Should().Be(resource.SomeDateTimeOffset);
}
[Theory]
@@ -568,8 +566,8 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("someTimeSpan").With(value => value.Should().Be(resource.SomeTimeSpan));
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("someTimeSpan").WhoseValue.Should().Be(resource.SomeTimeSpan);
}
[Theory]
@@ -617,8 +615,8 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("someDateOnly").With(value => value.Should().Be(resource.SomeDateOnly));
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("someDateOnly").WhoseValue.Should().Be(resource.SomeDateOnly);
}
[Theory]
@@ -658,8 +656,8 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("someTimeOnly").With(value => value.Should().Be(resource.SomeTimeOnly));
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("someTimeOnly").WhoseValue.Should().Be(resource.SomeTimeOnly);
}
[Theory]
@@ -696,8 +694,8 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("someString").With(value => value.Should().Be(resource.SomeString));
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("someString").WhoseValue.Should().Be(resource.SomeString);
}
[Fact]
@@ -713,13 +711,13 @@ public async Task Cannot_filter_text_match_on_non_string_value()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified filter is invalid.");
error.Detail.Should().Be($"Attribute of type 'String' expected. {parameterValue}");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("filter");
}
@@ -736,13 +734,13 @@ public async Task Cannot_filter_text_match_on_nested_non_string_value()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified filter is invalid.");
error.Detail.Should().Be($"Attribute of type 'String' expected. {parameterValue}");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("filter");
}
@@ -778,8 +776,8 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("someString").With(value => value.Should().Be(resource.SomeString));
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("someString").WhoseValue.Should().Be(resource.SomeString);
}
[Fact]
@@ -809,7 +807,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(resource.StringId);
}
@@ -856,7 +854,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(resources[1].StringId);
}
@@ -888,7 +886,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(resource.StringId);
}
@@ -925,7 +923,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(resource.Children.ElementAt(0).StringId);
}
@@ -942,13 +940,13 @@ public async Task Cannot_filter_on_count_with_incompatible_value()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified filter is invalid.");
error.Detail.Should().Be($"Failed to convert 'ABC' of type 'String' to type 'Int32'. {parameterValue}");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("filter");
}
@@ -989,7 +987,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(resource1.StringId);
}
@@ -1029,7 +1027,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(resource1.StringId);
}
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Filtering/FilterTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Filtering/FilterTests.cs
index 5f5c0cbeef..2f6c468f08 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Filtering/FilterTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Filtering/FilterTests.cs
@@ -37,13 +37,13 @@ public async Task Cannot_filter_in_unknown_scope()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified filter is invalid.");
error.Detail.Should().Be($"Field '{Unknown.Relationship}' does not exist on resource type 'webAccounts'. {parameterName}");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be(parameterName.Text);
}
@@ -60,13 +60,13 @@ public async Task Cannot_filter_in_unknown_nested_scope()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified filter is invalid.");
error.Detail.Should().Be($"Field '{Unknown.Relationship}' does not exist on resource type 'blogPosts'. {parameterName}");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be(parameterName.Text);
}
@@ -83,13 +83,13 @@ public async Task Cannot_filter_on_attribute_with_blocked_capability()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified filter is invalid.");
error.Detail.Should().Be($"Filtering on attribute 'dateOfBirth' is not allowed. {parameterValue}");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("filter");
}
@@ -106,13 +106,13 @@ public async Task Cannot_filter_on_ToMany_relationship_with_blocked_capability()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified filter is invalid.");
error.Detail.Should().Be($"Filtering on relationship 'appointments' is not allowed. {parameterValue}");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("filter");
}
@@ -137,8 +137,8 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(accounts[0].StringId);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("userName").With(value => value.Should().Be(accounts[0].UserName));
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("userName").WhoseValue.Should().Be(accounts[0].UserName);
}
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Includes/IncludeTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Includes/IncludeTests.cs
index 6030600791..3038ae9817 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Includes/IncludeTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Includes/IncludeTests.cs
@@ -49,14 +49,14 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(post.StringId);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("caption").With(value => value.Should().Be(post.Caption));
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("caption").WhoseValue.Should().Be(post.Caption);
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].Type.Should().Be("webAccounts");
responseDocument.Included[0].Id.Should().Be(post.Author.StringId);
- responseDocument.Included[0].Attributes.ShouldContainKey("displayName").With(value => value.Should().Be(post.Author.DisplayName));
+ responseDocument.Included[0].Attributes.Should().ContainKey("displayName").WhoseValue.Should().Be(post.Author.DisplayName);
}
[Fact]
@@ -80,14 +80,14 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Id.Should().Be(post.StringId);
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("caption").With(value => value.Should().Be(post.Caption));
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("caption").WhoseValue.Should().Be(post.Caption);
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].Type.Should().Be("webAccounts");
responseDocument.Included[0].Id.Should().Be(post.Author.StringId);
- responseDocument.Included[0].Attributes.ShouldContainKey("displayName").With(value => value.Should().Be(post.Author.DisplayName));
+ responseDocument.Included[0].Attributes.Should().ContainKey("displayName").WhoseValue.Should().Be(post.Author.DisplayName);
}
[Fact]
@@ -112,14 +112,14 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Id.Should().Be(blog.Owner.StringId);
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("displayName").With(value => value.Should().Be(blog.Owner.DisplayName));
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("displayName").WhoseValue.Should().Be(blog.Owner.DisplayName);
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].Type.Should().Be("blogPosts");
responseDocument.Included[0].Id.Should().Be(blog.Owner.Posts[0].StringId);
- responseDocument.Included[0].Attributes.ShouldContainKey("caption").With(value => value.Should().Be(blog.Owner.Posts[0].Caption));
+ responseDocument.Included[0].Attributes.Should().ContainKey("caption").WhoseValue.Should().Be(blog.Owner.Posts[0].Caption);
}
[Fact]
@@ -144,14 +144,14 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(blog.Posts[0].StringId);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("caption").With(value => value.Should().Be(blog.Posts[0].Caption));
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("caption").WhoseValue.Should().Be(blog.Posts[0].Caption);
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].Type.Should().Be("webAccounts");
responseDocument.Included[0].Id.Should().Be(blog.Posts[0].Author!.StringId);
- responseDocument.Included[0].Attributes.ShouldContainKey("displayName").With(value => value.Should().Be(blog.Posts[0].Author!.DisplayName));
+ responseDocument.Included[0].Attributes.Should().ContainKey("displayName").WhoseValue.Should().Be(blog.Posts[0].Author!.DisplayName);
}
[Fact]
@@ -176,19 +176,19 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Id.Should().Be(comment.StringId);
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("text").With(value => value.Should().Be(comment.Text));
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("text").WhoseValue.Should().Be(comment.Text);
- responseDocument.Included.ShouldHaveCount(2);
+ responseDocument.Included.Should().HaveCount(2);
responseDocument.Included[0].Type.Should().Be("webAccounts");
responseDocument.Included[0].Id.Should().Be(comment.Author.StringId);
- responseDocument.Included[0].Attributes.ShouldContainKey("userName").With(value => value.Should().Be(comment.Author.UserName));
+ responseDocument.Included[0].Attributes.Should().ContainKey("userName").WhoseValue.Should().Be(comment.Author.UserName);
responseDocument.Included[1].Type.Should().Be("blogPosts");
responseDocument.Included[1].Id.Should().Be(comment.Parent.StringId);
- responseDocument.Included[1].Attributes.ShouldContainKey("caption").With(value => value.Should().Be(comment.Parent.Caption));
+ responseDocument.Included[1].Attributes.Should().ContainKey("caption").WhoseValue.Should().Be(comment.Parent.Caption);
}
[Fact]
@@ -212,16 +212,16 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Id.Should().Be(post.StringId);
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("caption").With(value => value.Should().Be(post.Caption));
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("caption").WhoseValue.Should().Be(post.Caption);
DateTime createdAt = post.Comments.Single().CreatedAt;
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].Type.Should().Be("comments");
responseDocument.Included[0].Id.Should().Be(post.Comments.Single().StringId);
- responseDocument.Included[0].Attributes.ShouldContainKey("createdAt").With(value => value.Should().Be(createdAt));
+ responseDocument.Included[0].Attributes.Should().ContainKey("createdAt").WhoseValue.Should().Be(createdAt);
}
[Fact]
@@ -245,14 +245,14 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Id.Should().Be(post.StringId);
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("caption").With(value => value.Should().Be(post.Caption));
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("caption").WhoseValue.Should().Be(post.Caption);
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].Type.Should().Be("labels");
responseDocument.Included[0].Id.Should().Be(post.Labels.Single().StringId);
- responseDocument.Included[0].Attributes.ShouldContainKey("name").With(value => value.Should().Be(post.Labels.Single().Name));
+ responseDocument.Included[0].Attributes.Should().ContainKey("name").WhoseValue.Should().Be(post.Labels.Single().Name);
}
[Fact]
@@ -276,15 +276,15 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Type.Should().Be("labels");
responseDocument.Data.ManyValue[0].Id.Should().Be(post.Labels.ElementAt(0).StringId);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("name").With(value => value.Should().Be(post.Labels.Single().Name));
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("name").WhoseValue.Should().Be(post.Labels.Single().Name);
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].Type.Should().Be("blogPosts");
responseDocument.Included[0].Id.Should().Be(post.StringId);
- responseDocument.Included[0].Attributes.ShouldContainKey("caption").With(value => value.Should().Be(post.Caption));
+ responseDocument.Included[0].Attributes.Should().ContainKey("caption").WhoseValue.Should().Be(post.Caption);
}
[Fact]
@@ -310,25 +310,25 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Id.Should().Be(comment.StringId);
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("text").With(value => value.Should().Be(comment.Text));
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("text").WhoseValue.Should().Be(comment.Text);
- responseDocument.Included.ShouldHaveCount(3);
+ responseDocument.Included.Should().HaveCount(3);
responseDocument.Included[0].Type.Should().Be("blogPosts");
responseDocument.Included[0].Id.Should().Be(comment.Parent.StringId);
- responseDocument.Included[0].Attributes.ShouldContainKey("caption").With(value => value.Should().Be(comment.Parent.Caption));
+ responseDocument.Included[0].Attributes.Should().ContainKey("caption").WhoseValue.Should().Be(comment.Parent.Caption);
responseDocument.Included[1].Type.Should().Be("webAccounts");
responseDocument.Included[1].Id.Should().Be(comment.Parent.Author.StringId);
- responseDocument.Included[1].Attributes.ShouldContainKey("displayName").With(value => value.Should().Be(comment.Parent.Author.DisplayName));
+ responseDocument.Included[1].Attributes.Should().ContainKey("displayName").WhoseValue.Should().Be(comment.Parent.Author.DisplayName);
bool useDarkTheme = comment.Parent.Author.Preferences.UseDarkTheme;
responseDocument.Included[2].Type.Should().Be("accountPreferences");
responseDocument.Included[2].Id.Should().Be(comment.Parent.Author.Preferences.StringId);
- responseDocument.Included[2].Attributes.ShouldContainKey("useDarkTheme").With(value => value.Should().Be(useDarkTheme));
+ responseDocument.Included[2].Attributes.Should().ContainKey("useDarkTheme").WhoseValue.Should().Be(useDarkTheme);
}
[Fact]
@@ -353,21 +353,21 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Id.Should().Be(blog.StringId);
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("title").With(value => value.Should().Be(blog.Title));
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("title").WhoseValue.Should().Be(blog.Title);
- responseDocument.Included.ShouldHaveCount(2);
+ responseDocument.Included.Should().HaveCount(2);
responseDocument.Included[0].Type.Should().Be("blogPosts");
responseDocument.Included[0].Id.Should().Be(blog.Posts[0].StringId);
- responseDocument.Included[0].Attributes.ShouldContainKey("caption").With(value => value.Should().Be(blog.Posts[0].Caption));
+ responseDocument.Included[0].Attributes.Should().ContainKey("caption").WhoseValue.Should().Be(blog.Posts[0].Caption);
DateTime createdAt = blog.Posts[0].Comments.Single().CreatedAt;
responseDocument.Included[1].Type.Should().Be("comments");
responseDocument.Included[1].Id.Should().Be(blog.Posts[0].Comments.Single().StringId);
- responseDocument.Included[1].Attributes.ShouldContainKey("createdAt").With(value => value.Should().Be(createdAt));
+ responseDocument.Included[1].Attributes.Should().ContainKey("createdAt").WhoseValue.Should().Be(createdAt);
}
[Fact]
@@ -394,29 +394,29 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Id.Should().Be(comment.StringId);
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("text").With(value => value.Should().Be(comment.Text));
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("text").WhoseValue.Should().Be(comment.Text);
- responseDocument.Included.ShouldHaveCount(4);
+ responseDocument.Included.Should().HaveCount(4);
responseDocument.Included[0].Type.Should().Be("blogPosts");
responseDocument.Included[0].Id.Should().Be(comment.Parent.StringId);
- responseDocument.Included[0].Attributes.ShouldContainKey("caption").With(value => value.Should().Be(comment.Parent.Caption));
+ responseDocument.Included[0].Attributes.Should().ContainKey("caption").WhoseValue.Should().Be(comment.Parent.Caption);
responseDocument.Included[1].Type.Should().Be("comments");
responseDocument.Included[1].Id.Should().Be(comment.Parent.Comments.ElementAt(0).StringId);
- responseDocument.Included[1].Attributes.ShouldContainKey("text").With(value => value.Should().Be(comment.Parent.Comments.ElementAt(0).Text));
+ responseDocument.Included[1].Attributes.Should().ContainKey("text").WhoseValue.Should().Be(comment.Parent.Comments.ElementAt(0).Text);
string userName = comment.Parent.Comments.ElementAt(0).Author!.UserName;
responseDocument.Included[2].Type.Should().Be("webAccounts");
responseDocument.Included[2].Id.Should().Be(comment.Parent.Comments.ElementAt(0).Author!.StringId);
- responseDocument.Included[2].Attributes.ShouldContainKey("userName").With(value => value.Should().Be(userName));
+ responseDocument.Included[2].Attributes.Should().ContainKey("userName").WhoseValue.Should().Be(userName);
responseDocument.Included[3].Type.Should().Be("comments");
responseDocument.Included[3].Id.Should().Be(comment.Parent.Comments.ElementAt(1).StringId);
- responseDocument.Included[3].Attributes.ShouldContainKey("text").With(value => value.Should().Be(comment.Parent.Comments.ElementAt(1).Text));
+ responseDocument.Included[3].Attributes.Should().ContainKey("text").WhoseValue.Should().Be(comment.Parent.Comments.ElementAt(1).Text);
}
[Fact]
@@ -445,34 +445,34 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Id.Should().Be(blog.StringId);
- responseDocument.Data.SingleValue.Relationships.ShouldContainKey("posts").With(value =>
+ responseDocument.Data.SingleValue.Relationships.Should().ContainKey("posts").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Data.ManyValue.ShouldNotBeEmpty();
+ value.Should().NotBeNull();
+ value.Data.ManyValue.Should().NotBeEmpty();
value.Data.ManyValue[0].Type.Should().Be("blogPosts");
value.Data.ManyValue[0].Id.Should().Be(blog.Posts[0].StringId);
});
- responseDocument.Included.ShouldHaveCount(7);
+ responseDocument.Included.Should().HaveCount(7);
responseDocument.Included[0].Type.Should().Be("blogPosts");
responseDocument.Included[0].Id.Should().Be(blog.Posts[0].StringId);
- responseDocument.Included[0].Relationships.ShouldContainKey("author").With(value =>
+ responseDocument.Included[0].Relationships.Should().ContainKey("author").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Data.SingleValue.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Data.SingleValue.Should().NotBeNull();
value.Data.SingleValue.Type.Should().Be("webAccounts");
value.Data.SingleValue.Id.Should().Be(blog.Posts[0].Author!.StringId);
});
- responseDocument.Included[0].Relationships.ShouldContainKey("comments").With(value =>
+ responseDocument.Included[0].Relationships.Should().ContainKey("comments").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Data.ManyValue.ShouldNotBeEmpty();
+ value.Should().NotBeNull();
+ value.Data.ManyValue.Should().NotBeEmpty();
value.Data.ManyValue[0].Type.Should().Be("comments");
value.Data.ManyValue[0].Id.Should().Be(blog.Posts[0].Comments.ElementAt(0).StringId);
});
@@ -480,17 +480,17 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Included[1].Type.Should().Be("webAccounts");
responseDocument.Included[1].Id.Should().Be(blog.Posts[0].Author!.StringId);
- responseDocument.Included[1].Relationships.ShouldContainKey("preferences").With(value =>
+ responseDocument.Included[1].Relationships.Should().ContainKey("preferences").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Data.SingleValue.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Data.SingleValue.Should().NotBeNull();
value.Data.SingleValue.Type.Should().Be("accountPreferences");
value.Data.SingleValue.Id.Should().Be(blog.Posts[0].Author!.Preferences!.StringId);
});
- responseDocument.Included[1].Relationships.ShouldContainKey("posts").With(value =>
+ responseDocument.Included[1].Relationships.Should().ContainKey("posts").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
+ value.Should().NotBeNull();
value.Data.Value.Should().BeNull();
});
@@ -500,10 +500,10 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Included[3].Type.Should().Be("comments");
responseDocument.Included[3].Id.Should().Be(blog.Posts[0].Comments.ElementAt(0).StringId);
- responseDocument.Included[3].Relationships.ShouldContainKey("author").With(value =>
+ responseDocument.Included[3].Relationships.Should().ContainKey("author").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Data.SingleValue.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Data.SingleValue.Should().NotBeNull();
value.Data.SingleValue.Type.Should().Be("webAccounts");
value.Data.SingleValue.Id.Should().Be(blog.Posts[0].Comments.ElementAt(0).Author!.StringId);
});
@@ -511,41 +511,41 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Included[4].Type.Should().Be("webAccounts");
responseDocument.Included[4].Id.Should().Be(blog.Posts[0].Comments.ElementAt(0).Author!.StringId);
- responseDocument.Included[4].Relationships.ShouldContainKey("posts").With(value =>
+ responseDocument.Included[4].Relationships.Should().ContainKey("posts").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Data.ManyValue.ShouldNotBeEmpty();
+ value.Should().NotBeNull();
+ value.Data.ManyValue.Should().NotBeEmpty();
value.Data.ManyValue[0].Type.Should().Be("blogPosts");
value.Data.ManyValue[0].Id.Should().Be(blog.Posts[0].Comments.ElementAt(0).Author!.Posts[0].StringId);
});
- responseDocument.Included[4].Relationships.ShouldContainKey("preferences").With(value =>
+ responseDocument.Included[4].Relationships.Should().ContainKey("preferences").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
+ value.Should().NotBeNull();
value.Data.Value.Should().BeNull();
});
responseDocument.Included[5].Type.Should().Be("blogPosts");
responseDocument.Included[5].Id.Should().Be(blog.Posts[0].Comments.ElementAt(0).Author!.Posts[0].StringId);
- responseDocument.Included[5].Relationships.ShouldContainKey("author").With(value =>
+ responseDocument.Included[5].Relationships.Should().ContainKey("author").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
+ value.Should().NotBeNull();
value.Data.Value.Should().BeNull();
});
- responseDocument.Included[5].Relationships.ShouldContainKey("comments").With(value =>
+ responseDocument.Included[5].Relationships.Should().ContainKey("comments").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
+ value.Should().NotBeNull();
value.Data.Value.Should().BeNull();
});
responseDocument.Included[6].Type.Should().Be("comments");
responseDocument.Included[6].Id.Should().Be(blog.Posts[0].Comments.ElementAt(1).StringId);
- responseDocument.Included[5].Relationships.ShouldContainKey("author").With(value =>
+ responseDocument.Included[5].Relationships.Should().ContainKey("author").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
+ value.Should().NotBeNull();
value.Data.Value.Should().BeNull();
});
}
@@ -588,23 +588,23 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(2);
+ responseDocument.Data.ManyValue.Should().HaveCount(2);
responseDocument.Data.ManyValue[0].Type.Should().Be("blogPosts");
responseDocument.Data.ManyValue[0].Id.Should().Be(post1.StringId);
- responseDocument.Data.ManyValue[0].Relationships.ShouldContainKey("author").With(value =>
+ responseDocument.Data.ManyValue[0].Relationships.Should().ContainKey("author").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Data.SingleValue.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Data.SingleValue.Should().NotBeNull();
value.Data.SingleValue.Type.Should().Be("webAccounts");
value.Data.SingleValue.Id.Should().Be(author.StringId);
});
- responseDocument.Data.ManyValue[0].Relationships.ShouldContainKey("reviewer").With(value =>
+ responseDocument.Data.ManyValue[0].Relationships.Should().ContainKey("reviewer").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Data.SingleValue.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Data.SingleValue.Should().NotBeNull();
value.Data.SingleValue.Type.Should().Be("webAccounts");
value.Data.SingleValue.Id.Should().Be(reviewer.StringId);
});
@@ -612,38 +612,38 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Data.ManyValue[1].Type.Should().Be("blogPosts");
responseDocument.Data.ManyValue[1].Id.Should().Be(post2.StringId);
- responseDocument.Data.ManyValue[1].Relationships.ShouldContainKey("author").With(value =>
+ responseDocument.Data.ManyValue[1].Relationships.Should().ContainKey("author").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Data.SingleValue.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Data.SingleValue.Should().NotBeNull();
value.Data.SingleValue.Type.Should().Be("webAccounts");
value.Data.SingleValue.Id.Should().Be(person.StringId);
});
- responseDocument.Data.ManyValue[1].Relationships.ShouldContainKey("reviewer").With(value =>
+ responseDocument.Data.ManyValue[1].Relationships.Should().ContainKey("reviewer").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Data.SingleValue.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Data.SingleValue.Should().NotBeNull();
value.Data.SingleValue.Type.Should().Be("webAccounts");
value.Data.SingleValue.Id.Should().Be(person.StringId);
});
- responseDocument.Included.ShouldHaveCount(7);
+ responseDocument.Included.Should().HaveCount(7);
responseDocument.Included[0].Type.Should().Be("webAccounts");
responseDocument.Included[0].Id.Should().Be(author.StringId);
- responseDocument.Included[0].Relationships.ShouldContainKey("preferences").With(value =>
+ responseDocument.Included[0].Relationships.Should().ContainKey("preferences").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Data.SingleValue.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Data.SingleValue.Should().NotBeNull();
value.Data.SingleValue.Type.Should().Be("accountPreferences");
value.Data.SingleValue.Id.Should().Be(author.Preferences.StringId);
});
- responseDocument.Included[0].Relationships.ShouldContainKey("loginAttempts").With(value =>
+ responseDocument.Included[0].Relationships.Should().ContainKey("loginAttempts").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
+ value.Should().NotBeNull();
value.Data.Value.Should().BeNull();
});
@@ -653,16 +653,16 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Included[2].Type.Should().Be("webAccounts");
responseDocument.Included[2].Id.Should().Be(reviewer.StringId);
- responseDocument.Included[2].Relationships.ShouldContainKey("preferences").With(value =>
+ responseDocument.Included[2].Relationships.Should().ContainKey("preferences").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
+ value.Should().NotBeNull();
value.Data.Value.Should().BeNull();
});
- responseDocument.Included[2].Relationships.ShouldContainKey("loginAttempts").With(value =>
+ responseDocument.Included[2].Relationships.Should().ContainKey("loginAttempts").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Data.ManyValue.ShouldNotBeEmpty();
+ value.Should().NotBeNull();
+ value.Data.ManyValue.Should().NotBeEmpty();
value.Data.ManyValue[0].Type.Should().Be("loginAttempts");
value.Data.ManyValue[0].Id.Should().Be(reviewer.LoginAttempts[0].StringId);
});
@@ -673,18 +673,18 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Included[4].Type.Should().Be("webAccounts");
responseDocument.Included[4].Id.Should().Be(person.StringId);
- responseDocument.Included[4].Relationships.ShouldContainKey("preferences").With(value =>
+ responseDocument.Included[4].Relationships.Should().ContainKey("preferences").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Data.SingleValue.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Data.SingleValue.Should().NotBeNull();
value.Data.SingleValue.Type.Should().Be("accountPreferences");
value.Data.SingleValue.Id.Should().Be(person.Preferences.StringId);
});
- responseDocument.Included[4].Relationships.ShouldContainKey("loginAttempts").With(value =>
+ responseDocument.Included[4].Relationships.Should().ContainKey("loginAttempts").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Data.ManyValue.ShouldNotBeEmpty();
+ value.Should().NotBeNull();
+ value.Data.ManyValue.Should().NotBeEmpty();
value.Data.ManyValue[0].Type.Should().Be("loginAttempts");
value.Data.ManyValue[0].Id.Should().Be(person.LoginAttempts[0].StringId);
});
@@ -720,27 +720,27 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Type.Should().Be("blogs");
responseDocument.Data.SingleValue.Id.Should().Be(blog.StringId);
- responseDocument.Data.SingleValue.Relationships.ShouldContainKey("posts").With(value =>
+ responseDocument.Data.SingleValue.Relationships.Should().ContainKey("posts").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Data.ManyValue.ShouldNotBeEmpty();
+ value.Should().NotBeNull();
+ value.Data.ManyValue.Should().NotBeEmpty();
value.Data.ManyValue[0].Type.Should().Be("blogPosts");
value.Data.ManyValue[0].Id.Should().Be(blog.Posts[0].StringId);
});
- responseDocument.Included.ShouldHaveCount(2);
+ responseDocument.Included.Should().HaveCount(2);
responseDocument.Included[0].Type.Should().Be("blogPosts");
responseDocument.Included[0].Id.Should().Be(blog.Posts[0].StringId);
- responseDocument.Included[0].Relationships.ShouldContainKey("author").With(value =>
+ responseDocument.Included[0].Relationships.Should().ContainKey("author").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Data.SingleValue.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Data.SingleValue.Should().NotBeNull();
value.Data.SingleValue.Type.Should().Be("webAccounts");
value.Data.SingleValue.Id.Should().Be(blog.Posts[0].Author!.StringId);
});
@@ -748,10 +748,10 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Included[1].Type.Should().Be("webAccounts");
responseDocument.Included[1].Id.Should().Be(blog.Posts[0].Author!.StringId);
- responseDocument.Included[1].Relationships.ShouldContainKey("posts").With(value =>
+ responseDocument.Included[1].Relationships.Should().ContainKey("posts").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Data.ManyValue.ShouldNotBeEmpty();
+ value.Should().NotBeNull();
+ value.Data.ManyValue.Should().NotBeEmpty();
value.Data.ManyValue[0].Type.Should().Be("blogPosts");
value.Data.ManyValue[0].Id.Should().Be(blog.Posts[0].StringId);
});
@@ -781,14 +781,14 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Id.Should().Be(post.StringId);
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("caption").With(value => value.Should().Be(post.Caption));
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("caption").WhoseValue.Should().Be(post.Caption);
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].Type.Should().Be("webAccounts");
responseDocument.Included[0].Id.Should().Be(account.StringId);
- responseDocument.Included[0].Attributes.ShouldContainKey("userName").With(value => value.Should().Be(account.UserName));
+ responseDocument.Included[0].Attributes.Should().ContainKey("userName").WhoseValue.Should().Be(account.UserName);
}
[Fact]
@@ -816,12 +816,12 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(2);
+ responseDocument.Data.ManyValue.Should().HaveCount(2);
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].Type.Should().Be("webAccounts");
responseDocument.Included[0].Id.Should().Be(account.StringId);
- responseDocument.Included[0].Attributes.ShouldContainKey("userName").With(value => value.Should().Be(account.UserName));
+ responseDocument.Included[0].Attributes.Should().ContainKey("userName").WhoseValue.Should().Be(account.UserName);
}
[Fact]
@@ -844,7 +844,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Included.Should().BeEmpty();
}
@@ -862,13 +862,13 @@ public async Task Cannot_include_unknown_relationship()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified include is invalid.");
error.Detail.Should().Be($"Relationship '{Unknown.Relationship}' does not exist on resource type 'webAccounts'. {parameterValue}");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("include");
}
@@ -885,13 +885,13 @@ public async Task Cannot_include_unknown_nested_relationship()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified include is invalid.");
error.Detail.Should().Be($"Relationship '{Unknown.Relationship}' does not exist on resource type 'blogPosts'. {parameterValue}");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("include");
}
@@ -908,13 +908,13 @@ public async Task Cannot_include_relationship_when_inclusion_blocked()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified include is invalid.");
error.Detail.Should().Be($"Including the relationship 'parent' on 'blogPosts' is not allowed. {parameterValue}");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("include");
}
@@ -931,13 +931,13 @@ public async Task Cannot_include_relationship_when_nested_inclusion_blocked()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified include is invalid.");
error.Detail.Should().Be($"Including the relationship 'parent' on 'blogPosts' is not allowed. {parameterValue}");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("include");
}
@@ -962,11 +962,11 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Type.Should().Be("calendars");
responseDocument.Data.SingleValue.Id.Should().Be(calendar.StringId);
- responseDocument.Data.SingleValue.Relationships.ShouldNotBeEmpty();
+ responseDocument.Data.SingleValue.Relationships.Should().NotBeEmpty();
responseDocument.Data.SingleValue.Relationships.Should().NotContainKey("appointments");
responseDocument.Included.Should().BeEmpty();
@@ -1001,21 +1001,21 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Type.Should().Be("calendars");
responseDocument.Data.SingleValue.Id.Should().Be(calendar.StringId);
- responseDocument.Data.SingleValue.Relationships.ShouldContainKey("mostRecentAppointment").With(value =>
+ responseDocument.Data.SingleValue.Relationships.Should().ContainKey("mostRecentAppointment").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Data.SingleValue.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Data.SingleValue.Should().NotBeNull();
value.Data.SingleValue.Type.Should().Be("appointments");
value.Data.SingleValue.Id.Should().Be(calendar.MostRecentAppointment.StringId);
});
responseDocument.Data.SingleValue.Relationships.Should().NotContainKey("appointments");
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].Type.Should().Be("appointments");
responseDocument.Included[0].Id.Should().Be(calendar.MostRecentAppointment.StringId);
}
@@ -1042,26 +1042,26 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(2);
+ responseDocument.Data.ManyValue.Should().HaveCount(2);
- responseDocument.Data.ManyValue.Should().OnlyContain(resource => resource.Relationships.ShouldContainKey("reviewer") != null);
+ responseDocument.Data.ManyValue.Should().OnlyContain(resource => resource.Relationships.Should().ContainKey2("reviewer").WhoseValue != null);
ResourceObject[] postWithReviewer = responseDocument.Data.ManyValue
.Where(resource => resource.Relationships!.First(pair => pair.Key == "reviewer").Value!.Data.SingleValue != null).ToArray();
- postWithReviewer.ShouldHaveCount(1);
- postWithReviewer[0].Attributes.ShouldContainKey("caption").With(value => value.Should().Be(posts[0].Caption));
+ postWithReviewer.Should().HaveCount(1);
+ postWithReviewer[0].Attributes.Should().ContainKey("caption").WhoseValue.Should().Be(posts[0].Caption);
ResourceObject[] postWithoutReviewer = responseDocument.Data.ManyValue
.Where(resource => resource.Relationships!.First(pair => pair.Key == "reviewer").Value!.Data.SingleValue == null).ToArray();
- postWithoutReviewer.ShouldHaveCount(1);
- postWithoutReviewer[0].Attributes.ShouldContainKey("caption").With(value => value.Should().Be(posts[1].Caption));
+ postWithoutReviewer.Should().HaveCount(1);
+ postWithoutReviewer[0].Attributes.Should().ContainKey("caption").WhoseValue.Should().Be(posts[1].Caption);
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].Type.Should().Be("webAccounts");
responseDocument.Included[0].Id.Should().Be(posts[0].Reviewer!.StringId);
- responseDocument.Included[0].Attributes.ShouldContainKey("userName").With(value => value.Should().Be(posts[0].Reviewer!.UserName));
+ responseDocument.Included[0].Attributes.Should().ContainKey("userName").WhoseValue.Should().Be(posts[0].Reviewer!.UserName);
}
[Fact]
@@ -1104,13 +1104,13 @@ public async Task Cannot_exceed_configured_maximum_inclusion_depth()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified include is invalid.");
error.Detail.Should().Be($"Including 'posts.comments' exceeds the maximum inclusion depth of 1. {parameterValue}");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("include");
}
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Pagination/PaginationWithTotalCountTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Pagination/PaginationWithTotalCountTests.cs
index 6cb1b9f851..64255c0b54 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Pagination/PaginationWithTotalCountTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Pagination/PaginationWithTotalCountTests.cs
@@ -54,10 +54,10 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(posts[1].StringId);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.First.Should().Be($"{HostPrefix}/blogPosts?page%5Bsize%5D=1");
responseDocument.Links.Last.Should().Be($"{HostPrefix}/blogPosts?page%5Bnumber%5D=2&page%5Bsize%5D=1");
@@ -85,13 +85,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified pagination is invalid.");
error.Detail.Should().Be($"{CollectionErrorMessage} Failed at position 1: ^page[number]");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("page[number]");
}
@@ -119,10 +119,10 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(blog.Posts[2].StringId);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.First.Should().Be($"{HostPrefix}/blogs/{blog.StringId}/posts?page%5Bsize%5D=1");
responseDocument.Links.Last.Should().Be($"{HostPrefix}/blogs/{blog.StringId}/posts?page%5Bnumber%5D=5&page%5Bsize%5D=1");
@@ -151,10 +151,10 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(account.LoginAttempts[1].StringId);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.First.Should().Be($"{HostPrefix}/webAccounts/{account.StringId}/loginAttempts?page%5Bsize%5D=1");
responseDocument.Links.Last.Should().BeNull();
@@ -182,13 +182,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified pagination is invalid.");
error.Detail.Should().Be($"{CollectionErrorMessage} Failed at position 1: ^page[size]");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("page[size]");
}
@@ -215,13 +215,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(2);
- responseDocument.Included.ShouldHaveCount(2);
+ responseDocument.Data.ManyValue.Should().HaveCount(2);
+ responseDocument.Included.Should().HaveCount(2);
responseDocument.Included[0].Id.Should().Be(blogs[0].Posts[1].StringId);
responseDocument.Included[1].Id.Should().Be(blogs[1].Posts[1].StringId);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.First.Should().Be($"{HostPrefix}/blogs?include=posts&page%5Bsize%5D=2,posts%3A1");
responseDocument.Links.Last.Should().Be($"{HostPrefix}/blogs?include=posts&page%5Bnumber%5D=2&page%5Bsize%5D=2,posts%3A1");
@@ -251,11 +251,11 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Data.SingleValue.Should().NotBeNull();
+ responseDocument.Included.Should().HaveCount(1);
responseDocument.Included[0].Id.Should().Be(blog.Owner.Posts[1].StringId);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.First.Should().BeNull();
responseDocument.Links.Last.Should().BeNull();
@@ -284,10 +284,10 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(blog.Posts[1].StringId);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.First.Should().Be($"{HostPrefix}/blogs/{blog.StringId}/relationships/posts?page%5Bsize%5D=1");
responseDocument.Links.Last.Should().Be($"{HostPrefix}/blogs/{blog.StringId}/relationships/posts?page%5Bnumber%5D=4&page%5Bsize%5D=1");
@@ -316,12 +316,12 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(account.LoginAttempts[1].StringId);
string basePath = $"{HostPrefix}/webAccounts/{account.StringId}/relationships/loginAttempts";
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.First.Should().Be($"{basePath}?page%5Bsize%5D=1");
responseDocument.Links.Last.Should().BeNull();
@@ -352,13 +352,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(2);
- responseDocument.Included.ShouldHaveCount(2);
+ responseDocument.Data.ManyValue.Should().HaveCount(2);
+ responseDocument.Included.Should().HaveCount(2);
responseDocument.Included[0].Id.Should().Be(posts[0].Labels.ElementAt(1).StringId);
responseDocument.Included[1].Id.Should().Be(posts[1].Labels.ElementAt(1).StringId);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.First.Should().Be($"{HostPrefix}/blogPosts?include=labels&page%5Bsize%5D=labels%3A1");
responseDocument.Links.Last.Should().Be(responseDocument.Links.First);
@@ -388,10 +388,10 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(post.Labels.ElementAt(1).StringId);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.First.Should().Be($"{HostPrefix}/blogPosts/{post.StringId}/relationships/labels?page%5Bsize%5D=1");
responseDocument.Links.Last.Should().Be($"{HostPrefix}/blogPosts/{post.StringId}/relationships/labels?page%5Bnumber%5D=4&page%5Bsize%5D=1");
@@ -424,10 +424,10 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(blogs[1].StringId);
- responseDocument.Included.ShouldHaveCount(3);
+ responseDocument.Included.Should().HaveCount(3);
responseDocument.Included[0].Type.Should().Be("webAccounts");
responseDocument.Included[0].Id.Should().Be(blogs[1].Owner!.StringId);
@@ -440,7 +440,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
const string linkPrefix = $"{HostPrefix}/blogs?include=owner.posts.comments";
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.First.Should().Be($"{linkPrefix}&page%5Bsize%5D=1,owner.posts%3A1,owner.posts.comments%3A1");
responseDocument.Links.Last.Should().Be($"{linkPrefix}&page%5Bsize%5D=1,owner.posts%3A1,owner.posts.comments%3A1&page%5Bnumber%5D=2");
@@ -461,13 +461,13 @@ public async Task Cannot_paginate_in_unknown_scope()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified pagination is invalid.");
error.Detail.Should().Be($"Field '{Unknown.Relationship}' does not exist on resource type 'webAccounts'. {parameterValue}");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("page[number]");
}
@@ -484,13 +484,13 @@ public async Task Cannot_paginate_in_unknown_nested_scope()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified pagination is invalid.");
error.Detail.Should().Be($"Field '{Unknown.Relationship}' does not exist on resource type 'blogPosts'. {parameterValue}");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("page[size]");
}
@@ -519,13 +519,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(2);
+ responseDocument.Data.ManyValue.Should().HaveCount(2);
responseDocument.Data.ManyValue[0].Id.Should().Be(blog.Posts[0].StringId);
responseDocument.Data.ManyValue[1].Id.Should().Be(blog.Posts[1].StringId);
- responseDocument.Included.ShouldHaveCount(4);
+ responseDocument.Included.Should().HaveCount(4);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.First.Should().Be(responseDocument.Links.Self);
responseDocument.Links.Last.Should().Be($"{responseDocument.Links.Self}&page%5Bnumber%5D=2");
@@ -557,9 +557,9 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(25);
+ responseDocument.Data.ManyValue.Should().HaveCount(25);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.First.Should().BeNull();
responseDocument.Links.Last.Should().BeNull();
@@ -603,8 +603,8 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.ShouldNotBeNull();
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Should().NotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
if (firstLink != null)
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Pagination/PaginationWithoutTotalCountTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Pagination/PaginationWithoutTotalCountTests.cs
index 29d9aa146a..1bcfb0c6f5 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Pagination/PaginationWithoutTotalCountTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Pagination/PaginationWithoutTotalCountTests.cs
@@ -44,7 +44,7 @@ public async Task Hides_pagination_links_when_unconstrained_page_size()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.First.Should().BeNull();
responseDocument.Links.Last.Should().BeNull();
@@ -73,7 +73,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.First.Should().Be($"{HostPrefix}/blogPosts?page%5Bsize%5D=8&foo=bar");
responseDocument.Links.Last.Should().BeNull();
@@ -99,7 +99,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.First.Should().Be($"{HostPrefix}/blogPosts?foo=bar");
responseDocument.Links.Last.Should().BeNull();
@@ -130,7 +130,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
responseDocument.Data.ManyValue.Should().HaveCountLessThan(DefaultPageSize);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.First.Should().Be($"{HostPrefix}/blogPosts?foo=bar");
responseDocument.Links.Last.Should().BeNull();
@@ -159,9 +159,9 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(DefaultPageSize);
+ responseDocument.Data.ManyValue.Should().HaveCount(DefaultPageSize);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.First.Should().Be($"{HostPrefix}/blogPosts?foo=bar");
responseDocument.Links.Last.Should().BeNull();
@@ -190,9 +190,9 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(DefaultPageSize);
+ responseDocument.Data.ManyValue.Should().HaveCount(DefaultPageSize);
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be($"{HostPrefix}{route}");
responseDocument.Links.First.Should().Be($"{HostPrefix}/webAccounts/{account.StringId}/posts?foo=bar");
responseDocument.Links.Last.Should().BeNull();
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Pagination/RangeValidationTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Pagination/RangeValidationTests.cs
index f551f4b108..687bffdc19 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Pagination/RangeValidationTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Pagination/RangeValidationTests.cs
@@ -39,13 +39,13 @@ public async Task Cannot_use_negative_page_number()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified pagination is invalid.");
error.Detail.Should().Be($"Page number cannot be negative or zero. {parameterValue}");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("page[number]");
}
@@ -62,13 +62,13 @@ public async Task Cannot_use_zero_page_number()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified pagination is invalid.");
error.Detail.Should().Be($"Page number cannot be negative or zero. {parameterValue}");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("page[number]");
}
@@ -122,13 +122,13 @@ public async Task Cannot_use_negative_page_size()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified pagination is invalid.");
error.Detail.Should().Be($"Page size cannot be negative. {parameterValue}");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("page[size]");
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Pagination/RangeValidationWithMaximumTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Pagination/RangeValidationWithMaximumTests.cs
index 5a8d375543..18141b6758 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Pagination/RangeValidationWithMaximumTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Pagination/RangeValidationWithMaximumTests.cs
@@ -68,13 +68,13 @@ public async Task Cannot_use_page_number_over_maximum()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified pagination is invalid.");
error.Detail.Should().Be($"Page number cannot be higher than {MaximumPageNumber}. {parameterValue}");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("page[number]");
}
@@ -91,13 +91,13 @@ public async Task Cannot_use_zero_page_size()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified pagination is invalid.");
error.Detail.Should().Be($"Page size cannot be unconstrained. {parameterValue}");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("page[size]");
}
@@ -143,13 +143,13 @@ public async Task Cannot_use_page_size_over_maximum()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified pagination is invalid.");
error.Detail.Should().Be($"Page size cannot be higher than {MaximumPageSize}. {parameterValue}");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("page[size]");
}
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/QueryStringTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/QueryStringTests.cs
index 4f6ee95ad2..8bc14467cd 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/QueryStringTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/QueryStringTests.cs
@@ -34,7 +34,7 @@ public async Task Cannot_use_unknown_query_string_parameter()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
@@ -43,7 +43,7 @@ public async Task Cannot_use_unknown_query_string_parameter()
error.Detail.Should().Be("Query string parameter 'foo' is unknown. " +
"Set 'AllowUnknownQueryStringParameters' to 'true' in options to ignore unknown parameters.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("foo");
}
@@ -100,13 +100,13 @@ public async Task Cannot_use_empty_query_string_parameter_value(string parameter
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("Missing query string parameter value.");
error.Detail.Should().Be($"Missing value for '{parameterName}' query string parameter.");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be(parameterName);
}
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/SerializerIgnoreConditionTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/SerializerIgnoreConditionTests.cs
index 89db819a2c..7fa5aa7fcb 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/SerializerIgnoreConditionTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/SerializerIgnoreConditionTests.cs
@@ -53,13 +53,13 @@ await RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
- responseDocument.Included.ShouldHaveCount(1);
+ responseDocument.Data.SingleValue.Should().NotBeNull();
+ responseDocument.Included.Should().HaveCount(1);
if (expectNullValueInDocument)
{
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("timeZone");
- responseDocument.Included[0].Attributes.ShouldContainKey("description");
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("timeZone");
+ responseDocument.Included[0].Attributes.Should().ContainKey("description");
}
else
{
@@ -69,8 +69,8 @@ await RunOnDatabaseAsync(async dbContext =>
if (expectDefaultValueInDocument)
{
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("defaultAppointmentDurationInMinutes");
- responseDocument.Included[0].Attributes.ShouldContainKey("startTime");
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("defaultAppointmentDurationInMinutes");
+ responseDocument.Included[0].Attributes.Should().ContainKey("startTime");
}
else
{
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Sorting/SortTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Sorting/SortTests.cs
index 0afda4b48e..45cd010379 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Sorting/SortTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/Sorting/SortTests.cs
@@ -47,7 +47,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(3);
+ responseDocument.Data.ManyValue.Should().HaveCount(3);
responseDocument.Data.ManyValue[0].Id.Should().Be(posts[1].StringId);
responseDocument.Data.ManyValue[1].Id.Should().Be(posts[0].StringId);
responseDocument.Data.ManyValue[2].Id.Should().Be(posts[2].StringId);
@@ -73,13 +73,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified sort is invalid.");
error.Detail.Should().Be($"{CollectionErrorMessage} Failed at position 1: ^sort");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("sort");
}
@@ -107,7 +107,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(3);
+ responseDocument.Data.ManyValue.Should().HaveCount(3);
responseDocument.Data.ManyValue[0].Id.Should().Be(blog.Posts[1].StringId);
responseDocument.Data.ManyValue[1].Id.Should().Be(blog.Posts[0].StringId);
responseDocument.Data.ManyValue[2].Id.Should().Be(blog.Posts[2].StringId);
@@ -133,13 +133,13 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified sort is invalid.");
error.Detail.Should().Be($"{CollectionErrorMessage} Failed at position 1: ^sort");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("sort");
}
@@ -166,7 +166,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(2);
+ responseDocument.Data.ManyValue.Should().HaveCount(2);
responseDocument.Data.ManyValue[0].Id.Should().Be(blogs[1].StringId);
responseDocument.Data.ManyValue[1].Id.Should().Be(blogs[0].StringId);
}
@@ -194,7 +194,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(2);
+ responseDocument.Data.ManyValue.Should().HaveCount(2);
responseDocument.Data.ManyValue[0].Id.Should().Be(posts[1].StringId);
responseDocument.Data.ManyValue[1].Id.Should().Be(posts[0].StringId);
}
@@ -223,10 +223,10 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Id.Should().Be(account.StringId);
- responseDocument.Included.ShouldHaveCount(3);
+ responseDocument.Included.Should().HaveCount(3);
responseDocument.Included[0].Id.Should().Be(account.Posts[1].StringId);
responseDocument.Included[1].Id.Should().Be(account.Posts[0].StringId);
responseDocument.Included[2].Id.Should().Be(account.Posts[2].StringId);
@@ -257,10 +257,10 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Id.Should().Be(blog.Owner.StringId);
- responseDocument.Included.ShouldHaveCount(3);
+ responseDocument.Included.Should().HaveCount(3);
responseDocument.Included[0].Id.Should().Be(blog.Owner.Posts[1].StringId);
responseDocument.Included[1].Id.Should().Be(blog.Owner.Posts[0].StringId);
responseDocument.Included[2].Id.Should().Be(blog.Owner.Posts[2].StringId);
@@ -290,10 +290,10 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Id.Should().Be(post.StringId);
- responseDocument.Included.ShouldHaveCount(3);
+ responseDocument.Included.Should().HaveCount(3);
responseDocument.Included[0].Id.Should().Be(post.Labels.ElementAt(1).StringId);
responseDocument.Included[1].Id.Should().Be(post.Labels.ElementAt(0).StringId);
responseDocument.Included[2].Id.Should().Be(post.Labels.ElementAt(2).StringId);
@@ -337,11 +337,11 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(2);
+ responseDocument.Data.ManyValue.Should().HaveCount(2);
responseDocument.Data.ManyValue[0].Id.Should().Be(blogs[1].StringId);
responseDocument.Data.ManyValue[1].Id.Should().Be(blogs[0].StringId);
- responseDocument.Included.ShouldHaveCount(7);
+ responseDocument.Included.Should().HaveCount(7);
responseDocument.Included[0].Type.Should().Be("blogPosts");
responseDocument.Included[0].Id.Should().Be(blogs[0].Posts[2].StringId);
@@ -391,7 +391,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(2);
+ responseDocument.Data.ManyValue.Should().HaveCount(2);
responseDocument.Data.ManyValue[0].Id.Should().Be(posts[1].StringId);
responseDocument.Data.ManyValue[1].Id.Should().Be(posts[0].StringId);
}
@@ -428,11 +428,11 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(2);
+ responseDocument.Data.ManyValue.Should().HaveCount(2);
responseDocument.Data.ManyValue[0].Id.Should().Be(blogs[1].StringId);
responseDocument.Data.ManyValue[1].Id.Should().Be(blogs[0].StringId);
- responseDocument.Included.ShouldHaveCount(5);
+ responseDocument.Included.Should().HaveCount(5);
responseDocument.Included[0].Type.Should().Be("webAccounts");
responseDocument.Included[0].Id.Should().Be(blogs[1].Owner!.StringId);
@@ -463,13 +463,13 @@ public async Task Cannot_sort_in_unknown_scope()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified sort is invalid.");
error.Detail.Should().Be($"Field '{Unknown.Relationship}' does not exist on resource type 'webAccounts'. {parameterName}");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be(parameterName.Text);
}
@@ -486,13 +486,13 @@ public async Task Cannot_sort_in_unknown_nested_scope()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified sort is invalid.");
error.Detail.Should().Be($"Field '{Unknown.Relationship}' does not exist on resource type 'blogPosts'. {parameterName}");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be(parameterName.Text);
}
@@ -509,13 +509,13 @@ public async Task Cannot_sort_on_attribute_with_blocked_capability()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified sort is invalid.");
error.Detail.Should().Be($"Sorting on attribute 'dateOfBirth' is not allowed. {parameterValue}");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("sort");
}
@@ -547,7 +547,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(3);
+ responseDocument.Data.ManyValue.Should().HaveCount(3);
responseDocument.Data.ManyValue[0].Id.Should().Be(accounts[1].StringId);
responseDocument.Data.ManyValue[1].Id.Should().Be(accounts[2].StringId);
responseDocument.Data.ManyValue[2].Id.Should().Be(accounts[0].StringId);
@@ -578,7 +578,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(4);
+ responseDocument.Data.ManyValue.Should().HaveCount(4);
responseDocument.Data.ManyValue[0].Id.Should().Be(accounts[2].StringId);
responseDocument.Data.ManyValue[1].Id.Should().Be(accounts[1].StringId);
responseDocument.Data.ManyValue[2].Id.Should().Be(accounts[0].StringId);
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/SparseFieldSets/SparseFieldSetTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/SparseFieldSets/SparseFieldSetTests.cs
index 1c7477d22d..088c6cc7bf 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/SparseFieldSets/SparseFieldSetTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/QueryStrings/SparseFieldSets/SparseFieldSetTests.cs
@@ -56,19 +56,19 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(post.StringId);
- responseDocument.Data.ManyValue[0].Attributes.ShouldHaveCount(1);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("caption").With(value => value.Should().Be(post.Caption));
- responseDocument.Data.ManyValue[0].Relationships.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue[0].Attributes.Should().HaveCount(1);
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("caption").WhoseValue.Should().Be(post.Caption);
+ responseDocument.Data.ManyValue[0].Relationships.Should().HaveCount(1);
- responseDocument.Data.ManyValue[0].Relationships.ShouldContainKey("author").With(value =>
+ responseDocument.Data.ManyValue[0].Relationships.Should().ContainKey("author").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
+ value.Should().NotBeNull();
value.Data.Value.Should().BeNull();
- value.Links.ShouldNotBeNull();
- value.Links.Self.ShouldNotBeNull();
- value.Links.Related.ShouldNotBeNull();
+ value.Links.Should().NotBeNull();
+ value.Links.Self.Should().NotBeNull();
+ value.Links.Related.Should().NotBeNull();
});
var postCaptured = (BlogPost)store.Resources.Should().ContainSingle(resource => resource is BlogPost).Which;
@@ -100,10 +100,10 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(post.StringId);
- responseDocument.Data.ManyValue[0].Attributes.ShouldHaveCount(1);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("caption").With(value => value.Should().Be(post.Caption));
+ responseDocument.Data.ManyValue[0].Attributes.Should().HaveCount(1);
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("caption").WhoseValue.Should().Be(post.Caption);
responseDocument.Data.ManyValue[0].Relationships.Should().BeNull();
var postCaptured = (BlogPost)store.Resources.Should().ContainSingle(resource => resource is BlogPost).Which;
@@ -135,18 +135,18 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(post.StringId);
responseDocument.Data.ManyValue[0].Attributes.Should().BeNull();
- responseDocument.Data.ManyValue[0].Relationships.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue[0].Relationships.Should().HaveCount(1);
- responseDocument.Data.ManyValue[0].Relationships.ShouldContainKey("author").With(value =>
+ responseDocument.Data.ManyValue[0].Relationships.Should().ContainKey("author").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
+ value.Should().NotBeNull();
value.Data.Value.Should().BeNull();
- value.Links.ShouldNotBeNull();
- value.Links.Self.ShouldNotBeNull();
- value.Links.Related.ShouldNotBeNull();
+ value.Links.Should().NotBeNull();
+ value.Links.Self.Should().NotBeNull();
+ value.Links.Related.Should().NotBeNull();
});
var postCaptured = (BlogPost)store.Resources.Should().ContainSingle(resource => resource is BlogPost).Which;
@@ -178,26 +178,26 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(blog.Posts[0].StringId);
- responseDocument.Data.ManyValue[0].Attributes.ShouldHaveCount(1);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("caption").With(value => value.Should().Be(blog.Posts[0].Caption));
- responseDocument.Data.ManyValue[0].Relationships.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue[0].Attributes.Should().HaveCount(1);
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("caption").WhoseValue.Should().Be(blog.Posts[0].Caption);
+ responseDocument.Data.ManyValue[0].Relationships.Should().HaveCount(1);
- responseDocument.Data.ManyValue[0].Relationships.ShouldContainKey("labels").With(value =>
+ responseDocument.Data.ManyValue[0].Relationships.Should().ContainKey("labels").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
+ value.Should().NotBeNull();
value.Data.Value.Should().BeNull();
- value.Links.ShouldNotBeNull();
- value.Links.Self.ShouldNotBeNull();
- value.Links.Related.ShouldNotBeNull();
+ value.Links.Should().NotBeNull();
+ value.Links.Self.Should().NotBeNull();
+ value.Links.Related.Should().NotBeNull();
});
var blogCaptured = (Blog)store.Resources.Should().ContainSingle(resource => resource is Blog).Which;
blogCaptured.Id.Should().Be(blog.Id);
blogCaptured.Title.Should().BeNull();
- blogCaptured.Posts.ShouldHaveCount(1);
+ blogCaptured.Posts.Should().HaveCount(1);
blogCaptured.Posts[0].Caption.Should().Be(blog.Posts[0].Caption);
blogCaptured.Posts[0].Url.Should().BeNull();
}
@@ -225,19 +225,19 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Id.Should().Be(post.StringId);
- responseDocument.Data.SingleValue.Attributes.ShouldHaveCount(1);
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("url").With(value => value.Should().Be(post.Url));
- responseDocument.Data.SingleValue.Relationships.ShouldHaveCount(1);
+ responseDocument.Data.SingleValue.Attributes.Should().HaveCount(1);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("url").WhoseValue.Should().Be(post.Url);
+ responseDocument.Data.SingleValue.Relationships.Should().HaveCount(1);
- responseDocument.Data.SingleValue.Relationships.ShouldContainKey("author").With(value =>
+ responseDocument.Data.SingleValue.Relationships.Should().ContainKey("author").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
+ value.Should().NotBeNull();
value.Data.Value.Should().BeNull();
- value.Links.ShouldNotBeNull();
- value.Links.Self.ShouldNotBeNull();
- value.Links.Related.ShouldNotBeNull();
+ value.Links.Should().NotBeNull();
+ value.Links.Self.Should().NotBeNull();
+ value.Links.Related.Should().NotBeNull();
});
var postCaptured = (BlogPost)store.Resources.Should().ContainSingle(resource => resource is BlogPost).Which;
@@ -269,41 +269,41 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Id.Should().Be(post.StringId);
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("caption").With(value => value.Should().Be(post.Caption));
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("caption").WhoseValue.Should().Be(post.Caption);
- responseDocument.Data.SingleValue.Relationships.ShouldContainKey("author").With(value =>
+ responseDocument.Data.SingleValue.Relationships.Should().ContainKey("author").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Data.SingleValue.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Data.SingleValue.Should().NotBeNull();
value.Data.SingleValue.Id.Should().Be(post.Author.StringId);
- value.ShouldNotBeNull();
- value.Links.ShouldNotBeNull();
- value.Links.Self.ShouldNotBeNull();
- value.Links.Related.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Links.Should().NotBeNull();
+ value.Links.Self.Should().NotBeNull();
+ value.Links.Related.Should().NotBeNull();
});
- responseDocument.Included.ShouldHaveCount(1);
- responseDocument.Included[0].Attributes.ShouldHaveCount(2);
- responseDocument.Included[0].Attributes.ShouldContainKey("displayName").With(value => value.Should().Be(post.Author.DisplayName));
- responseDocument.Included[0].Attributes.ShouldContainKey("emailAddress").With(value => value.Should().Be(post.Author.EmailAddress));
- responseDocument.Included[0].Relationships.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
+ responseDocument.Included[0].Attributes.Should().HaveCount(2);
+ responseDocument.Included[0].Attributes.Should().ContainKey("displayName").WhoseValue.Should().Be(post.Author.DisplayName);
+ responseDocument.Included[0].Attributes.Should().ContainKey("emailAddress").WhoseValue.Should().Be(post.Author.EmailAddress);
+ responseDocument.Included[0].Relationships.Should().HaveCount(1);
- responseDocument.Included[0].Relationships.ShouldContainKey("preferences").With(value =>
+ responseDocument.Included[0].Relationships.Should().ContainKey("preferences").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
+ value.Should().NotBeNull();
value.Data.Value.Should().BeNull();
- value.Links.ShouldNotBeNull();
- value.Links.Self.ShouldNotBeNull();
- value.Links.Related.ShouldNotBeNull();
+ value.Links.Should().NotBeNull();
+ value.Links.Self.Should().NotBeNull();
+ value.Links.Related.Should().NotBeNull();
});
var postCaptured = (BlogPost)store.Resources.Should().ContainSingle(resource => resource is BlogPost).Which;
postCaptured.Id.Should().Be(post.Id);
postCaptured.Caption.Should().Be(post.Caption);
- postCaptured.Author.ShouldNotBeNull();
+ postCaptured.Author.Should().NotBeNull();
postCaptured.Author.DisplayName.Should().Be(post.Author.DisplayName);
postCaptured.Author.EmailAddress.Should().Be(post.Author.EmailAddress);
postCaptured.Author.UserName.Should().BeNull();
@@ -333,39 +333,39 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Id.Should().Be(account.StringId);
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("displayName").With(value => value.Should().Be(account.DisplayName));
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("displayName").WhoseValue.Should().Be(account.DisplayName);
- responseDocument.Data.SingleValue.Relationships.ShouldContainKey("posts").With(value =>
+ responseDocument.Data.SingleValue.Relationships.Should().ContainKey("posts").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Data.ManyValue.ShouldHaveCount(1);
+ value.Should().NotBeNull();
+ value.Data.ManyValue.Should().HaveCount(1);
value.Data.ManyValue[0].Id.Should().Be(account.Posts[0].StringId);
- value.Links.ShouldNotBeNull();
- value.Links.Self.ShouldNotBeNull();
- value.Links.Related.ShouldNotBeNull();
+ value.Links.Should().NotBeNull();
+ value.Links.Self.Should().NotBeNull();
+ value.Links.Related.Should().NotBeNull();
});
- responseDocument.Included.ShouldHaveCount(1);
- responseDocument.Included[0].Attributes.ShouldHaveCount(1);
- responseDocument.Included[0].Attributes.ShouldContainKey("caption").With(value => value.Should().Be(account.Posts[0].Caption));
- responseDocument.Included[0].Relationships.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
+ responseDocument.Included[0].Attributes.Should().HaveCount(1);
+ responseDocument.Included[0].Attributes.Should().ContainKey("caption").WhoseValue.Should().Be(account.Posts[0].Caption);
+ responseDocument.Included[0].Relationships.Should().HaveCount(1);
- responseDocument.Included[0].Relationships.ShouldContainKey("labels").With(value =>
+ responseDocument.Included[0].Relationships.Should().ContainKey("labels").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
+ value.Should().NotBeNull();
value.Data.Value.Should().BeNull();
- value.Links.ShouldNotBeNull();
- value.Links.Self.ShouldNotBeNull();
- value.Links.Related.ShouldNotBeNull();
+ value.Links.Should().NotBeNull();
+ value.Links.Self.Should().NotBeNull();
+ value.Links.Related.Should().NotBeNull();
});
var accountCaptured = (WebAccount)store.Resources.Should().ContainSingle(resource => resource is WebAccount).Which;
accountCaptured.Id.Should().Be(account.Id);
accountCaptured.DisplayName.Should().Be(account.DisplayName);
- accountCaptured.Posts.ShouldHaveCount(1);
+ accountCaptured.Posts.Should().HaveCount(1);
accountCaptured.Posts[0].Caption.Should().Be(account.Posts[0].Caption);
accountCaptured.Posts[0].Url.Should().BeNull();
}
@@ -395,40 +395,40 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Id.Should().Be(blog.Owner.StringId);
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("displayName").With(value => value.Should().Be(blog.Owner.DisplayName));
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("displayName").WhoseValue.Should().Be(blog.Owner.DisplayName);
- responseDocument.Data.SingleValue.Relationships.ShouldContainKey("posts").With(value =>
+ responseDocument.Data.SingleValue.Relationships.Should().ContainKey("posts").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Data.ManyValue.ShouldHaveCount(1);
+ value.Should().NotBeNull();
+ value.Data.ManyValue.Should().HaveCount(1);
value.Data.ManyValue[0].Id.Should().Be(blog.Owner.Posts[0].StringId);
- value.Links.ShouldNotBeNull();
- value.Links.Self.ShouldNotBeNull();
- value.Links.Related.ShouldNotBeNull();
+ value.Links.Should().NotBeNull();
+ value.Links.Self.Should().NotBeNull();
+ value.Links.Related.Should().NotBeNull();
});
- responseDocument.Included.ShouldHaveCount(1);
- responseDocument.Included[0].Attributes.ShouldHaveCount(1);
- responseDocument.Included[0].Attributes.ShouldContainKey("caption").With(value => value.Should().Be(blog.Owner.Posts[0].Caption));
- responseDocument.Included[0].Relationships.ShouldHaveCount(1);
+ responseDocument.Included.Should().HaveCount(1);
+ responseDocument.Included[0].Attributes.Should().HaveCount(1);
+ responseDocument.Included[0].Attributes.Should().ContainKey("caption").WhoseValue.Should().Be(blog.Owner.Posts[0].Caption);
+ responseDocument.Included[0].Relationships.Should().HaveCount(1);
- responseDocument.Included[0].Relationships.ShouldContainKey("comments").With(value =>
+ responseDocument.Included[0].Relationships.Should().ContainKey("comments").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
+ value.Should().NotBeNull();
value.Data.Value.Should().BeNull();
- value.Links.ShouldNotBeNull();
- value.Links.Self.ShouldNotBeNull();
- value.Links.Related.ShouldNotBeNull();
+ value.Links.Should().NotBeNull();
+ value.Links.Self.Should().NotBeNull();
+ value.Links.Related.Should().NotBeNull();
});
var blogCaptured = (Blog)store.Resources.Should().ContainSingle(resource => resource is Blog).Which;
blogCaptured.Id.Should().Be(blog.Id);
- blogCaptured.Owner.ShouldNotBeNull();
+ blogCaptured.Owner.Should().NotBeNull();
blogCaptured.Owner.DisplayName.Should().Be(blog.Owner.DisplayName);
- blogCaptured.Owner.Posts.ShouldHaveCount(1);
+ blogCaptured.Owner.Posts.Should().HaveCount(1);
blogCaptured.Owner.Posts[0].Caption.Should().Be(blog.Owner.Posts[0].Caption);
blogCaptured.Owner.Posts[0].Url.Should().BeNull();
}
@@ -457,30 +457,30 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Id.Should().Be(post.StringId);
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("caption").With(value => value.Should().Be(post.Caption));
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("caption").WhoseValue.Should().Be(post.Caption);
- responseDocument.Data.SingleValue.Relationships.ShouldContainKey("labels").With(value =>
+ responseDocument.Data.SingleValue.Relationships.Should().ContainKey("labels").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Data.ManyValue.ShouldHaveCount(1);
+ value.Should().NotBeNull();
+ value.Data.ManyValue.Should().HaveCount(1);
value.Data.ManyValue[0].Id.Should().Be(post.Labels.ElementAt(0).StringId);
- value.Links.ShouldNotBeNull();
- value.Links.Self.ShouldNotBeNull();
- value.Links.Related.ShouldNotBeNull();
+ value.Links.Should().NotBeNull();
+ value.Links.Self.Should().NotBeNull();
+ value.Links.Related.Should().NotBeNull();
});
- responseDocument.Included.ShouldHaveCount(1);
- responseDocument.Included[0].Attributes.ShouldHaveCount(1);
- responseDocument.Included[0].Attributes.ShouldContainKey("color").With(value => value.Should().Be(post.Labels.Single().Color));
+ responseDocument.Included.Should().HaveCount(1);
+ responseDocument.Included[0].Attributes.Should().HaveCount(1);
+ responseDocument.Included[0].Attributes.Should().ContainKey("color").WhoseValue.Should().Be(post.Labels.Single().Color);
responseDocument.Included[0].Relationships.Should().BeNull();
var postCaptured = (BlogPost)store.Resources.Should().ContainSingle(resource => resource is BlogPost).Which;
postCaptured.Id.Should().Be(post.Id);
postCaptured.Caption.Should().Be(post.Caption);
- postCaptured.Labels.ShouldHaveCount(1);
+ postCaptured.Labels.Should().HaveCount(1);
postCaptured.Labels.Single().Color.Should().Be(post.Labels.Single().Color);
postCaptured.Labels.Single().Name.Should().BeNull();
}
@@ -510,26 +510,26 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Type.Should().Be("blogs");
responseDocument.Data.SingleValue.Id.Should().Be(blog.StringId);
- responseDocument.Data.SingleValue.Attributes.ShouldHaveCount(1);
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("title").With(value => value.Should().Be(blog.Title));
+ responseDocument.Data.SingleValue.Attributes.Should().HaveCount(1);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("title").WhoseValue.Should().Be(blog.Title);
responseDocument.Data.SingleValue.Relationships.Should().BeNull();
- responseDocument.Included.ShouldHaveCount(2);
+ responseDocument.Included.Should().HaveCount(2);
responseDocument.Included[0].Type.Should().Be("webAccounts");
responseDocument.Included[0].Id.Should().Be(blog.Owner.StringId);
- responseDocument.Included[0].Attributes.ShouldHaveCount(2);
- responseDocument.Included[0].Attributes.ShouldContainKey("userName").With(value => value.Should().Be(blog.Owner.UserName));
- responseDocument.Included[0].Attributes.ShouldContainKey("displayName").With(value => value.Should().Be(blog.Owner.DisplayName));
+ responseDocument.Included[0].Attributes.Should().HaveCount(2);
+ responseDocument.Included[0].Attributes.Should().ContainKey("userName").WhoseValue.Should().Be(blog.Owner.UserName);
+ responseDocument.Included[0].Attributes.Should().ContainKey("displayName").WhoseValue.Should().Be(blog.Owner.DisplayName);
responseDocument.Included[0].Relationships.Should().BeNull();
responseDocument.Included[1].Type.Should().Be("blogPosts");
responseDocument.Included[1].Id.Should().Be(blog.Owner.Posts[0].StringId);
- responseDocument.Included[1].Attributes.ShouldHaveCount(1);
- responseDocument.Included[1].Attributes.ShouldContainKey("caption").With(value => value.Should().Be(blog.Owner.Posts[0].Caption));
+ responseDocument.Included[1].Attributes.Should().HaveCount(1);
+ responseDocument.Included[1].Attributes.Should().ContainKey("caption").WhoseValue.Should().Be(blog.Owner.Posts[0].Caption);
responseDocument.Included[1].Relationships.Should().BeNull();
var blogCaptured = (Blog)store.Resources.Should().ContainSingle(resource => resource is Blog).Which;
@@ -541,7 +541,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
blogCaptured.Owner.DisplayName.Should().Be(blog.Owner.DisplayName);
blogCaptured.Owner.DateOfBirth.Should().BeNull();
- blogCaptured.Owner.Posts.ShouldHaveCount(1);
+ blogCaptured.Owner.Posts.Should().HaveCount(1);
blogCaptured.Owner.Posts[0].Caption.Should().Be(blog.Owner.Posts[0].Caption);
blogCaptured.Owner.Posts[0].Url.Should().BeNull();
}
@@ -571,53 +571,53 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Type.Should().Be("blogs");
responseDocument.Data.SingleValue.Id.Should().Be(blog.StringId);
- responseDocument.Data.SingleValue.Attributes.ShouldHaveCount(1);
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("title").With(value => value.Should().Be(blog.Title));
- responseDocument.Data.SingleValue.Relationships.ShouldHaveCount(1);
+ responseDocument.Data.SingleValue.Attributes.Should().HaveCount(1);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("title").WhoseValue.Should().Be(blog.Title);
+ responseDocument.Data.SingleValue.Relationships.Should().HaveCount(1);
- responseDocument.Data.SingleValue.Relationships.ShouldContainKey("owner").With(value =>
+ responseDocument.Data.SingleValue.Relationships.Should().ContainKey("owner").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Data.SingleValue.ShouldNotBeNull();
+ value.Should().NotBeNull();
+ value.Data.SingleValue.Should().NotBeNull();
value.Data.SingleValue.Id.Should().Be(blog.Owner.StringId);
- value.Links.ShouldNotBeNull();
- value.Links.Self.ShouldNotBeNull();
- value.Links.Related.ShouldNotBeNull();
+ value.Links.Should().NotBeNull();
+ value.Links.Self.Should().NotBeNull();
+ value.Links.Related.Should().NotBeNull();
});
- responseDocument.Included.ShouldHaveCount(2);
+ responseDocument.Included.Should().HaveCount(2);
responseDocument.Included[0].Type.Should().Be("webAccounts");
responseDocument.Included[0].Id.Should().Be(blog.Owner.StringId);
- responseDocument.Included[0].Attributes.ShouldContainKey("userName").With(value => value.Should().Be(blog.Owner.UserName));
- responseDocument.Included[0].Attributes.ShouldContainKey("displayName").With(value => value.Should().Be(blog.Owner.DisplayName));
- responseDocument.Included[0].Attributes.ShouldContainKey("dateOfBirth").With(value => value.Should().Be(blog.Owner.DateOfBirth));
+ responseDocument.Included[0].Attributes.Should().ContainKey("userName").WhoseValue.Should().Be(blog.Owner.UserName);
+ responseDocument.Included[0].Attributes.Should().ContainKey("displayName").WhoseValue.Should().Be(blog.Owner.DisplayName);
+ responseDocument.Included[0].Attributes.Should().ContainKey("dateOfBirth").WhoseValue.Should().Be(blog.Owner.DateOfBirth);
- responseDocument.Included[0].Relationships.ShouldContainKey("posts").With(value =>
+ responseDocument.Included[0].Relationships.Should().ContainKey("posts").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
- value.Data.ManyValue.ShouldHaveCount(1);
+ value.Should().NotBeNull();
+ value.Data.ManyValue.Should().HaveCount(1);
value.Data.ManyValue[0].Id.Should().Be(blog.Owner.Posts[0].StringId);
- value.Links.ShouldNotBeNull();
- value.Links.Self.ShouldNotBeNull();
- value.Links.Related.ShouldNotBeNull();
+ value.Links.Should().NotBeNull();
+ value.Links.Self.Should().NotBeNull();
+ value.Links.Related.Should().NotBeNull();
});
responseDocument.Included[1].Type.Should().Be("blogPosts");
responseDocument.Included[1].Id.Should().Be(blog.Owner.Posts[0].StringId);
- responseDocument.Included[1].Attributes.ShouldContainKey("caption").With(value => value.Should().Be(blog.Owner.Posts[0].Caption));
- responseDocument.Included[1].Attributes.ShouldContainKey("url").With(value => value.Should().Be(blog.Owner.Posts[0].Url));
+ responseDocument.Included[1].Attributes.Should().ContainKey("caption").WhoseValue.Should().Be(blog.Owner.Posts[0].Caption);
+ responseDocument.Included[1].Attributes.Should().ContainKey("url").WhoseValue.Should().Be(blog.Owner.Posts[0].Url);
- responseDocument.Included[1].Relationships.ShouldContainKey("labels").With(value =>
+ responseDocument.Included[1].Relationships.Should().ContainKey("labels").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
+ value.Should().NotBeNull();
value.Data.Value.Should().BeNull();
- value.Links.ShouldNotBeNull();
- value.Links.Self.ShouldNotBeNull();
- value.Links.Related.ShouldNotBeNull();
+ value.Links.Should().NotBeNull();
+ value.Links.Self.Should().NotBeNull();
+ value.Links.Related.Should().NotBeNull();
});
var blogCaptured = (Blog)store.Resources.Should().ContainSingle(resource => resource is Blog).Which;
@@ -650,10 +650,10 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(post.StringId);
- responseDocument.Data.ManyValue[0].Attributes.ShouldHaveCount(1);
- responseDocument.Data.ManyValue[0].Attributes.ShouldContainKey("caption").With(value => value.Should().Be(post.Caption));
+ responseDocument.Data.ManyValue[0].Attributes.Should().HaveCount(1);
+ responseDocument.Data.ManyValue[0].Attributes.Should().ContainKey("caption").WhoseValue.Should().Be(post.Caption);
responseDocument.Data.ManyValue[0].Relationships.Should().BeNull();
var postCaptured = (BlogPost)store.Resources.Should().ContainSingle(resource => resource is BlogPost).Which;
@@ -686,7 +686,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.ManyValue.ShouldHaveCount(1);
+ responseDocument.Data.ManyValue.Should().HaveCount(1);
responseDocument.Data.ManyValue[0].Id.Should().Be(post.StringId);
responseDocument.Data.ManyValue[0].Attributes.Should().BeNull();
responseDocument.Data.ManyValue[0].Relationships.Should().BeNull();
@@ -709,13 +709,13 @@ public async Task Cannot_select_on_unknown_resource_type()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified fieldset is invalid.");
error.Detail.Should().Be($"Resource type '{Unknown.ResourceType}' does not exist. {parameterName}");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be(parameterName.Text);
}
@@ -734,13 +734,13 @@ public async Task Cannot_select_attribute_with_blocked_capability()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified fieldset is invalid.");
error.Detail.Should().Be($"Retrieving the attribute 'password' is not allowed. {parameterValue}");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("fields[webAccounts]");
}
@@ -759,13 +759,13 @@ public async Task Cannot_select_ToOne_relationship_with_blocked_capability()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified fieldset is invalid.");
error.Detail.Should().Be($"Retrieving the relationship 'person' is not allowed. {parameterValue}");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("fields[webAccounts]");
}
@@ -784,13 +784,13 @@ public async Task Cannot_select_ToMany_relationship_with_blocked_capability()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.BadRequest);
- responseDocument.Errors.ShouldHaveCount(1);
+ responseDocument.Errors.Should().HaveCount(1);
ErrorObject error = responseDocument.Errors[0];
error.StatusCode.Should().Be(HttpStatusCode.BadRequest);
error.Title.Should().Be("The specified fieldset is invalid.");
error.Detail.Should().Be($"Retrieving the relationship 'appointments' is not allowed. {parameterValue}");
- error.Source.ShouldNotBeNull();
+ error.Source.Should().NotBeNull();
error.Source.Parameter.Should().Be("fields[calendars]");
}
@@ -818,10 +818,10 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Id.Should().Be(blog.StringId);
- responseDocument.Data.SingleValue.Attributes.ShouldHaveCount(1);
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("showAdvertisements").With(value => value.Should().Be(blog.ShowAdvertisements));
+ responseDocument.Data.SingleValue.Attributes.Should().HaveCount(1);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("showAdvertisements").WhoseValue.Should().Be(blog.ShowAdvertisements);
responseDocument.Data.SingleValue.Relationships.Should().BeNull();
var blogCaptured = (Blog)store.Resources.Should().ContainSingle(resource => resource is Blog).Which;
@@ -853,20 +853,20 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Id.Should().Be(post.StringId);
- responseDocument.Data.SingleValue.Attributes.ShouldHaveCount(2);
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("caption").With(value => value.Should().Be(post.Caption));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("url").With(value => value.Should().Be(post.Url));
- responseDocument.Data.SingleValue.Relationships.ShouldHaveCount(1);
+ responseDocument.Data.SingleValue.Attributes.Should().HaveCount(2);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("caption").WhoseValue.Should().Be(post.Caption);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("url").WhoseValue.Should().Be(post.Url);
+ responseDocument.Data.SingleValue.Relationships.Should().HaveCount(1);
- responseDocument.Data.SingleValue.Relationships.ShouldContainKey("author").With(value =>
+ responseDocument.Data.SingleValue.Relationships.Should().ContainKey("author").WhoseValue.With(value =>
{
- value.ShouldNotBeNull();
+ value.Should().NotBeNull();
value.Data.Value.Should().BeNull();
- value.Links.ShouldNotBeNull();
- value.Links.Self.ShouldNotBeNull();
- value.Links.Related.ShouldNotBeNull();
+ value.Links.Should().NotBeNull();
+ value.Links.Self.Should().NotBeNull();
+ value.Links.Related.Should().NotBeNull();
});
var postCaptured = (BlogPost)store.Resources.Should().ContainSingle(resource => resource is BlogPost).Which;
@@ -896,11 +896,11 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.OK);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Id.Should().Be(account.StringId);
responseDocument.Data.SingleValue.Relationships.Should().BeNull();
- responseDocument.Included.ShouldHaveCount(2);
- responseDocument.Included.Should().OnlyContain(resourceObject => resourceObject.Type == "blogPosts");
+ responseDocument.Included.Should().HaveCount(2);
+ responseDocument.Included.Should().OnlyContain(resource => resource.Type == "blogPosts");
}
}
diff --git a/test/JsonApiDotNetCoreTests/IntegrationTests/ReadWrite/Creating/CreateResourceTests.cs b/test/JsonApiDotNetCoreTests/IntegrationTests/ReadWrite/Creating/CreateResourceTests.cs
index f3aa021389..de1623fb12 100644
--- a/test/JsonApiDotNetCoreTests/IntegrationTests/ReadWrite/Creating/CreateResourceTests.cs
+++ b/test/JsonApiDotNetCoreTests/IntegrationTests/ReadWrite/Creating/CreateResourceTests.cs
@@ -57,15 +57,15 @@ public async Task Sets_location_header_for_created_resource()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Created);
- string newWorkItemId = responseDocument.Data.SingleValue.ShouldNotBeNull().Id.ShouldNotBeNull();
+ string newWorkItemId = responseDocument.Data.SingleValue.RefShould().NotBeNull().And.Subject.Id.Should().NotBeNull().And.Subject;
httpResponse.Headers.Location.Should().Be($"http://localhost/workItems/{newWorkItemId}");
- responseDocument.Links.ShouldNotBeNull();
+ responseDocument.Links.Should().NotBeNull();
responseDocument.Links.Self.Should().Be("http://localhost/workItems/");
responseDocument.Links.First.Should().BeNull();
- responseDocument.Data.SingleValue.ShouldNotBeNull();
- responseDocument.Data.SingleValue.Links.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
+ responseDocument.Data.SingleValue.Links.Should().NotBeNull();
responseDocument.Data.SingleValue.Links.Self.Should().Be($"{httpResponse.Headers.Location}");
}
@@ -96,13 +96,13 @@ public async Task Can_create_resource_with_int_ID()
// Assert
httpResponse.ShouldHaveStatusCode(HttpStatusCode.Created);
- responseDocument.Data.SingleValue.ShouldNotBeNull();
+ responseDocument.Data.SingleValue.Should().NotBeNull();
responseDocument.Data.SingleValue.Type.Should().Be("workItems");
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("description").With(value => value.Should().Be(newWorkItem.Description));
- responseDocument.Data.SingleValue.Attributes.ShouldContainKey("dueAt").With(value => value.Should().Be(newWorkItem.DueAt));
- responseDocument.Data.SingleValue.Relationships.ShouldNotBeEmpty();
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("description").WhoseValue.Should().Be(newWorkItem.Description);
+ responseDocument.Data.SingleValue.Attributes.Should().ContainKey("dueAt").WhoseValue.Should().Be(newWorkItem.DueAt);
+ responseDocument.Data.SingleValue.Relationships.Should().NotBeEmpty();
- int newWorkItemId = int.Parse(responseDocument.Data.SingleValue.Id.ShouldNotBeNull());
+ int newWorkItemId = int.Parse(responseDocument.Data.SingleValue.Id.Should().NotBeNull().And.Subject);
await _testContext.RunOnDatabaseAsync(async dbContext =>
{
@@ -113,7 +113,7 @@ await _testContext.RunOnDatabaseAsync(async dbContext =>
});
PropertyInfo? property = typeof(WorkItem).GetProperty(nameof(Identifiable