public void TestMergeAddAndRemove() { ICollection <MergeTestData> toRemove = new List <MergeTestData>(); ICollection <MergeTestData> toAdd = new List <MergeTestData>(); Merge.ThreeWay( reference: MergeTestData.BuildList("a", "b", "c"), theirs: MergeTestData.BuildList("a", "b", "d"), mine: MergeTestData.BuildList("a", "c", "e"), added: toAdd, removed: toRemove); toAdd.Should().Equal(MergeTestData.BuildList("d")); toRemove.Should().Equal(MergeTestData.BuildList("c")); }
public void TestMergeModify() { var reference = MergeTestData.BuildList("a", "b", "c", "d", "e"); var theirs = new[] { new MergeTestData { MergeID = "a" }, new MergeTestData { MergeID = "b", Data = "123", Timestamp = new DateTime(2000, 1, 1) }, new MergeTestData { MergeID = "c" }, new MergeTestData { MergeID = "d", Data = "456", Timestamp = new DateTime(2000, 1, 1) }, new MergeTestData { MergeID = "e", Data = "789", Timestamp = new DateTime(2999, 1, 1) } }; var mine = new[] { new MergeTestData { MergeID = "a" }, new MergeTestData { MergeID = "b" }, new MergeTestData { MergeID = "c", Data = "abc", Timestamp = new DateTime(2000, 1, 1) }, new MergeTestData { MergeID = "d", Data = "def", Timestamp = new DateTime(2999, 1, 1) }, new MergeTestData { MergeID = "e", Data = "ghi", Timestamp = new DateTime(2000, 1, 1) } }; ICollection <MergeTestData> toRemove = new List <MergeTestData>(); ICollection <MergeTestData> toAdd = new List <MergeTestData>(); Merge.ThreeWay(reference, theirs, mine, toAdd, toRemove); toRemove.Should().Equal(mine[1], mine[4]); toAdd.Should().Equal(theirs[1], theirs[4]); }
public void PersonMerge() { var singlePersonMergeData = new MergeTestData { FullName = "Johnny Rockets, King of the Dinosaurs", Things = new List <MergeTestData.Thing>( new[] { new MergeTestData.Thing { TheValue = "Something" }, new MergeTestData.Thing { TheValue = "Another thing" }, new MergeTestData.Thing { TheValue = "One more thing" }, new MergeTestData.Thing { TheValue = "Last thing" }, new MergeTestData.Thing { TheValue = "Okay THIS is the last thing" }, new MergeTestData.Thing { TheValue = "Something again" }, new MergeTestData.Thing { TheValue = "Another thing again" }, new MergeTestData.Thing { TheValue = "One more thing again" }, new MergeTestData.Thing { TheValue = "Last thing again" }, new MergeTestData.Thing { TheValue = "Okay THIS is the last thing again" }, new MergeTestData.Thing { TheValue = "Something one more time" }, new MergeTestData.Thing { TheValue = "Another thing one more time" }, new MergeTestData.Thing { TheValue = "One more thing one more time" }, new MergeTestData.Thing { TheValue = "Last thing one more time" }, new MergeTestData.Thing { TheValue = "Okay THIS is the last thing one more time" }, new MergeTestData.Thing { TheValue = "Something that is getting old" }, new MergeTestData.Thing { TheValue = "Another thing that is getting old" }, new MergeTestData.Thing { TheValue = "One more thing that is getting old" }, new MergeTestData.Thing { TheValue = "Last thing that is getting old" }, new MergeTestData.Thing { TheValue = "Okay THIS is the last thing that is getting old" }, new MergeTestData.Thing { TheValue = "Something about the end of all things" }, new MergeTestData.Thing { TheValue = "Another thing about the end of all things" }, new MergeTestData.Thing { TheValue = "One more thing about the end of all things" }, new MergeTestData.Thing { TheValue = "Last thing about the end of all things" }, new MergeTestData.Thing { TheValue = "Okay THIS is the last thing about the end of all things" }, }) }; var mergingInfoFields = new List <MergeField <MergeTestData> >(new[] { MergeFieldOps.CreateBasicField(new FullName()) }); var internalTableDataFields = new List <MergeField <MergeTestData.Thing> >(new[] { MergeFieldOps.CreateBasicField(new TheValue()) }); var mergeTree = MergeDataTreeOps.CreateRowTree( mergingInfoFields.AsReadOnly(), singlePersonMergeData.ToSingleElementArray(), new List <MergeDataTreeChild <MergeTestData> > { new MergeDataTreeChild <MergeTestData, MergeTestData.Thing>("Things", internalTableDataFields.AsReadOnly(), info => info.Things) }.AsReadOnly()); using (var templateStream = File.OpenRead(testingWordTemplatePath)) { using (var destinationStream = File.Create(getFilePath("basic_merge_test"))) { MergeOps.CreateMsWordDoc(mergeTree, true, templateStream, destinationStream); doneCreating = DateTime.Now; } } }