Exemple #1
0
        public void GetMetadataForHeartBeatDoesSetsEventLevelWToInformationalWhenPlaceholdersHaveBeenCreated()
        {
            Mock <IPlaceholderCollection> mockPlaceholderDb = new Mock <IPlaceholderCollection>(MockBehavior.Strict);
            int placeholderCount = 0;

            mockPlaceholderDb.Setup(x => x.GetCount()).Returns(() => placeholderCount);
            mockPlaceholderDb.Setup(x => x.AddFile("test.txt", "1111122222333334444455555666667777788888")).Callback(() => ++ placeholderCount);
            mockPlaceholderDb.Setup(x => x.AddFile("test.txt", "2222233333444445555566666777778888899999")).Callback(() => ++ placeholderCount);
            mockPlaceholderDb.Setup(x => x.AddFile("test.txt", "3333344444555556666677777888889999900000")).Callback(() => ++ placeholderCount);
            using (MockBackgroundFileSystemTaskRunner backgroundTaskRunner = new MockBackgroundFileSystemTaskRunner())
                using (FileSystemCallbacks fileSystemCallbacks = new FileSystemCallbacks(
                           this.Repo.Context,
                           this.Repo.GitObjects,
                           RepoMetadata.Instance,
                           new MockBlobSizes(),
                           gitIndexProjection: null,
                           backgroundFileSystemTaskRunner: backgroundTaskRunner,
                           fileSystemVirtualizer: null,
                           placeholderDatabase: mockPlaceholderDb.Object))
                {
                    fileSystemCallbacks.OnPlaceholderFileCreated("test.txt", "1111122222333334444455555666667777788888", "GVFS.UnitTests.exe");

                    EventLevel    eventLevel = EventLevel.Verbose;
                    EventMetadata metadata   = fileSystemCallbacks.GetMetadataForHeartBeat(ref eventLevel);
                    eventLevel.ShouldEqual(EventLevel.Informational);

                    // "ModifiedPathsCount" should be 1 because ".gitattributes" is always present
                    metadata.Count.ShouldEqual(6);
                    metadata.ShouldContain("ProcessName1", "GVFS.UnitTests.exe");
                    metadata.ShouldContain("ProcessCount1", 1);
                    metadata.ShouldContain("ModifiedPathsCount", 1);
                    metadata.ShouldContain("PlaceholderCount", 1);
                    metadata.ShouldContain(nameof(RepoMetadata.Instance.EnlistmentId), RepoMetadata.Instance.EnlistmentId);
                    metadata.ContainsKey("PhysicalDiskInfo").ShouldBeTrue();

                    // Create more placeholders
                    fileSystemCallbacks.OnPlaceholderFileCreated("test.txt", "2222233333444445555566666777778888899999", "GVFS.UnitTests.exe2");
                    fileSystemCallbacks.OnPlaceholderFileCreated("test.txt", "3333344444555556666677777888889999900000", "GVFS.UnitTests.exe2");

                    eventLevel = EventLevel.Verbose;
                    metadata   = fileSystemCallbacks.GetMetadataForHeartBeat(ref eventLevel);
                    eventLevel.ShouldEqual(EventLevel.Informational);

                    metadata.Count.ShouldEqual(6);

                    // Only processes that have created placeholders since the last heartbeat should be named
                    metadata.ShouldContain("ProcessName1", "GVFS.UnitTests.exe2");
                    metadata.ShouldContain("ProcessCount1", 2);
                    metadata.ShouldContain("ModifiedPathsCount", 1);
                    metadata.ShouldContain("PlaceholderCount", 3);
                    metadata.ShouldContain(nameof(RepoMetadata.Instance.EnlistmentId), RepoMetadata.Instance.EnlistmentId);
                    metadata.ContainsKey("PhysicalDiskInfo").ShouldBeTrue();
                }

            mockPlaceholderDb.VerifyAll();
        }
Exemple #2
0
        public void GetMetadataForHeartBeatDoesNotChangeEventLevelWhenNoPlaceholderHaveBeenCreated()
        {
            Mock <IPlaceholderCollection> mockPlaceholderDb = new Mock <IPlaceholderCollection>(MockBehavior.Strict);

            mockPlaceholderDb.Setup(x => x.GetCount()).Returns(0);
            using (MockBackgroundFileSystemTaskRunner backgroundTaskRunner = new MockBackgroundFileSystemTaskRunner())
                using (FileSystemCallbacks fileSystemCallbacks = new FileSystemCallbacks(
                           this.Repo.Context,
                           this.Repo.GitObjects,
                           RepoMetadata.Instance,
                           new MockBlobSizes(),
                           gitIndexProjection: null,
                           backgroundFileSystemTaskRunner: backgroundTaskRunner,
                           fileSystemVirtualizer: null,
                           placeholderDatabase: mockPlaceholderDb.Object))
                {
                    EventLevel    eventLevel = EventLevel.Verbose;
                    EventMetadata metadata   = fileSystemCallbacks.GetMetadataForHeartBeat(ref eventLevel);
                    eventLevel.ShouldEqual(EventLevel.Verbose);

                    // "ModifiedPathsCount" should be 1 because ".gitattributes" is always present
                    metadata.ShouldContain("ModifiedPathsCount", 1);
                    metadata.ShouldContain("PlaceholderCount", 0);
                    metadata.ShouldContain(nameof(RepoMetadata.Instance.EnlistmentId), RepoMetadata.Instance.EnlistmentId);
                }

            mockPlaceholderDb.VerifyAll();
        }
Exemple #3
0
        public void GetMetadataForHeartBeatDoesSetsEventLevelWToInformationalWhenPlaceholdersHaveBeenCreated()
        {
            using (MockBackgroundFileSystemTaskRunner backgroundTaskRunner = new MockBackgroundFileSystemTaskRunner())
                using (FileSystemCallbacks fileSystemCallbacks = new FileSystemCallbacks(
                           this.Repo.Context,
                           this.Repo.GitObjects,
                           RepoMetadata.Instance,
                           new MockBlobSizes(),
                           gitIndexProjection: null,
                           backgroundFileSystemTaskRunner: backgroundTaskRunner,
                           fileSystemVirtualizer: null))
                {
                    fileSystemCallbacks.OnPlaceholderFileCreated("test.txt", "1111122222333334444455555666667777788888", "GVFS.UnitTests.exe");

                    EventLevel    eventLevel = EventLevel.Verbose;
                    EventMetadata metadata   = fileSystemCallbacks.GetMetadataForHeartBeat(ref eventLevel);
                    eventLevel.ShouldEqual(EventLevel.Informational);

                    // "ModifiedPathsCount" should be 1 because ".gitattributes" is always present
                    metadata.Count.ShouldEqual(5);
                    metadata.ShouldContain("ProcessName1", "GVFS.UnitTests.exe");
                    metadata.ShouldContain("ProcessCount1", 1);
                    metadata.ShouldContain("ModifiedPathsCount", 1);
                    metadata.ShouldContain("PlaceholderCount", 1);
                    metadata.ShouldContain(nameof(RepoMetadata.Instance.EnlistmentId), RepoMetadata.Instance.EnlistmentId);

                    // Create more placeholders
                    fileSystemCallbacks.OnPlaceholderFileCreated("test.txt", "2222233333444445555566666777778888899999", "GVFS.UnitTests.exe2");
                    fileSystemCallbacks.OnPlaceholderFileCreated("test.txt", "3333344444555556666677777888889999900000", "GVFS.UnitTests.exe2");

                    eventLevel = EventLevel.Verbose;
                    metadata   = fileSystemCallbacks.GetMetadataForHeartBeat(ref eventLevel);
                    eventLevel.ShouldEqual(EventLevel.Informational);

                    metadata.Count.ShouldEqual(5);

                    // Only processes that have created placeholders since the last heartbeat should be named
                    metadata.ShouldContain("ProcessName1", "GVFS.UnitTests.exe2");
                    metadata.ShouldContain("ProcessCount1", 2);
                    metadata.ShouldContain("ModifiedPathsCount", 1);
                    metadata.ShouldContain("PlaceholderCount", 3);
                    metadata.ShouldContain(nameof(RepoMetadata.Instance.EnlistmentId), RepoMetadata.Instance.EnlistmentId);
                }
        }