Example #1
0
 /// <summary>
 /// Tests the merge.
 /// </summary>
 /// <param name="source">The source content.</param>
 /// <param name="changed1">The first changed content.</param>
 /// <param name="changed2">The second changed content.</param>
 /// <param name="expectedText">The expected text.</param>
 /// <param name="merger">The merger.</param>
 public static void TestMerge(IReadOnlyList<string> source, IReadOnlyList<string> changed1,
                              IReadOnlyList<string> changed2, string[] expectedText, IChangesetMerger merger)
 {
     Result result = Merger.Merge(source, changed1, changed2, merger);
     string[] actualText = result.Text.ToArray();
     Assert.IsNotNull(actualText);
     CollectionAssert.AreEqual(expectedText, actualText);
 }
Example #2
0
 /// <summary>
 /// Tests the merge with conflict.
 /// </summary>
 /// <param name="source">The source.</param>
 /// <param name="changed1">The changed1.</param>
 /// <param name="changed2">The changed2.</param>
 /// <param name="merger">The merger.</param>
 public static void TestMergeWithConflict(IReadOnlyList <string> source, IReadOnlyList <string> changed1,
                                          IReadOnlyList <string> changed2, IChangesetMerger merger)
 {
     string[] result = GenerateConflictResult(source, changed1, changed2).ToArray();
     TestMerge(source, changed1, changed2, result, merger);
     result = GenerateConflictResult(source, changed2, changed1).ToArray();
     TestMerge(source, changed2, changed1, result, merger);
 }
Example #3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Presenter"/> class.
        /// </summary>
        /// <param name="merger">The merger.</param>
        /// <exception cref="System.ArgumentNullException"></exception>
        internal Presenter(IChangesetMerger merger)
        {
            if (merger == null)
            {
                throw new ArgumentNullException();
            }

            _merger = merger;
        }
Example #4
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Presenter"/> class.
        /// </summary>
        /// <param name="merger">The merger.</param>
        /// <exception cref="System.ArgumentNullException"></exception>
        internal Presenter(IChangesetMerger merger)
        {
            if (merger == null)
            {
                throw new ArgumentNullException();
            }

            _merger = merger;
        }
Example #5
0
 /// <summary>
 /// Tests the null.
 /// </summary>
 /// <param name="merger">The merger.</param>
 public static void TestNull(IChangesetMerger merger)
 {
     string[] empty = { };
     ExceptionAssert.Throws <ArgumentNullException>(() => Merger.Merge(null, empty, empty, merger));
     ExceptionAssert.Throws <ArgumentNullException>(() => Merger.Merge(empty, null, empty, merger));
     ExceptionAssert.Throws <ArgumentNullException>(() => Merger.Merge(empty, empty, null, merger));
     ExceptionAssert.Throws <ArgumentNullException>(() => Merger.Merge(empty, empty, empty, null));
     Merger.Merge(empty, empty, empty, merger);
 }
Example #6
0
        /// <summary>
        /// Performs the merge.
        /// </summary>
        /// <param name="source">The source content.</param>
        /// <param name="changed1">The first changed content.</param>
        /// <param name="changed2">The second changed content.</param>
        /// <param name="merger">The merger.</param>
        /// <returns></returns>
        public static Result Merge(IReadOnlyList <string> source, IReadOnlyList <string> changed1,
                                   IReadOnlyList <string> changed2, IChangesetMerger merger)
        {
            if (merger == null)
            {
                throw new ArgumentNullException();
            }

            var changeset1 = new MergableChangeset(source, changed1);
            var changeset2 = new MergableChangeset(source, changed2);

            Changeset <IChange> merged = merger.Merge(changeset1, changeset2, source);

            IEnumerable <string> result = merged.Apply(source);

            return(new Result(merged, result));
        }
Example #7
0
        /// <summary>
        /// Performs the merge.
        /// </summary>
        /// <param name="source">The source content.</param>
        /// <param name="changed1">The first changed content.</param>
        /// <param name="changed2">The second changed content.</param>
        /// <param name="merger">The merger.</param>
        /// <returns></returns>
        public static Result Merge(IReadOnlyList<string> source, IReadOnlyList<string> changed1,
                                   IReadOnlyList<string> changed2, IChangesetMerger merger)
        {
            if (merger == null)
            {
                throw new ArgumentNullException();
            }

            var changeset1 = new MergableChangeset(source, changed1);
            var changeset2 = new MergableChangeset(source, changed2);

            Changeset<IChange> merged = merger.Merge(changeset1, changeset2, source);

            IEnumerable<string> result = merged.Apply(source);

            return new Result(merged, result);
        }
Example #8
0
 /// <summary>
 /// Tests the merge.
 /// </summary>
 /// <param name="source">The source content.</param>
 /// <param name="changed1">The first changed content.</param>
 /// <param name="changed2">The second changed content.</param>
 /// <param name="expectedText">The expected text.</param>
 /// <param name="merger">The merger.</param>
 /// <param name="symmetric">Should reversed merge match the original one.</param>
 public static void TestMerge(IReadOnlyList<string> source, IReadOnlyList<string> changed1,
                              IReadOnlyList<string> changed2, string[] expectedText, IChangesetMerger merger,
                              bool symmetric)
 {
     TestMerge(source, changed1, changed2, expectedText, merger);
     if (symmetric)
     {
         TestMerge(source, changed2, changed1, expectedText, merger);
     }
 }
Example #9
0
 /// <summary>
 /// Tests the null.
 /// </summary>
 /// <param name="merger">The merger.</param>
 public static void TestNull(IChangesetMerger merger)
 {
     string[] empty = { };
     ExceptionAssert.Throws<ArgumentNullException>(() => Merger.Merge(null, empty, empty, merger));
     ExceptionAssert.Throws<ArgumentNullException>(() => Merger.Merge(empty, null, empty, merger));
     ExceptionAssert.Throws<ArgumentNullException>(() => Merger.Merge(empty, empty, null, merger));
     ExceptionAssert.Throws<ArgumentNullException>(() => Merger.Merge(empty, empty, empty, null));
     Merger.Merge(empty, empty, empty, merger);
 }
Example #10
0
 /// <summary>
 /// Tests the merge with conflict.
 /// </summary>
 /// <param name="source">The source.</param>
 /// <param name="changed1">The changed1.</param>
 /// <param name="changed2">The changed2.</param>
 /// <param name="merger">The merger.</param>
 public static void TestMergeWithConflict(IReadOnlyList<string> source, IReadOnlyList<string> changed1,
                                          IReadOnlyList<string> changed2, IChangesetMerger merger)
 {
     string[] result = GenerateConflictResult(source, changed1, changed2).ToArray();
     TestMerge(source, changed1, changed2, result, merger);
     result = GenerateConflictResult(source, changed2, changed1).ToArray();
     TestMerge(source, changed2, changed1, result, merger);
 }
Example #11
0
 /// <summary>
 /// Tests the merge.
 /// </summary>
 /// <param name="source">The source content.</param>
 /// <param name="changed1">The first changed content.</param>
 /// <param name="changed2">The second changed content.</param>
 /// <param name="expectedText">The expected text.</param>
 /// <param name="merger">The merger.</param>
 /// <param name="symmetric">Should reversed merge match the original one.</param>
 public static void TestMerge(IReadOnlyList <string> source, IReadOnlyList <string> changed1,
                              IReadOnlyList <string> changed2, string[] expectedText, IChangesetMerger merger,
                              bool symmetric)
 {
     TestMerge(source, changed1, changed2, expectedText, merger);
     if (symmetric)
     {
         TestMerge(source, changed2, changed1, expectedText, merger);
     }
 }
Example #12
0
        /// <summary>
        /// Tests the merge.
        /// </summary>
        /// <param name="source">The source content.</param>
        /// <param name="changed1">The first changed content.</param>
        /// <param name="changed2">The second changed content.</param>
        /// <param name="expectedText">The expected text.</param>
        /// <param name="merger">The merger.</param>
        public static void TestMerge(IReadOnlyList <string> source, IReadOnlyList <string> changed1,
                                     IReadOnlyList <string> changed2, string[] expectedText, IChangesetMerger merger)
        {
            Result result = Merger.Merge(source, changed1, changed2, merger);

            string[] actualText = result.Text.ToArray();
            Assert.IsNotNull(actualText);
            CollectionAssert.AreEqual(expectedText, actualText);
        }