/// <summary> /// Mains the specified args. /// </summary> /// <param name="args">The arguments.</param> public static void Main(string[] args) { var options = new Options(); if (CommandLine.Parser.Default.ParseArguments(args, options)) { Console.WriteLine("Source: {0}", options.Source); Console.WriteLine("Target: {0}", options.Target); Console.WriteLine("Output: {0}", options.Output); Console.WriteLine("Collision behavior: {0}", options.CollisionBehavior); Console.WriteLine("Use Rainbow: {0}", options.UseRainbow); Console.WriteLine("Include Files: {0}", options.IncludeFiles); Console.WriteLine("Configuration: {0}", options.Configuration); Console.WriteLine("Path to project file: {0}", options.ScProjFilePath); SanitizeOptions(options); if (ExclusionHandler.HasValidExclusions(options.Configuration, options.ScProjFilePath)) { var exclusions = ExclusionHandler.GetExcludedItems(options.ScProjFilePath, options.Configuration); ExclusionHandler.RemoveExcludedItems(options.Source, exclusions); ExclusionHandler.RemoveExcludedItems(options.Target, exclusions); } RainbowSerializationProvider.Enabled = options.UseRainbow; RainbowSerializationProvider.IncludeFiles = options.IncludeFiles; List <ICommand> commands = null; if (options.UseNewDiffGenerator) { commands = NewDiffGenerator.GetDiffCommands(options.Source, options.Target, options.CollisionBehavior); } else { commands = DiffGenerator.GetDiffCommands(options.Source, options.Target, options.CollisionBehavior); } var diff = new DiffInfo( commands, "Sitecore Courier Package", string.Empty, string.Format("Diff between serialization folders '{0}' and '{1}'.", options.Source, options.Target)); PackageGenerator.GeneratePackage(diff, string.Empty, options.Output); } else { Console.WriteLine(options.GetUsage()); } }
public void ChangedUnicornSerializationNameAndDeletionTestNew() { //Source dataset, a template with 2 fields. Serialized to a unicorn setting named Unicorn1 var sourceItems = new List <IDataItem>(); sourceItems.Add(new QuickContentDataItem("C:\\Source", "Unicorn1", "Template 1.yml", new SyncItem() { ID = "2a54b494-68fe-44f6-85d9-88a3b57cf689", TemplateID = "ab86861a-6030-46c5-b394-e8f99e8b87db", ParentID = "3C1715FE-6A13-4FCF-845F-DE308BA9741D", ItemPath = "/sitecore/Templates/Template 1" }, true)); sourceItems.Add(new QuickContentDataItem("C:\\Source", "Unicorn1\\Template 1", "Section 1.yml", new SyncItem() { ID = "79a314b1-82ad-4733-bb82-92cc62306c31", TemplateID = "e269fbb5-3750-427a-9149-7aa950b49301", ParentID = "2a54b494-68fe-44f6-85d9-88a3b57cf689", ItemPath = "/sitecore/Templates/Template 1/Section 1" }, true)); sourceItems.Add(new QuickContentDataItem("C:\\Source", "Unicorn1\\Template 1\\Section 1", "Field1.yml", new SyncItem() { ID = "dcfcf4d9-6fed-4f16-a8a3-acf22188dd74", TemplateID = "455a3e98-a627-4b40-8035-e683a0331ac7", ParentID = "79a314b1-82ad-4733-bb82-92cc62306c31", ItemPath = "/sitecore/Templates/Template 1/Section 1/Field1" }, true)); sourceItems.Add(new QuickContentDataItem("C:\\Source", "Unicorn1\\Template 1\\Section 1", "Field2.yml", new SyncItem() { ID = "dcfcf4d9-6fed-4f16-a8a3-acf22188dd73", TemplateID = "455a3e98-a627-4b40-8035-e683a0331ac7", ParentID = "79a314b1-82ad-4733-bb82-92cc62306c31", ItemPath = "/sitecore/Templates/Template 1/Section 1/Field2" }, true)); //Target dataset, same template, 1 field removed. Serialized to a unicorn setting named Unicorn2 var targetItems = new List <IDataItem>(); targetItems.Add(new QuickContentDataItem("C:\\Target", "Unicorn2", "Template 1.yml", new SyncItem() { ID = "2a54b494-68fe-44f6-85d9-88a3b57cf689", TemplateID = "ab86861a-6030-46c5-b394-e8f99e8b87db", ParentID = "3C1715FE-6A13-4FCF-845F-DE308BA9741D", ItemPath = "/sitecore/Templates/Template 1" }, true)); targetItems.Add(new QuickContentDataItem("C:\\Target", "Unicorn2\\Template 1", "Section 1.yml", new SyncItem() { ID = "79a314b1-82ad-4733-bb82-92cc62306c31", TemplateID = "e269fbb5-3750-427a-9149-7aa950b49301", ParentID = "2a54b494-68fe-44f6-85d9-88a3b57cf689", ItemPath = "/sitecore/Templates/Template 1/Section 1" }, true)); targetItems.Add(new QuickContentDataItem("C:\\Target", "Unicorn2\\Template 1\\Section 1", "Field1.yml", new SyncItem() { ID = "dcfcf4d9-6fed-4f16-a8a3-acf22188dd74", TemplateID = "455a3e98-a627-4b40-8035-e683a0331ac7", ParentID = "79a314b1-82ad-4733-bb82-92cc62306c31", ItemPath = "/sitecore/Templates/Template 1/Section 1/Field1" }, true)); var sourceDataIterator = new TestDataIterator(sourceItems); var targetDataIterator = new TestDataIterator(targetItems); // Act var commands = NewDiffGenerator.GetCommands(sourceDataIterator, targetDataIterator); //Assert Assert.AreEqual(1, commands.Count); Assert.AreEqual(1, commands.Count(x => x is DeleteItemCommand)); }