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); }
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); }
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)); }
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); }
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); }
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); }
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); }