public void TestXmlStorage() { var factory = new XmlFactory(); var mofObject1 = factory.create(null); var mofObject2 = factory.create(null); var mofObject3 = factory.create(null); mofObject1.set("name", "Martin"); mofObject2.set("name", "Martina"); mofObject3.set("name", "Martini"); var extent = new XmlUriExtent("dm:///test/"); Assert.That(extent.contextURI(), Is.EqualTo("dm:///test/")); extent.elements().add(mofObject1); extent.elements().add(mofObject2); extent.elements().add(mofObject3); var xmiStorageConfiguration = new XmiStorageConfiguration { ExtentUri = "dm:///test/", Path = "data.xml" }; var xmiStorage = new XmiStorage(); xmiStorage.StoreExtent(extent, xmiStorageConfiguration); var otherExtent = xmiStorage.LoadExtent(xmiStorageConfiguration); Assert.That(otherExtent.elements().size(), Is.EqualTo(3)); Assert.That(otherExtent.contextURI(), Is.EqualTo("dm:///test/")); Assert.That((otherExtent.elements().ElementAt(0) as IObject)?.get("name"), Is.EqualTo("Martin")); Assert.That((otherExtent.elements().ElementAt(1) as IObject)?.get("name"), Is.EqualTo("Martina")); Assert.That((otherExtent.elements().ElementAt(2) as IObject)?.get("name"), Is.EqualTo("Martini")); File.Delete("data.xml"); }
public void TestXmlExtent() { var mofObject1 = new XmlElement(new XElement("item")); var mofObject2 = new XmlElement(new XElement("item")); var mofObject3 = new XmlElement(new XElement("item")); var extent = new XmlUriExtent("dm:///test/"); Assert.That(extent.contextURI(), Is.EqualTo("dm:///test/")); // At the moment, it is not defined whether to contain or not contain. Just to increase coverage Assert.That(extent.useContainment(), Is.True.Or.False); Assert.That(extent.elements(), Is.Not.Null); Assert.That(extent.elements().size(), Is.EqualTo(0)); extent.elements().add(mofObject1); extent.elements().add(mofObject2); Assert.That(extent.elements().size(), Is.EqualTo(2)); mofObject1.set("name", "Martin"); mofObject1.set("lastname", "Brenn"); mofObject2.set("name", "Another"); mofObject2.set("lastname", "Brenner"); Assert.That(mofObject1.get("name").ToString(), Is.EqualTo("Martin")); Assert.That(mofObject2.get("name").ToString(), Is.EqualTo("Another")); var uri1 = extent.uri(mofObject1); var uri2 = extent.uri(mofObject2); var id1 = ((IHasId) mofObject1).Id.ToString(); var id2 = ((IHasId) mofObject2).Id.ToString(); Assert.That(id1, Is.Not.Null.Or.Empty); Assert.That(id2, Is.Not.Null.Or.Empty); Assert.That(id1 != id2, Is.True); Assert.That(uri1 != uri2, Is.True); Assert.That(uri1.StartsWith("dm:///test/"), Is.True); Assert.That(uri2.StartsWith("dm:///test/"), Is.True); Assert.That(uri1.EndsWith(id1), Is.True); Assert.That(uri2.EndsWith(id2), Is.True); var found = extent.element(uri1); Assert.That(found, Is.Not.Null); Assert.That(found, Is.EqualTo(mofObject1)); var uri3 = "dm:///test/#abc"; Assert.That(extent.element(uri3), Is.Null); var uri4 = "dm:///test/"; Assert.That(extent.element(uri4), Is.Null); var uri5 = "#abc"; Assert.That(extent.element(uri5), Is.Null); var uri6 = "dm:///anothertest/#" + id1; Assert.That(extent.element(uri6), Is.Null); extent.elements().remove(mofObject1); Assert.That(extent.elements().size(), Is.EqualTo(1)); extent.elements().remove(mofObject3); Assert.That(extent.elements().size(), Is.EqualTo(1)); var mofElement = new MofElement(); Assert.Throws<ArgumentNullException>(() => extent.uri(mofElement)); Assert.Throws<InvalidOperationException>(() => extent.elements().add(mofElement)); }