public void LooseObjectsFailGitProcessIds()
        {
            this.TestSetup(DateTime.UtcNow.AddDays(-7));

            Mock <GitProcessChecker> mockChecker = new Mock <GitProcessChecker>();

            mockChecker.Setup(checker => checker.GetRunningGitProcessIds())
            .Returns(new int[] { 1 });

            LooseObjectsStep step = new LooseObjectsStep(
                this.context,
                requireCacheLock: false,
                forceRun: false,
                gitProcessChecker: mockChecker.Object);

            step.Execute();

            mockChecker.Verify(checker => checker.GetRunningGitProcessIds(), Times.Once());

            this.tracer.StartActivityTracer.RelatedErrorEvents.Count.ShouldEqual(0);
            this.tracer.StartActivityTracer.RelatedWarningEvents.Count.ShouldEqual(1);
            List <string> commands = this.gitProcess.CommandsRun;

            commands.Count.ShouldEqual(0);
        }
        public void LooseObjectFileName()
        {
            this.TestSetup(DateTime.UtcNow);
            LooseObjectsStep step = new LooseObjectsStep(this.context, requireCacheLock: false, forceRun: false);

            step.GetLooseObjectFileName("0123456789012345678901234567890123456789")
            .ShouldEqual(Path.Combine(this.context.Enlistment.GitObjectsRoot, "01", "23456789012345678901234567890123456789"));
        }
        public void LooseObjectsCount()
        {
            this.TestSetup(DateTime.UtcNow.AddDays(-7));

            LooseObjectsStep step = new LooseObjectsStep(this.context, requireCacheLock: false, forceRun: false);
            int count             = step.CountLooseObjects();

            count.ShouldEqual(3);
        }
        public void LooseObjectsCount()
        {
            this.TestSetup(DateTime.UtcNow.AddDays(-7));

            LooseObjectsStep step = new LooseObjectsStep(this.context, requireCacheLock: false, forceRun: false);

            step.CountLooseObjects(out int count, out long size);

            count.ShouldEqual(3);
            size.ShouldEqual("one".Length + "two".Length + "three".Length);
        }
        public void LooseObjectsLimitPackCount()
        {
            this.TestSetup(DateTime.UtcNow.AddDays(-7));

            // Verify with default limit
            LooseObjectsStep step = new LooseObjectsStep(this.context, requireCacheLock: false, forceRun: false);

            step.WriteLooseObjectIds(new StreamWriter(new MemoryStream())).ShouldEqual(3);

            // Verify with limit of 2
            step.MaxLooseObjectsInPack = 2;
            step.WriteLooseObjectIds(new StreamWriter(new MemoryStream())).ShouldEqual(2);
        }
        public void LooseObjectsFailTimeRestriction()
        {
            this.TestSetup(DateTime.UtcNow);

            LooseObjectsStep step = new LooseObjectsStep(this.context, requireCacheLock: false, forceRun: false);

            step.Execute();

            this.tracer.StartActivityTracer.RelatedErrorEvents.Count.ShouldEqual(0);
            this.tracer.StartActivityTracer.RelatedWarningEvents.Count.ShouldEqual(1);
            List <string> commands = this.gitProcess.CommandsRun;

            commands.Count.ShouldEqual(0);
        }
示例#7
0
        public void LooseObjectsPassTimeRestriction()
        {
            this.TestSetup(DateTime.UtcNow.AddDays(-7));

            LooseObjectsStep step = new LooseObjectsStep(this.context, requireCacheLock: false, forceRun: false);

            step.Execute();

            this.tracer.StartActivityTracer.RelatedErrorEvents.Count.ShouldEqual(0);
            this.tracer.StartActivityTracer.RelatedWarningEvents.Count.ShouldEqual(0);
            List <string> commands = this.gitProcess.CommandsRun;

            commands.Count.ShouldEqual(2);
            commands[0].ShouldEqual(PrunePackedCommand);
            commands[1].ShouldEqual(this.packCommand);
        }
        public void SkipInvalidLooseObjects()
        {
            this.TestSetup(DateTime.UtcNow.AddDays(-7));

            // Verify with valid Objects
            LooseObjectsStep step = new LooseObjectsStep(this.context, requireCacheLock: false, forceRun: false);

            step.WriteLooseObjectIds(new StreamWriter(new MemoryStream())).ShouldEqual(3);
            this.tracer.RelatedErrorEvents.Count.ShouldEqual(0);
            this.tracer.RelatedWarningEvents.Count.ShouldEqual(0);

            // Write an ObjectId file with an invalid name
            this.context.FileSystem.WriteAllText(Path.Combine(this.context.Enlistment.GitObjectsRoot, "AA", "NOT_A_SHA"), string.Empty);

            // Verify it wasn't added and a warning exists
            step.WriteLooseObjectIds(new StreamWriter(new MemoryStream())).ShouldEqual(3);
            this.tracer.RelatedErrorEvents.Count.ShouldEqual(0);
            this.tracer.RelatedWarningEvents.Count.ShouldEqual(1);
        }
        public void LooseObjectId()
        {
            this.TestSetup(DateTime.UtcNow.AddDays(-7));

            LooseObjectsStep step          = new LooseObjectsStep(this.context, requireCacheLock: false, forceRun: false);
            string           directoryName = "AB";
            string           fileName      = "830bb79cd4fadb2e73e780e452dc71db909001";

            step.TryGetLooseObjectId(
                directoryName,
                Path.Combine(this.context.Enlistment.GitObjectsRoot, directoryName, fileName),
                out string objectId).ShouldBeTrue();
            objectId.ShouldEqual(directoryName + fileName);

            directoryName = "AB";
            fileName      = "BAD_FILE_NAME";
            step.TryGetLooseObjectId(
                directoryName,
                Path.Combine(this.context.Enlistment.GitObjectsRoot, directoryName, fileName),
                out objectId).ShouldBeFalse();
        }