Example #1
0
        public void ApplyPatches_Mov_Ok()
        {
            TokenTextLayerPart <CommentLayerFragment> part =
                GetCommentLayerPart(new[] { "1.1", "1.2" });
            string        json = SerializePart(part);
            AnonLayerPart anon = DeserializeAnonLayerPart(json);

            string json2 = anon.ApplyPatches(json, new[] { "mov 1.1 3.1" });

            // anon has been synched to changes in its source JSON
            Assert.Equal(2, anon.Fragments.Count);
            Assert.NotNull(anon.Fragments.Find(fr => fr.Location == "3.1"));
            Assert.NotNull(anon.Fragments.Find(fr => fr.Location == "1.2"));

            // layer was patched
            TokenTextLayerPart <CommentLayerFragment> part2 =
                (TokenTextLayerPart <CommentLayerFragment>)
                DeserializePart(json2, part.GetType());

            Assert.Equal(2, part2.Fragments.Count);

            CommentLayerFragment fr = part2.Fragments.Find(fr => fr.Location == "3.1");

            Assert.NotNull(fr);
            Assert.Equal("3.1", fr.Location);
            Assert.Equal("tag", fr.Tag);
            Assert.Equal("Comment 1", fr.Text);

            fr = part2.Fragments.Find(fr => fr.Location == "1.2");
            Assert.NotNull(fr);
            Assert.Equal("1.2", fr.Location);
            Assert.Equal("tag", fr.Tag);
            Assert.Equal("Comment 2", fr.Text);
        }
Example #2
0
        public void GetFragmentHints_EquMovedCoincident_Ok()
        {
            IList <YXEditOperation> operations =
                GetOperations("alpha beta", "alpha x beta");
            AnonLayerPart part = new AnonLayerPart
            {
                Fragments = new List <AnonFragment>
                {
                    new AnonFragment("1.1"),
                    new AnonFragment("1.2")
                }
            };

            IList <LayerHint> fragments = part.GetFragmentHints(operations);

            Assert.Equal(2, fragments.Count);
            // 1.1
            LayerHint fr = fragments[0];

            Assert.Equal("1.1", fr.Location);
            Assert.Equal(0, fr.ImpactLevel);
            Assert.Null(fr.EditOperation);
            // 1.2
            fr = fragments[1];
            Assert.Equal("1.2", fr.Location);
            Assert.Equal(2, fr.ImpactLevel);
            Assert.Equal("mov 1.2 1.3", fr.PatchOperation);
            Assert.NotNull(fr.Description);
        }
Example #3
0
        public void ApplyPatches_DelAndMov_Ok()
        {
            TokenTextLayerPart <CommentLayerFragment> part =
                GetCommentLayerPart(new[] { "1.1", "1.2" });
            string        json = SerializePart(part);
            AnonLayerPart anon = DeserializeAnonLayerPart(json);

            string json2 = anon.ApplyPatches(json, new[]
            {
                "del 1.1",
                "mov 1.2 1.1"
            });

            // anon has been synched to changes in its source JSON
            Assert.Single(anon.Fragments);
            Assert.Equal("1.1", anon.Fragments[0].Location);

            // layer was patched
            TokenTextLayerPart <CommentLayerFragment> part2 =
                (TokenTextLayerPart <CommentLayerFragment>)
                DeserializePart(json2, part.GetType());

            Assert.Single(part2.Fragments);

            CommentLayerFragment fr = part2.Fragments[0];

            Assert.Equal("1.1", fr.Location);
            Assert.Equal("tag", fr.Tag);
            Assert.Equal("Comment 2", fr.Text);
        }
Example #4
0
        public void ApplyPatches_InvalidPatch_Unchanged()
        {
            TokenTextLayerPart <CommentLayerFragment> part =
                GetCommentLayerPart(new[] { "1.1" });
            string        json = SerializePart(part);
            AnonLayerPart anon = DeserializeAnonLayerPart(json);

            string json2 = anon.ApplyPatches(json, new[] { "fake 1.1" });

            Assert.Equal(json, json2);
        }
Example #5
0
        public void ApplyPatches_Empty_Unchanged()
        {
            TokenTextLayerPart <CommentLayerFragment> part =
                GetCommentLayerPart(new[] { "1.1" });
            string        json = SerializePart(part);
            AnonLayerPart anon = DeserializeAnonLayerPart(json);

            string json2 = anon.ApplyPatches(json, Array.Empty <string>());

            Assert.Equal(json, json2);
        }
Example #6
0
        public void GetFragmentHints_Equ_Ok()
        {
            IList <YXEditOperation> operations =
                GetOperations("alpha beta", "alpha beta");
            AnonLayerPart part = new AnonLayerPart
            {
                Fragments = new List <AnonFragment>
                {
                    new AnonFragment("1.1")
                }
            };

            IList <LayerHint> fragments = part.GetFragmentHints(operations);

            Assert.Single(fragments);
            // 1.1
            LayerHint fr = fragments[0];

            Assert.Equal("1.1", fr.Location);
            Assert.Equal(0, fr.ImpactLevel);
            Assert.Null(fr.EditOperation);
        }
Example #7
0
        public void GetFragmentHints_RepOverlapOrCoincident_Ok(string loc)
        {
            IList <YXEditOperation> operations =
                GetOperations("alpha beta",
                              "alpha x");
            AnonLayerPart part = new AnonLayerPart
            {
                Fragments = new List <AnonFragment>
                {
                    new AnonFragment(loc)
                }
            };

            IList <LayerHint> fragments = part.GetFragmentHints(operations);

            Assert.Single(fragments);
            LayerHint fr = fragments[0];

            Assert.Equal(loc, fr.Location);
            Assert.Equal(1, fr.ImpactLevel);
            Assert.Equal(operations[1].ToString(), fr.EditOperation);
            Assert.Null(fr.PatchOperation);
        }
Example #8
0
        public void GetFragmentHints_DelCoincident_Ok()
        {
            IList <YXEditOperation> operations =
                GetOperations("alpha beta", "beta");
            AnonLayerPart part = new AnonLayerPart
            {
                Fragments = new List <AnonFragment>
                {
                    new AnonFragment("1.1")
                }
            };

            IList <LayerHint> fragments = part.GetFragmentHints(operations);

            Assert.Single(fragments);
            // 1.1
            LayerHint fr = fragments[0];

            Assert.Equal("1.1", fr.Location);
            Assert.Equal(2, fr.ImpactLevel);
            Assert.Equal(operations[0].ToString(), fr.EditOperation);
            Assert.Equal("del 1.1", fr.PatchOperation);
        }
Example #9
0
        public void GetFragmentHints_DelOverlapping_Ok()
        {
            IList <YXEditOperation> operations =
                GetOperations("alpha beta", "beta");
            AnonLayerPart part = new AnonLayerPart
            {
                Fragments = new List <AnonFragment>
                {
                    new AnonFragment("1.1-1.2")
                }
            };

            IList <LayerHint> fragments = part.GetFragmentHints(operations);

            Assert.Single(fragments);
            // 1.1-1.2
            LayerHint fr = fragments[0];

            Assert.Equal("1.1-1.2", fr.Location);
            Assert.Equal(1, fr.ImpactLevel);
            Assert.Equal(operations[1].ToString(), fr.EditOperation);
            Assert.Null(fr.PatchOperation);
        }