internal static void CollectionEqual(ChecksumObjectCollection <DocumentChecksumObject> documentIds1, ChecksumObjectCollection <DocumentChecksumObject> documentIds2)
        {
            ChecksumObjectEqual(documentIds1, documentIds2);
            Assert.Equal(documentIds1.Count, documentIds2.Count);

            for (var i = 0; i < documentIds1.Count; i++)
            {
                SnapshotEqual(documentIds1[i], documentIds2[i]);
            }
        }
        internal static void CollectionEqual(ISolutionChecksumService service, ChecksumObjectCollection <ProjectChecksumObject> projectIds1, ChecksumObjectCollection <ProjectChecksumObject> projectIds2)
        {
            ChecksumObjectEqual(projectIds1, projectIds2);
            Assert.Equal(projectIds1.Count, projectIds2.Count);

            for (var i = 0; i < projectIds1.Count; i++)
            {
                SnapshotEqual(service, projectIds1[i], projectIds2[i]);
            }
        }
        internal static void ChecksumWithChildrenEqual <T>(ChecksumObjectCollection <T> checksums1, ChecksumObjectCollection <T> checksums2) where T : ChecksumWithChildren
        {
            SynchronizationObjectEqual(checksums1, checksums2);

            Assert.Equal(checksums1.Count, checksums2.Count);

            for (var i = 0; i < checksums1.Count; i++)
            {
                ChecksumWithChildrenEqual(checksums1[i], checksums2[i]);
            }
        }
        internal static void ProjectStatesEqual(IRemotableDataService service, ChecksumObjectCollection <ProjectStateChecksums> projectObjects1, ChecksumObjectCollection <ProjectStateChecksums> projectObjects2)
        {
            SynchronizationObjectEqual(projectObjects1, projectObjects2);

            Assert.Equal(projectObjects1.Count, projectObjects2.Count);

            for (var i = 0; i < projectObjects1.Count; i++)
            {
                ProjectStateEqual(service, projectObjects1[i], projectObjects2[i]);
            }
        }
        internal static void VerifyCollectionInService(IRemotableDataService snapshotService, ChecksumObjectCollection <DocumentStateChecksums> documents, int expectedCount)
        {
            VerifySynchronizationObjectInService(snapshotService, documents);
            Assert.Equal(documents.Count, expectedCount);

            foreach (var documentId in documents)
            {
                VerifySnapshotInService(snapshotService, documentId);
            }
        }
        internal static async Task VerifyCollectionInService(IRemotableDataService snapshotService, ChecksumObjectCollection <DocumentStateChecksums> documents, int expectedCount)
        {
            await VerifySynchronizationObjectInServiceAsync(snapshotService, documents).ConfigureAwait(false);

            Assert.Equal(documents.Count, expectedCount);

            foreach (var documentId in documents)
            {
                await VerifySnapshotInServiceAsync(snapshotService, documentId).ConfigureAwait(false);
            }
        }
        internal static void VerifyCollectionInService(ISolutionChecksumService snapshotService, ChecksumObjectCollection <DocumentChecksumObject> documents, int expectedCount)
        {
            VerifyChecksumObjectInService(snapshotService, documents);
            Assert.Equal(documents.Count, expectedCount);

            foreach (var documentId in documents)
            {
                VerifySnapshotInService(snapshotService, documentId);
            }
        }