public async Task PopulatesDocumentAndKey() { // Given TestDocument document = new TestDocument(_jsonContent); ParseJson json = new ParseJson("Foo", true); // When ImmutableArray <TestDocument> results = await ExecuteAsync(document, json); // Then TestDocument result = results.ShouldHaveSingleItem(); result.Count.ShouldBe(9); // Includes property metadata result["Email"].ShouldBe("*****@*****.**"); result["Active"].ShouldBe(true); result["CreatedDate"].ShouldBe("2013-01-20T00:00:00Z"); result["Roles"].ShouldBe(new object[] { "User", "Admin", 11 }); IMetadata nestedObject = result.GetMetadata("Description"); nestedObject.ShouldNotBeNull(); nestedObject["Height"].ShouldBe(5); IMetadata metadata = result.GetMetadata("Foo"); metadata.ShouldNotBeNull(); metadata["Email"].ShouldBe("*****@*****.**"); metadata["Active"].ShouldBe(true); metadata["CreatedDate"].ShouldBe("2013-01-20T00:00:00Z"); metadata["Roles"].ShouldBe(new object[] { "User", "Admin", 11 }); nestedObject = metadata.GetMetadata("Description"); nestedObject.ShouldNotBeNull(); nestedObject["Height"].ShouldBe(5); }