Esempio n. 1
0
        /// <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));
        }