Esempio n. 1
0
        public void VisitSegmentDoesNotLockSegmentWhenWholeSegmentDoesNotMatch()
        {
            // Arrange
            var settings = utility.CreateSettings(useContentLocker: true,
                                                  segmentLockItem: new SegmentLockItem()
            {
                IsRegex    = true,
                SearchText = @"^[0-9]+$"
            });

            var segment         = utility.CreateSegment();
            var txt1            = utility.CreateText(text: "12345", segment: segment);
            var txt2            = utility.CreateText(text: "not a number", segment: segment);
            var itemFactory     = Substitute.For <IDocumentItemFactory>();
            var reporter        = Substitute.For <ICleanUpMessageReporter>();
            var reportGenerator = Substitute.For <IXmlReportGenerator>();
            var handler         = new LockHandler(settings, itemFactory, reporter, reportGenerator);

            // Act
            handler.VisitText(txt1);
            handler.VisitText(txt2);
            handler.VisitSegment(segment);

            Assert.False(segment.Properties.IsLocked);
        }
Esempio n. 2
0
        public void VisitSegmentSkipsSegmentsWhenUseStructureLockerFalse()
        {
            // Arrange
            var text     = "matchtome";
            var settings = utility.CreateSettings(useSegmentLocker: false,
                                                  useStructureLocker: false, // false instead of true
                                                  contextDef: new ContextDef()
            {
                Type = text
            });

            var segment       = utility.CreateSegment();
            var paragraphUnit = utility.CreateParagraphUnit(text);

            segment.ParentParagraphUnit.Returns(paragraphUnit);
            var itemFactory     = Substitute.For <IDocumentItemFactory>();
            var reporter        = Substitute.For <ICleanUpMessageReporter>();
            var reportGenerator = Substitute.For <IXmlReportGenerator>();
            var handler         = new LockHandler(settings, itemFactory, reporter, reportGenerator);

            // Act
            handler.VisitSegment(segment);

            Assert.False(segment.Properties.IsLocked);
        }
Esempio n. 3
0
        public void VisitSegmentThrowsOnNull()
        {
            var settings        = Substitute.For <ICleanUpSourceSettings>();
            var itemFactory     = Substitute.For <IDocumentItemFactory>();
            var reporter        = Substitute.For <ICleanUpMessageReporter>();
            var reportGenerator = Substitute.For <IXmlReportGenerator>();
            var handler         = new LockHandler(settings, itemFactory, reporter, reportGenerator);

            Assert.Throws <ArgumentNullException>(() => handler.VisitSegment(null));
        }
Esempio n. 4
0
        public void VisitSegmentIgnoresInvalidRegexExpressions()
        {
            // Arrange
            var settings = utility.CreateSettings(useContentLocker: true,
                                                  segmentLockItem: new SegmentLockItem()
            {
                IsRegex    = true,
                SearchText = @"^[ ("
            });

            var segment         = utility.CreateSegment(isLocked: false);
            var txt             = utility.CreateText(text: "whatever", segment: segment);
            var itemFactory     = Substitute.For <IDocumentItemFactory>();
            var reporter        = Substitute.For <ICleanUpMessageReporter>();
            var reportGenerator = Substitute.For <IXmlReportGenerator>();
            var handler         = new LockHandler(settings, itemFactory, reporter, reportGenerator);

            // Act
            handler.VisitText(txt);
            handler.VisitSegment(segment);

            Assert.False(segment.Properties.IsLocked);
        }
Esempio n. 5
0
        public void VisitTextDoesNotLockSegmentOnWholeWordNoMatch()
        {
            // Arrange
            var settings = utility.CreateSettings(useContentLocker: true,
                                                  segmentLockItem: new SegmentLockItem()
            {
                WholeWord  = true,
                SearchText = @"d"
            });

            var segment         = utility.CreateSegment();
            var txt             = utility.CreateText(text: "hidden dad dear red", segment: segment);
            var itemFactory     = Substitute.For <IDocumentItemFactory>();
            var reporter        = Substitute.For <ICleanUpMessageReporter>();
            var reportGenerator = Substitute.For <IXmlReportGenerator>();
            var handler         = new LockHandler(settings, itemFactory, reporter, reportGenerator);

            // Act
            handler.VisitText(txt);
            handler.VisitSegment(segment);

            Assert.False(segment.Properties.IsLocked);
        }
Esempio n. 6
0
        public void VisitSegmentsLocksSegmentsOnNormalMatch()
        {
            // Arrange
            var settings = utility.CreateSettings(useContentLocker: true,
                                                  segmentLockItem: new SegmentLockItem()
            {
                IsRegex    = false,
                SearchText = "123"
            });

            var segment         = utility.CreateSegment();
            var txt             = utility.CreateText(text: "ABCabc123%- ", segment: segment);
            var itemFactory     = Substitute.For <IDocumentItemFactory>();
            var reporter        = Substitute.For <ICleanUpMessageReporter>();
            var reportGenerator = Substitute.For <IXmlReportGenerator>();
            var handler         = new LockHandler(settings, itemFactory, reporter, reportGenerator);

            // Act
            handler.VisitText(txt);
            handler.VisitSegment(segment);

            Assert.True(segment.Properties.IsLocked);
        }
Esempio n. 7
0
        public void VisitSegmentIgnoresSegmentsOnCaseSensitiveRegex()
        {
            // Arrange
            var settings = utility.CreateSettings(useContentLocker: true,
                                                  segmentLockItem: new SegmentLockItem()
            {
                IsRegex         = true,
                IsCaseSensitive = true,
                SearchText      = @"[A-Z]+"
            });

            var segment         = utility.CreateSegment();
            var txt             = utility.CreateText(text: "abcdefg", segment: segment);
            var itemFactory     = Substitute.For <IDocumentItemFactory>();
            var reporter        = Substitute.For <ICleanUpMessageReporter>();
            var reportGenerator = Substitute.For <IXmlReportGenerator>();
            var handler         = new LockHandler(settings, itemFactory, reporter, reportGenerator);

            // Act
            handler.VisitText(txt);
            handler.VisitSegment(segment);

            Assert.False(segment.Properties.IsLocked);
        }