public void MatchOrderedSubTextsPositiveTests(IEnumerable <MappedSubText> originalTexts, IEnumerable <string> newTexts, IEnumerable <MappedTextReplacement> expectedReplacements)
        {
            // Arrange
            var matcher = new DefaultTextMatcher(new Differ(), new CharacterChunker());

            // Act
            var replacements = matcher.MatchOrderedSubTexts(originalTexts, newTexts);

            // Assert
            Assert.Collection(replacements, expectedReplacements.Select <MappedTextReplacement, Action <MappedTextReplacement> >(expected => actual => Assert.Equal(expected, actual)).ToArray());
        }
        public void MatchOrderedSubTextsNegativeTests()
        {
            var matcher       = new DefaultTextMatcher(new Differ(), new CharacterChunker());
            var originalTexts = new MappedSubText[]
            {
                GetSubText("Test", "test.txt", 1)
            };
            var updatedTexts = new string[] { "Test1", "Test2" };

            Assert.Throws <ArgumentNullException>("originalTexts", () => matcher.MatchOrderedSubTexts(null !, updatedTexts));
            Assert.Throws <ArgumentNullException>("newTexts", () => matcher.MatchOrderedSubTexts(originalTexts, null !));
            Assert.Throws <ArgumentException>(() => matcher.MatchOrderedSubTexts(originalTexts, updatedTexts));
        }