public void Deserialize_LastPropertyEmpty()
        {
            var sut  = new MapYamlSerializer();
            var node = MapNode.CreateIsolatedNode(NodePosition.Left);

            node.Text  = "Node1";
            node.Color = Color.Azure;

            var writer  = new StringWriter();
            var emitter = new Emitter(writer);

            emitter.Emit(new StreamStart());
            emitter.Emit(new DocumentStart());

            sut.Serialize(node, emitter);

            emitter.Emit(new DocumentEnd(true));
            emitter.Emit(new StreamEnd());

            string text = writer.ToString();

            var parser      = new Parser(new StringReader(text));
            var eventReader = new EventReader(parser);

            eventReader.Expect <StreamStart>();
            eventReader.Expect <DocumentStart>();
            var result = sut.Deserialize(eventReader);

            eventReader.Expect <DocumentEnd>();
            eventReader.Expect <StreamEnd>();

            Assert.AreEqual(Color.Azure, result.Color);
            Assert.IsNull(result.Image);
            Assert.IsNull(result.Label);
        }
Beispiel #2
0
        private MapNode DeserializeIsolatedNode(Parser r)
        {
            string text = null; NodePosition pos = NodePosition.Undefined; string id = null;

            string prop = r.Peek <Scalar>().Value;

            if (prop != null && prop.Equals(Text))
            {
                r.Expect <Scalar>();
                text = r.Expect <Scalar>().Value;
                prop = r.Peek <Scalar>().Value;
            }

            if (prop != null && prop.Equals(Pos))
            {
                r.Expect <Scalar>();
                pos = (NodePosition)Enum.Parse(typeof(NodePosition), r.Expect <Scalar>().Value);
                //prop = r.Peek<Scalar>().Value;
            }

            // Isolated nodes donot have Id
            //if (prop != null && prop.Equals(Id))
            //{
            //    r.Expect<Scalar>();
            //    id = r.Expect<Scalar>().Value;
            //    //prop = r.Peek<Scalar>().Value;
            //}

            MapNode node = MapNode.CreateIsolatedNode(pos);

            node.Text = text;
            return(node);
        }
Beispiel #3
0
        /// <summary>
        /// Create a new style using the refNode (internal copy of given refNode is created)
        /// </summary>
        /// <param name="title"></param>
        /// <param name="styleSource">Changing refNode afterwards will not affect the created style.</param>
        /// <param name="custom"></param>
        public NodeStyle(string title, MapNode styleSource, bool custom = true)
        {
            Title  = title;
            Custom = custom;

            RefNode      = MapNode.CreateIsolatedNode(NodePosition.Right);
            RefNode.Text = "Sample";

            styleSource.CopyFormatTo(RefNode);

            Image = new StyleImageGenerator(RefNode).GenerateImage();
        }
Beispiel #4
0
        public void Deserialize_AllProperties()
        {
            var sut  = new MapYamlSerializer();
            var node = MapNode.CreateIsolatedNode(NodePosition.Left);

            node.Text           = "Text";
            node.Folded         = true;
            node.BackColor      = Color.Aqua;
            node.Bold           = true;
            node.FontName       = "Arial";
            node.FontSize       = 15;
            node.ImageAlignment = ImageAlignment.AboveStart;
            node.ImageSize      = new Size(22, 21);
            node.Italic         = true;
            node.Label          = "label";
            node.LineColor      = Color.BlueViolet;
            node.LinePattern    = DashStyle.Dot;
            node.LineWidth      = 4;
            node.NoteText       = "Note";
            node.Shape          = NodeShape.Box;
            node.Strikeout      = true;
            node.Link           = "link";
            node.Color          = Color.Azure;

            var writer  = new StringWriter();
            var emitter = new Emitter(writer);

            emitter.Emit(new StreamStart());
            emitter.Emit(new DocumentStart());

            sut.Serialize(node, emitter);

            emitter.Emit(new DocumentEnd(true));
            emitter.Emit(new StreamEnd());

            string text = writer.ToString();

            var parser = new Parser(new StringReader(text));

            parser.Expect <StreamStart>();
            parser.Expect <DocumentStart>();
            var result = sut.Deserialize(parser);

            parser.Expect <DocumentEnd>();
            parser.Expect <StreamEnd>();

            Assert.AreEqual(Color.Azure, result.Color);
            Assert.IsNotNull(result.Label);
            Assert.IsNotNull(result.Text);
            Assert.AreEqual("link", result.Link);
            Assert.AreEqual(22, result.ImageSize.Width);
        }
        public void Serialize_NotContainsBackColor()
        {
            var sut  = new MapYamlSerializer();
            var node = MapNode.CreateIsolatedNode(NodePosition.Left);

            node.Text  = "Node1";
            node.Label = "This is the Label";
            node.Color = Color.Azure;

            var writer  = new StringWriter();
            var emitter = new Emitter(writer);

            emitter.Emit(new StreamStart());
            emitter.Emit(new DocumentStart());

            sut.Serialize(node, emitter);

            emitter.Emit(new DocumentEnd(true));
            emitter.Emit(new StreamEnd());

            Assert.IsFalse(writer.ToString().Contains(MapYamlSerializer.BackColor));
        }