public void UpdateFile_Correct()
        {
            var service = new BasicFileUpdater <BasicItemFile>();

            var logger = new UpdateLogger();

            var oldFile = new BasicItemFile()
            {
                Items = new Dictionary <string, ItemEntry>()
                {
                    {
                        "Key1", new ItemEntry()
                        {
                            Name = new BaseEntry()
                            {
                                Origin      = "NameOrigin1",
                                Translation = "NameTranslation1"
                            },
                            Tooltip = new BaseEntry()
                            {
                                Origin      = "TooltipOrigin1",
                                Translation = "TooltipTranslation1"
                            },
                        }
                    },
                    {
                        "Key2", new ItemEntry()
                        {
                            Name = new BaseEntry()
                            {
                                Origin      = "NameOrigin2",
                                Translation = "NameTranslation2"
                            },
                            Tooltip = new BaseEntry()
                            {
                                Origin      = "TooltipOrigin2",
                                Translation = "TooltipTranslation2"
                            },
                        }
                    },
                    {
                        "Key3", new ItemEntry()
                        {
                            Name = new BaseEntry()
                            {
                                Origin      = "NameOrigin3",
                                Translation = "NameTranslation3"
                            },
                            Tooltip = new BaseEntry()
                            {
                                Origin      = "TooltipOrigin3",
                                Translation = "TooltipTranslation3"
                            },
                        }
                    },
                }
            };

            var newFile = new BasicItemFile()
            {
                Items = new Dictionary <string, ItemEntry>()
                {
                    {
                        "Key1", new ItemEntry()
                        {
                            Name = new BaseEntry()
                            {
                                Origin      = "AnotherNameOrigin1",
                                Translation = "AnotherNameTranslation1"
                            },
                            Tooltip = new BaseEntry()
                            {
                                Origin      = "AnotherTooltipOrigin1",
                                Translation = "AnotherTooltipTranslation1"
                            },
                        }
                    },
                    {
                        "Key3", new ItemEntry()
                        {
                            Name = new BaseEntry()
                            {
                                Origin      = "NameOrigin3",
                                Translation = "AnotherNameTranslation3"
                            },
                            Tooltip = new BaseEntry()
                            {
                                Origin      = "TooltipOrigin3",
                                Translation = "AnotherTooltipTranslation3"
                            },
                        }
                    },
                    {
                        "Key4", new ItemEntry()
                        {
                            Name = new BaseEntry()
                            {
                                Origin      = "NameOrigin4",
                                Translation = "NameTranslation4"
                            },
                            Tooltip = new BaseEntry()
                            {
                                Origin      = "TooltipOrigin4",
                                Translation = "TooltipTranslation4"
                            },
                        }
                    },
                }
            };

            service.Update(oldFile, newFile, logger);

            logger.Added.Count.Should().Be(1);
            logger.Changed.Count.Should().Be(2);
            logger.Removed.Count.Should().Be(1);

            oldFile.Items.Count.Should().Be(4);
            oldFile.Items["Key1"].Name.Origin.Should().Be("AnotherNameOrigin1");
            oldFile.Items["Key1"].Name.Translation.Should().Be("NameTranslation1");
            oldFile.Items["Key1"].Tooltip.Origin.Should().Be("AnotherTooltipOrigin1");
            oldFile.Items["Key1"].Tooltip.Translation.Should().Be("TooltipTranslation1");
            oldFile.Items["Key3"].Name.Origin.Should().Be("NameOrigin3");
            oldFile.Items["Key3"].Name.Translation.Should().Be("NameTranslation3");
            oldFile.Items["Key3"].Tooltip.Origin.Should().Be("TooltipOrigin3");
            oldFile.Items["Key3"].Tooltip.Translation.Should().Be("TooltipTranslation3");
            oldFile.Items["Key4"].Name.Origin.Should().Be("NameOrigin4");
            oldFile.Items["Key4"].Name.Translation.Should().Be("NameTranslation4");
            oldFile.Items["Key4"].Tooltip.Origin.Should().Be("TooltipOrigin4");
            oldFile.Items["Key4"].Tooltip.Translation.Should().Be("TooltipTranslation4");
        }
Beispiel #2
0
        public void MergeFile_Correct()
        {
            var importer = new BasicImporter <BasicItemFile>();

            var main = new BasicItemFile()
            {
                Items = new Dictionary <string, ItemEntry>()
                {
                    {
                        "Key1", new ItemEntry()
                        {
                            Name = new BaseEntry()
                            {
                                Origin      = "NameOrigin1",
                                Translation = "NameTranslation1"
                            },
                            Tooltip = new BaseEntry()
                            {
                                Origin      = "TooltipOrigin1",
                                Translation = "TooltipTranslation1"
                            },
                        }
                    },
                    {
                        "Key2", new ItemEntry()
                        {
                            Name = new BaseEntry()
                            {
                                Origin      = "NameOrigin2",
                                Translation = "NameTranslation2"
                            },
                            Tooltip = new BaseEntry()
                            {
                                Origin      = "TooltipOrigin2",
                                Translation = ""
                            },
                        }
                    },
                    {
                        "Key3", new ItemEntry()
                        {
                            Name = new BaseEntry()
                            {
                                Origin      = "NameOrigin3",
                                Translation = ""
                            },
                            Tooltip = new BaseEntry()
                            {
                                Origin      = "TooltipOrigin3",
                                Translation = ""
                            },
                        }
                    },
                }
            };

            var addition = new BasicItemFile()
            {
                Items = new Dictionary <string, ItemEntry>()
                {
                    {
                        "Key1", new ItemEntry()
                        {
                            Name = new BaseEntry()
                            {
                                Origin      = "NameOrigin1",
                                Translation = "AnotherNameTranslation1"
                            },
                            Tooltip = new BaseEntry()
                            {
                                Origin      = "TooltipOrigin1",
                                Translation = "AnotherTooltipTranslation1"
                            },
                        }
                    },
                    {
                        "Key2", new ItemEntry()
                        {
                            Name = new BaseEntry()
                            {
                                Origin      = "NameOrigin2",
                                Translation = ""
                            },
                            Tooltip = new BaseEntry()
                            {
                                Origin      = "TooltipOrigin2",
                                Translation = "AnotherTooltipTranslation2"
                            },
                        }
                    },
                    {
                        "Key3", new ItemEntry()
                        {
                            Name = new BaseEntry()
                            {
                                Origin      = "NameOrigin3",
                                Translation = "AnotherNameTranslation3"
                            },
                            Tooltip = new BaseEntry()
                            {
                                Origin      = "TooltipOrigin3",
                                Translation = "AnotherTooltipTranslation3"
                            },
                        }
                    },
                    {
                        "Key4", new ItemEntry()
                        {
                            Name = new BaseEntry()
                            {
                                Origin      = "NameOrigin4",
                                Translation = "NameTranslation4"
                            },
                            Tooltip = new BaseEntry()
                            {
                                Origin      = "TooltipOrigin4",
                                Translation = "TooltipTranslation4"
                            },
                        }
                    },
                }
            };

            var result = importer.MergeInternal(main, addition);

            result.Items.Count.Should().Be(4);

            result.Items["Key1"].Name.Translation.Should().Be("NameTranslation1");
            result.Items["Key1"].Tooltip.Translation.Should().Be("TooltipTranslation1");

            result.Items["Key4"].Name.Origin.Should().Be("NameOrigin4");
            result.Items["Key4"].Name.Translation.Should().Be("NameTranslation4");
            result.Items["Key4"].Tooltip.Origin.Should().Be("TooltipOrigin4");
            result.Items["Key4"].Tooltip.Translation.Should().Be("TooltipTranslation4");

            result.Items["Key2"].Name.Translation.Should().Be("NameTranslation2");
            result.Items["Key2"].Tooltip.Translation.Should().Be("AnotherTooltipTranslation2");

            result.Items["Key3"].Name.Translation.Should().Be("AnotherNameTranslation3");
            result.Items["Key3"].Tooltip.Translation.Should().Be("AnotherTooltipTranslation3");
        }