public void TestElementMethods() { //GetElement SimpleElement se = new SimpleElement(); Assert.IsNull(se.GetElement("child1")); IXmlElement child1 = se.AddElement("child1"); Assert.IsNotNull(se.GetElement("child1")); //FindElement Assert.IsNull(se.FindElement("/child2")); Assert.AreEqual(child1, se.FindElement("/child1")); //EnsureElement Assert.AreEqual(se.ElementList.Count, 1); Assert.IsNotNull(se.EnsureElement("/child2")); IXmlElement child2 = se.GetElement("child2"); Assert.IsTrue(child2.IsMutable); Assert.AreEqual(se.ElementList.Count, 2); //element is added //GetSafeElement Assert.AreEqual(se.ElementList.Count, 2); Assert.AreEqual(se, se.GetSafeElement("")); IXmlElement child3 = se.GetSafeElement("/child3"); Assert.IsNotNull(child3); Assert.IsFalse(child3.IsMutable); Assert.AreEqual(se.ElementList.Count, 2); //element is not added IXmlElement child4 = se.GetSafeElement("/child3/../child4"); Assert.IsNotNull(child4); Exception e = null; try { se.GetSafeElement(null); } catch (Exception ex) { e = ex; } Assert.IsNotNull(e); Assert.IsInstanceOf(typeof(ArgumentNullException), e); e = null; try { se.GetSafeElement(".."); } catch (Exception ex) { e = ex; } Assert.IsNotNull(e); Assert.IsInstanceOf(typeof(ArgumentException), e); }
/// <summary> /// Parse and configure serializer information. /// </summary> private void ParseSerializerConfig() { IDictionary serializerMap = new HashDictionary(); var config = Config.FindElement("cluster-config/serializers"); if (config != null) { for (var serializers = config.GetElements("serializer"); serializers.MoveNext();) { var xmlSerializer = (IXmlElement)serializers.Current; var name = xmlSerializer.GetAttribute("id").GetString(); ConfigurableSerializerFactory factory = new ConfigurableSerializerFactory(); factory.Config = xmlSerializer; serializerMap.Add(name, factory); } } // check that the well-known pof serializer is present String serializerName = "pof"; if (!serializerMap.Contains(serializerName)) { IXmlElement pofSerializer = new SimpleElement("serializer"); IXmlElement xmlInstance = pofSerializer.EnsureElement("instance"); xmlInstance.EnsureElement("class-name").SetString("Tangosol.IO.Pof.ConfigurablePofContext, Coherence"); ConfigurableSerializerFactory factory = new ConfigurableSerializerFactory(); factory.Config = pofSerializer; serializerMap.Add(serializerName, factory); } SerializerMap = serializerMap; }