internal static async Task VerifyAssetAsync(
            ISolutionChecksumService service,
            Solution solution,
            DocumentChecksumObject documentId)
        {
            var info = await VerifyAssetSerializationAsync <DocumentChecksumObjectInfo>(
                service, documentId.Info, WellKnownChecksumObjects.DocumentChecksumObjectInfo,
                (v, k, s) => new Asset <DocumentChecksumObjectInfo>(v, k, s.SerializeDocumentSnapshotInfo)).ConfigureAwait(false);

            await VerifyAssetSerializationAsync <SourceText>(
                service, documentId.Text, WellKnownChecksumObjects.SourceText,
                (v, k, s) => new SourceTextAsset(s, CreateTextState(solution, v), new Checksum(v.GetChecksum()), k));
        }
 internal static void VerifySnapshotInService(ISolutionChecksumService snapshotService, DocumentChecksumObject documentId)
 {
     VerifyChecksumObjectInService(snapshotService, documentId);
     VerifyChecksumInService(snapshotService, documentId.Info, WellKnownChecksumObjects.DocumentChecksumObjectInfo);
     VerifyChecksumInService(snapshotService, documentId.Text, WellKnownChecksumObjects.SourceText);
 }
 internal static void SnapshotEqual(DocumentChecksumObject documentId1, DocumentChecksumObject documentId2)
 {
     ChecksumObjectEqual(documentId1, documentId2);
     Assert.Equal(documentId1.Info, documentId2.Info);
     Assert.Equal(documentId1.Text, documentId2.Text);
 }