public void TrackerAssignmentTest() { var tracker = new YamlNodeTracker(); var stream = new YamlStream(tracker); var document = new YamlDocument(); var sequence = new YamlSequence(); document.Contents = sequence; var mapping = new YamlMapping(); sequence.Add(mapping); var key = new YamlValue("key"); var value = new YamlValue("value"); var eventList = new List <TrackerEventArgs>(); tracker.TrackerEvent += (sender, args) => eventList.Add(args); mapping[key] = value; Assert.IsNull(document.Tracker); Assert.IsNull(sequence.Tracker); Assert.IsNull(mapping.Tracker); Assert.IsNull(key.Tracker); Assert.IsNull(value.Tracker); stream.Add(document); Assert.AreEqual(tracker, document.Tracker); Assert.AreEqual(tracker, sequence.Tracker); Assert.AreEqual(tracker, mapping.Tracker); Assert.AreEqual(tracker, key.Tracker); Assert.AreEqual(tracker, value.Tracker); Assert.AreEqual(4, eventList.Count); Assert.IsTrue(eventList[0] is MappingPairAdded); Assert.IsTrue(eventList[1] is SequenceElementAdded); Assert.IsTrue(eventList[2] is DocumentContentsChanged); Assert.IsTrue(eventList[3] is StreamDocumentAdded); eventList.Clear(); var key2 = new YamlValue("key2"); var value2 = new YamlValue("value2"); mapping[key2] = value2; Assert.AreEqual(1, eventList.Count); Assert.IsTrue(eventList[0] is MappingPairAdded); }
public void FromObject() { var stream = new YamlStream(); var document = new SharpYaml.Model.YamlDocument(); stream.Add(document); var sequence = (YamlSequence)SharpYaml.Model.YamlNode.FromObject(new[] { "item 4", "item 5", "item 6" }, new SerializerSettings { EmitAlias = false }, typeof(string[])); sequence.SequenceStart = new SequenceStart(sequence.SequenceStart.Anchor, sequence.SequenceStart.Tag, true, YamlStyle.Flow); stream[0].Contents = sequence; var serialized = new StringBuilder(); stream.WriteTo(new StringWriter(serialized), true); Assert.AreEqual("[item 4, item 5, item 6]", serialized.ToString().Trim()); }
public void AddPairTest() { var tracker = new YamlNodeTracker(); var stream = new YamlStream(tracker); stream.Add(new YamlDocument()); stream[0].Contents = new YamlMapping(); TrackerEventArgs receivedArgs = null; tracker.TrackerEvent += (sender, args) => { receivedArgs = args; }; ((YamlMapping)stream[0].Contents)["A"] = new YamlValue(5); Assert.IsTrue(receivedArgs is MappingPairAdded); Assert.AreEqual(TrackerEventType.MappingPairAdded, ((MappingPairAdded)receivedArgs).EventType); Assert.AreEqual(0, ((MappingPairAdded)receivedArgs).Index); Assert.AreEqual(new Model.Path(stream, new [] { new ChildIndex(0, false), new ChildIndex(-1, false) }), ((MappingPairAdded)receivedArgs).ParentPaths[0]); Assert.AreEqual("A", ((MappingPairAdded)receivedArgs).Child.Key.ToString()); Assert.AreEqual("5", ((MappingPairAdded)receivedArgs).Child.Value.ToString()); }